This commit is contained in:
Markos Gogoulos
2025-12-29 18:48:35 +02:00
parent 06bc64b2c4
commit 77721d9c0e

View File

@@ -4,13 +4,20 @@ LTI Key Management for MediaCMS
Manages RSA keys for signing Deep Linking responses (stored in database) Manages RSA keys for signing Deep Linking responses (stored in database)
""" """
from jwcrypto import jwk
def load_private_key(): def load_private_key():
"""Load private key from database""" """Load private key from database and convert to PEM format for PyJWT"""
from .models import LTIToolKeys from .models import LTIToolKeys
key_obj = LTIToolKeys.get_or_create_keys() key_obj = LTIToolKeys.get_or_create_keys()
return key_obj.private_key_jwk
# Convert JWK dict to PEM string (PyJWT needs PEM format)
jwk_obj = jwk.JWK(**key_obj.private_key_jwk)
pem_bytes = jwk_obj.export_to_pem(private_key=True, password=None)
return pem_bytes.decode('utf-8')
def load_public_key(): def load_public_key():