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()nakonencrypt()(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
1ECB
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.
2CBC
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_bufizostavi, rezultat se vraća kao novododijeljenibytesobjekt. Inače se šifrirani tekst zapisuje u promjenjivi međuspremnikout_buf, koji mora biti barem jednako dug kaoin_buf.in_bufiout_bufmogu 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.