cryptolib — kriptografske šifre

Modul cryptolib pruža primitive simetričnih šifri. Na OpenMV Cam uređajima uključen je kad god je omogućen modul ssl.

Klase

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

Stvara novi AES objekt šifre, prikladan za enkripciju ili dekripciju. Nakon inicijalizacije, objekt šifre može se koristiti samo za jedan smjer — pokretanje decrypt() nakon encrypt() (ili obrnuto) nije podržano.

Parametri:

  • key – ključ za enkripciju/dekripciju. Mora imati točno 16 bajtova (AES-128) ili 32 bajta (AES-256); AES-192 nije podržan. Prihvaća se svaki objekt s buffer protokolom.

  • mode – odabire način rada blokovske šifre:

    Vrijednost

    Naziv

    Opis

    1

    ECB

    Electronic Code Book. Svaki 16-bajtni blok šifrira se neovisno; identični blokovi otvorenog teksta daju identičan šifrirani tekst. Općenito se ne preporučuje za nove izvedbe.

    2

    CBC

    Cipher Block Chaining. Svaki blok se XOR-a s prethodnim blokom šifriranog teksta prije enkripcije. Zahtijeva 16-bajtni IV.

    ECB i CBC zahtijevaju da duljina ulaza bude višekratnik 16-bajtne veličine AES bloka.

  • IV – 16-bajtni inicijalizacijski vektor za CBC način rada. Zanemaruje se za ECB.

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

Šifrira in_buf. Duljina međuspremnika mora biti višekratnik 16 bajtova; sami nadopunite otvoreni tekst prije poziva.

Ako se out_buf izostavi, rezultat se vraća kao novododijeljeni bytes objekt. Inače se šifrirani tekst zapisuje u promjenjivi međuspremnik out_buf, koji mora biti barem jednako dug kao in_buf. in_buf i out_buf mogu se odnositi na isti međuspremnik za enkripciju na licu mjesta.

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

Kao encrypt(), ali obrće operaciju.