Files
sourcehub/.venv/Lib/site-packages/joserfc/jwa.py
T
2026-09-14 23:22:10 +09:00

101 lines
2.2 KiB
Python

from ._rfc7515.registry import JWSRegistry
from ._rfc7515.model import JWSAlgModel
from ._rfc7516.registry import JWERegistry
from ._rfc7516.models import (
JWEDirectEncryption,
JWEKeyEncryption,
JWEKeyWrapping,
JWEKeyAgreement,
JWEAlgModel,
JWEEncModel,
JWEZipModel,
)
from ._rfc7518.jws_algs import (
NoneAlgorithm,
HMACAlgorithm,
RSAAlgorithm,
ESAlgorithm,
RSAPSSAlgorithm,
JWS_ALGORITHMS as RFC7518_JWS_ALGORITHMS,
)
from ._rfc7518.jwe_algs import (
DirectAlgEncryption,
AESAlgKeyWrapping,
ECDHESAlgKeyAgreement,
AESGCMAlgKeyWrapping,
PBES2HSAlgKeyEncryption,
JWE_ALG_MODELS,
)
from ._rfc7518.jwe_encs import (
CBCHS2EncModel,
GCMEncModel,
JWE_ENC_MODELS,
)
from ._rfc7518.jwe_zips import (
DeflateZipModel,
JWE_ZIP_MODELS,
)
from ._rfc8037.jws_eddsa import EdDSA, EdDSAAlgorithm
from ._rfc8812 import ES256K
from ._rfc9864 import JWS_ALGORITHMS as RFC9864_JWS_ALGORITHMS
from ._keys import KeySet
__all__ = [
# JWS algorithms
"JWS_ALGORITHMS",
"JWSAlgModel",
"NoneAlgorithm",
"HMACAlgorithm",
"RSAAlgorithm",
"ESAlgorithm",
"RSAPSSAlgorithm",
"EdDSAAlgorithm",
# JWE algorithms
"JWE_ALG_MODELS",
"JWE_ENC_MODELS",
"JWE_ZIP_MODELS",
"JWEAlgModel",
"JWEDirectEncryption",
"JWEKeyEncryption",
"JWEKeyWrapping",
"JWEKeyAgreement",
"DirectAlgEncryption",
"AESAlgKeyWrapping",
"ECDHESAlgKeyAgreement",
"AESGCMAlgKeyWrapping",
"PBES2HSAlgKeyEncryption",
"JWEEncModel",
"CBCHS2EncModel",
"GCMEncModel",
"JWEZipModel",
"DeflateZipModel",
# setup methods
"setup_jws_algorithms",
"setup_jwe_algorithms",
]
JWS_ALGORITHMS = [
*RFC7518_JWS_ALGORITHMS,
EdDSA,
ES256K,
*RFC9864_JWS_ALGORITHMS,
]
def setup_jws_algorithms() -> None:
for _alg in JWS_ALGORITHMS:
JWSRegistry.register(_alg)
KeySet.algorithm_keys[_alg.name] = [_alg.key_type]
def setup_jwe_algorithms() -> None:
for _alg in JWE_ALG_MODELS:
KeySet.algorithm_keys[_alg.name] = _alg.key_types
JWERegistry.register(_alg)
for _enc in JWE_ENC_MODELS:
JWERegistry.register(_enc)
for _zip in JWE_ZIP_MODELS:
JWERegistry.register(_zip)