cryptolib — cryptografische versleutelingen

De cryptolib-module biedt primitieven voor symmetrische versleuteling. Op OpenMV Cams wordt deze meegeleverd zodra de ssl-module is ingeschakeld.

Klassen

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

Maak een nieuw AES-cipherobject aan, geschikt voor versleuteling of ontsleuteling. Na initialisatie kan het cipherobject slechts voor één richting worden gebruikt — decrypt() uitvoeren na encrypt() (of omgekeerd) wordt niet ondersteund.

Parameters:

  • key – de versleutelings-/ontsleutelingssleutel. Moet precies 16 bytes (AES-128) of 32 bytes (AES-256) zijn; AES-192 wordt niet ondersteund. Elk object met het bufferprotocol wordt geaccepteerd.

  • mode – selecteert de blokcipher-modus:

    Waarde

    Naam

    Beschrijving

    1

    ECB

    Electronic Code Book. Elk blok van 16 bytes wordt onafhankelijk versleuteld; identieke platte-tekstblokken leveren identieke versleutelde tekst op. Over het algemeen niet aanbevolen voor nieuwe ontwerpen.

    2

    CBC

    Cipher Block Chaining. Elk blok wordt met het vorige versleutelde-tekstblok ge-XORd voordat het wordt versleuteld. Vereist een IV van 16 bytes.

    ECB en CBC vereisen beide dat de invoerlengte een veelvoud is van de AES-blokgrootte van 16 bytes.

  • IV – de initialisatievector van 16 bytes voor de CBC-modus. Wordt genegeerd bij ECB.

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

Versleutel in_buf. De bufferlengte moet een veelvoud van 16 bytes zijn; vul de platte tekst zelf aan vóór het aanroepen.

Als out_buf wordt weggelaten, wordt het resultaat teruggegeven als een nieuw toegewezen bytes-object. Anders wordt de versleutelde tekst geschreven naar de muteerbare buffer out_buf, die minstens even lang moet zijn als in_buf. in_buf en out_buf mogen naar dezelfde buffer verwijzen voor in-place versleuteling.

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

Net als encrypt(), maar voert de bewerking in omgekeerde richting uit.