mirror of
https://github.com/mediacms-io/mediacms.git
synced 2026-01-20 07:12:58 -05:00
39 lines
865 B
Python
39 lines
865 B
Python
"""
|
|
LTI Key Management for MediaCMS
|
|
|
|
Manages RSA keys for signing Deep Linking responses (stored in database)
|
|
"""
|
|
|
|
|
|
def load_private_key():
|
|
"""Load private key from database"""
|
|
from .models import LTIToolKeys
|
|
|
|
key_obj = LTIToolKeys.get_or_create_keys()
|
|
return key_obj.private_key_jwk
|
|
|
|
|
|
def load_public_key():
|
|
"""Load public key from database"""
|
|
from .models import LTIToolKeys
|
|
|
|
key_obj = LTIToolKeys.get_or_create_keys()
|
|
return key_obj.public_key_jwk
|
|
|
|
|
|
def get_jwks():
|
|
"""
|
|
Get JWKS (JSON Web Key Set) for public keys
|
|
|
|
Returns public keys in JWKS format for the /lti/jwks/ endpoint
|
|
"""
|
|
public_key = load_public_key()
|
|
return {'keys': [public_key]}
|
|
|
|
|
|
def ensure_keys_exist():
|
|
"""Ensure key pair exists in database, generate if not"""
|
|
from .models import LTIToolKeys
|
|
|
|
LTIToolKeys.get_or_create_keys()
|