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ósencrypt()(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
1ECB
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.
2CBC
Cipher Block Chaining. Cada bloco é sujeito a XOR com o bloco de texto cifrado anterior antes de encriptar. Requer um
IVde 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_buffor omitido, o resultado é retornado como um objetobytesrecentemente alocado. Caso contrário, o texto cifrado é escrito no buffer mutávelout_buf, que deve ter pelo menos o mesmo comprimento quein_buf.in_bufeout_bufpodem 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.