I am trying to create JWT with KID, alg=RS256, TypeError: Expecting a PEM-formatted key. import json
import jwt
from cryptography.hazmat.backends.openssl import rsa
from cryptography.hazmat.primitives import serialization
body={
"sub": "createjwt",
"iss": "sktestissuer",
"exp":9283750542
}
private_key={
"p": "atewtwetwqetasdfaerawerqwerqwur",
"kty": "RSA",
"q": "atewtwetwqetasdfaerawerqwerqwF",
"d": "atewtwetwqetasdfaerawerqwerqw",
"e": "ABCD",
"use": "sig",
"kid": "test_key",
"qi": "atewtwetwqetasdfaerawerqwerqw",
"dp": "atewtwetwqetasdfaerawerqwerqw",
"dq": "atewtwetwqetasdfaerawerqwerqw",
"n": "atewtwetwqetasdfaerawerqwerqw"
}
public_key={
"kty": "RSA",
"e": "ABCD",
"use": "sig",
"kid": "test_key",
"n": "test-13245"}
print(type(private_key))
#key=json.dumps(private_key)
#print(type(key))
#private_key1=rsa.RSAPrivateKey().public_key()
encoded = jwt.encode(body,private_key,headers={"kid": "test_key"}, algorithm="RS256")
print(encoded)
Traceback (most recent call last): File "C:\Users\PycharmProjects\seleniumproject\testpractive\jwt_test.py", line 52, in encoded = jwt.encode(body,private_key,headers={"kid": "test_key"}, algorithm="RS256") File "C:\Users\PycharmProjects\seleniumproject\venv\lib\site-packages\jwt\api_jwt.py", line 63, in encode return api_jws.encode(json_payload, key, algorithm, headers, json_encoder) File "C:\Users\PycharmProjects\seleniumproject\venv\lib\site-packages\jwt\api_jws.py", line 110, in encode key = alg_obj.prepare_key(key) File "C:\Users\PycharmProjects\seleniumproject\venv\lib\site-packages\jwt\algorithms.py", line 260, in prepare_key raise TypeError("Expecting a PEM-formatted key.") TypeError: Expecting a PEM-formatted key.