Ir al contenido

Métodos Asíncronos

AegisCipher provee los métodos encrypt_async() y decrypt_async() que corren en un ThreadPoolExecutor sin bloquear el event loop.

Estos wrappers solo delegan cifrado y descifrado. generate_keypair() es síncrono; use un worker para generar claves dentro del event loop. Cancelar la tarea que espera no garantiza que el trabajo nativo iniciado se detenga ni que sus buffers se borren inmediatamente.

import asyncio
from aegisq import AegisCipher, SecurityLevel
async def main():
cipher = AegisCipher(level=SecurityLevel.ML_KEM_768)
keypair = await asyncio.to_thread(cipher.generate_keypair)
# Cifrado no bloqueante
package = await cipher.encrypt_async(
b"Datos secretos",
keypair.public_key,
)
# Descifrado no bloqueante
plaintext = await cipher.decrypt_async(
package,
keypair.secret_key,
)
print(plaintext) # b'Datos secretos'
asyncio.run(main())

encrypt_async(plaintext, recipient_public_key) {#encrypt_async}

Sección titulada «encrypt_async(plaintext, recipient_public_key) {#encrypt_async}»
async def encrypt_async(self, plaintext: bytes, recipient_public_key: bytes) -> bytes

Cifra el plaintext usando el esquema híbrido. Corre en un thread pool.

decrypt_async(encrypted_package, secret_key) {#decrypt_async}

Sección titulada «decrypt_async(encrypted_package, secret_key) {#decrypt_async}»
async def decrypt_async(self, encrypted_package: bytes, secret_key: bytes) -> bytes

Descifra el Transit Package. Corre en un thread pool.