How to concat JWS header, JWS payload and JWS Signature using RFC 7515 in python?

560 views Asked by At
header= {"typ":"JWT","alg":"HS256"}
payload = {"iss":"joe","exp":1300819380,"http://example.com/is_root":True}
secret='3d6f45a5fc12445dbac2f59c3b6c7cb1'

Encoded JWS header and JWS payload

encoded_header = str(header).encode('utf-8')
encoded_payload = str(payload).encode('utf-8')
encoded_secret = str(secret).encode('utf-8')
base64_header = base64.b64encode(encoded_header)
base64_payload = base64.b64encode(encoded_payload)
base64_secret = base64.b64encode(encoded_secret)
concat_header_payload= b".".join([base64_header,base64_payload])

After concatenating header and payload I got the result

print(concat_header_payload)
(b'eyd0eXAnOiAnSldUJywgJ2FsZyc6ICdIUzI1Nid9.eydpc3MnOiAnam9lJywgJ2V4cCc6IDEzMDA'
b'4MTkzODAsICdodHRwOi8vZXhhbXBsZS5jb20vaXNfcm9vdCc6IFRydWV9')

The JWS Header & Payload signed using the secret key

jws_sign = hmac.new(
        base64_secret,
        concat_header_payload,
        digestmod=hashlib.sha256
    ).hexdigest()
print(jws_sign)
'fd59d1eae7485eb12a411dbc7d99bff495030495ad602b7d2dbc58f045747fbb'

Now, how should I concatenate JWS Header, JWS payload and JWS signature like this

'eyd0eXAnOiAnSldUJywgJ2FsZyc6ICdIUzI1Nid9.eydpc3MnOiAnam9lJywgJ2V4cCc6IDEzMDA.4MTkzODAsICdodHRwOi8vZXhhbXBsZS5jb20vaXNfcm9vdCc6IFRydWV9.fd59d1eae7485eb12a411dbc7d99bff495030495ad602b7d2dbc58f045747fbb'
0

There are 0 answers