mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2025-12-30 10:17:45 +01:00
[utils] Add improved jwt_encode function (#14071)
Also deprecates `jwt_encode_hs256` Authored by: bashonly
This commit is contained in:
parent
8df121ba59
commit
35da8df4f8
6 changed files with 84 additions and 15 deletions
|
|
@ -1,4 +1,8 @@
|
|||
"""Deprecated - New code should avoid these"""
|
||||
import base64
|
||||
import hashlib
|
||||
import hmac
|
||||
import json
|
||||
import warnings
|
||||
|
||||
from ..compat.compat_utils import passthrough_module
|
||||
|
|
@ -28,4 +32,18 @@ def intlist_to_bytes(xs):
|
|||
return struct.pack('%dB' % len(xs), *xs)
|
||||
|
||||
|
||||
def jwt_encode_hs256(payload_data, key, headers={}):
|
||||
header_data = {
|
||||
'alg': 'HS256',
|
||||
'typ': 'JWT',
|
||||
}
|
||||
if headers:
|
||||
header_data.update(headers)
|
||||
header_b64 = base64.b64encode(json.dumps(header_data).encode())
|
||||
payload_b64 = base64.b64encode(json.dumps(payload_data).encode())
|
||||
h = hmac.new(key.encode(), header_b64 + b'.' + payload_b64, hashlib.sha256)
|
||||
signature_b64 = base64.b64encode(h.digest())
|
||||
return header_b64 + b'.' + payload_b64 + b'.' + signature_b64
|
||||
|
||||
|
||||
compiled_regex_type = type(re.compile(''))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue