EphemeralSession
Descripción General
Sección titulada «Descripción General»EphemeralSession genera un keypair internamente, expone su clave pública y usa la privada para descifrar. Cerrar la sesión la marca como cerrada y descarta su referencia al keypair.
from aegisq import EphemeralSession
with EphemeralSession() as session: # Solo necesitás la clave pública para cifrar package = session.encrypt( plaintext=b"Datos secretos", recipient_public_key=session.public_key, ) # descifrar mensajes destinados a esta sesión plaintext = session.decrypt(package)
# Al salir se cierra la sesión y se descarta su referencia al keypairReferencia de la API
Sección titulada «Referencia de la API»Constructor
Sección titulada «Constructor»def __init__(self, level: SecurityLevel = SecurityLevel.ML_KEM_768) -> NonePropiedades
Sección titulada «Propiedades»public_key {#public_key}
Sección titulada «public_key {#public_key}»Clave pública de solo lectura. No existe un getter público de clave secreta; es encapsulación de API, no protección frente a inspección de código o memoria del proceso. El acceso después del cierre lanza SessionExpiredError.
session = EphemeralSession()print(session.public_key) # bytes — compartir con el emisorMétodos
Sección titulada «Métodos»encrypt(plaintext, recipient_public_key) {#encrypt}
Sección titulada «encrypt(plaintext, recipient_public_key) {#encrypt}»def encrypt(self, plaintext: bytes, recipient_public_key: bytes) -> bytesCifra datos usando el esquema híbrido ML-KEM + AES-256-GCM.
decrypt(encrypted_package) {#decrypt}
Sección titulada «decrypt(encrypted_package) {#decrypt}»def decrypt(self, encrypted_package: bytes) -> bytesDescifra un Transit Package usando la clave secreta efímera.
close() {#close}
Sección titulada «close() {#close}»def close(self) -> NoneMarca la sesión como cerrada y descarta su referencia al keypair. Es idempotente. El acceso posterior a public_key, encrypt() o decrypt() lanza SessionExpiredError; level sigue siendo legible.
Context Manager
Sección titulada «Context Manager»EphemeralSession soporta el protocolo de context manager:
with EphemeralSession() as session: package = session.encrypt(b"Datos secretos", session.public_key) plaintext = session.decrypt(package)# Se cierra automáticamente la sesión; no se garantiza un borrado completo