INNER CODE UNIT · Python
__init__
open-quantum-safe/liboqs-python · oqs/oqs.py:398
def __init__(self, alg_name: str, secret_key: Union[int, bytes, None] = None) -> None:
"""
Create new KeyEncapsulation with the given algorithm.
:param alg_name: KEM mechanism algorithm name. Enabled KEM mechanisms can be obtained with
get_enabled_KEM_mechanisms().
:param secret_key: optional if generating by generate_keypair() later.
"""
super().__init__()
self.alg_name = alg_name
if alg_name not in _enabled_KEMs:
# perhaps it's a supported but not enabled alg
if alg_name in _supported_KEMs:
raise MechanismNotEnabledError(alg_name)
raise MechanismNotSupportedError(alg_name)
self._kem = native().OQS_KEM_new(ct.create_string_buffer(alg_name.encode()))