cryptolib — kriptográfiai titkosítók¶
A cryptolib modul szimmetrikus titkosító primitíveket biztosít. Az OpenMV Cam eszközökön akkor szerepel, amikor az ssl modul engedélyezve van.
Osztályok¶
- class cryptolib.aes(key: bytes | bytearray | memoryview, mode: int, IV: bytes | bytearray | memoryview | None = None)¶
Létrehoz egy új AES titkosító objektumot, amely titkosításra vagy visszafejtésre alkalmas. Az inicializálás után a titkosító objektum csak egy irányban használható — a
decrypt()futtatása azencrypt()után (vagy fordítva) nem támogatott.Paraméterek:
key– a titkosító/visszafejtő kulcs. Pontosan 16 bájt (AES-128) vagy 32 bájt (AES-256) hosszúságúnak kell lennie; az AES-192 nem támogatott. Bármilyen buffer-protokollt megvalósító objektum elfogadható.mode– kiválasztja a blokktitkosító módot:Érték
Név
Leírás
1ECB
Electronic Code Book. Minden 16 bájtos blokk egymástól függetlenül titkosítódik; az azonos nyílt szöveg blokkok azonos titkosított szöveget eredményeznek. Új tervekhez általában nem ajánlott.
2CBC
Cipher Block Chaining. Minden blokk az előző titkosított szöveg blokkjával XOR művelet alá kerül a titkosítás előtt. 16 bájtos
IVszükséges hozzá.Az ECB és a CBC egyaránt megköveteli, hogy a bemenet hossza a 16 bájtos AES blokkméret egész számú többszöröse legyen.
IV– a 16 bájtos inicializálási vektor a CBC módhoz. Az ECB esetén figyelmen kívül marad.
- encrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
Titkosítja az
in_buftartalmát. A puffer hosszának a 16 bájt többszörösének kell lennie; a nyílt szöveget magadnak kell kiegészítened (padding) a hívás előtt.Ha az
out_bufel van hagyva, az eredmény egy újonnan lefoglaltbytesobjektumként tér vissza. Egyébként a titkosított szöveg a módosíthatóout_bufpufferbe íródik, amelynek legalább olyan hosszúnak kell lennie, mint azin_buf. Azin_bufés azout_bufugyanarra a pufferre is hivatkozhat helyben történő titkosításhoz.
- decrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
Mint az
encrypt(), de fordított műveletet végez.