cryptolib — cifrados criptográficos

El módulo cryptolib proporciona primitivas de cifrado simétrico. En las OpenMV Cam se incluye siempre que el módulo ssl esté habilitado.

Clases

class cryptolib.aes(key: bytes | bytearray | memoryview, mode: int, IV: bytes | bytearray | memoryview | None = None)

Crea un nuevo objeto de cifrado AES, apto para cifrado o descifrado. Tras la inicialización, el objeto de cifrado solo puede usarse en una dirección — ejecutar decrypt() después de encrypt() (o viceversa) no está admitido.

Parámetros:

  • key – la clave de cifrado/descifrado. Debe tener exactamente 16 bytes (AES-128) o 32 bytes (AES-256); AES-192 no está admitido. Se acepta cualquier objeto con protocolo de búfer.

  • mode – selecciona el modo de cifrado por bloques:

    Valor

    Nombre

    Descripción

    1

    ECB

    Electronic Code Book. Cada bloque de 16 bytes se cifra de forma independiente; bloques de texto plano idénticos producen texto cifrado idéntico. Generalmente no se recomienda para diseños nuevos.

    2

    CBC

    Cipher Block Chaining. Cada bloque se combina mediante XOR con el bloque de texto cifrado anterior antes del cifrado. Requiere un IV de 16 bytes.

    Tanto ECB como CBC requieren que la longitud de la entrada sea un múltiplo del tamaño de bloque AES de 16 bytes.

  • IV – el vector de inicialización de 16 bytes para el modo CBC. Se ignora para ECB.

encrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes

Cifra in_buf. La longitud del búfer debe ser un múltiplo de 16 bytes; rellena el texto plano tú mismo antes de llamar.

Si se omite out_buf, el resultado se devuelve como un objeto bytes recién asignado. De lo contrario, el texto cifrado se escribe en el búfer mutable out_buf, que debe tener al menos la misma longitud que in_buf. in_buf y out_buf pueden referirse al mismo búfer para el cifrado in situ.

decrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes

Como encrypt(), pero invierte la operación.