cryptolib — cifras criptográficas

O módulo cryptolib fornece primitivas de cifra simétrica. Nas OpenMV Cams é incluído sempre que o módulo ssl estiver ativado.

Classes

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

Cria um novo objeto de cifra AES, adequado para encriptação ou desencriptação. Após a inicialização, o objeto de cifra só pode ser utilizado numa direção — executar decrypt() após encrypt() (ou vice-versa) não é suportado.

Parâmetros:

  • key – a chave de encriptação/desencriptação. Deve ter exatamente 16 bytes (AES-128) ou 32 bytes (AES-256); AES-192 não é suportado. É aceite qualquer objeto que implemente o protocolo de buffer.

  • mode – seleciona o modo de cifra de bloco:

    Valor

    Nome

    Descrição

    1

    ECB

    Electronic Code Book. Cada bloco de 16 bytes é encriptado de forma independente; blocos de texto simples idênticos produzem texto cifrado idêntico. Geralmente não recomendado para novos projetos.

    2

    CBC

    Cipher Block Chaining. Cada bloco é sujeito a XOR com o bloco de texto cifrado anterior antes de encriptar. Requer um IV de 16 bytes.

    ECB e CBC exigem que o comprimento da entrada seja um múltiplo do tamanho de bloco AES de 16 bytes.

  • IV – o vetor de inicialização de 16 bytes para o modo CBC. Ignorado no modo ECB.

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

Encripta in_buf. O comprimento do buffer deve ser um múltiplo de 16 bytes; deve-se preencher o texto simples antes de chamar esta função.

Se out_buf for omitido, o resultado é retornado como um objeto bytes recentemente alocado. Caso contrário, o texto cifrado é escrito no buffer mutável out_buf, que deve ter pelo menos o mesmo comprimento que in_buf. in_buf e out_buf podem referenciar o mesmo buffer para encriptação in-place.

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

Semelhante a encrypt(), mas reverte a operação.