cryptolib — kryptografiska chiffer¶
Modulen cryptolib tillhandahåller primitiver för symmetriska chiffer. På OpenMV Cam ingår den närhelst modulen ssl är aktiverad.
Klasser¶
- class cryptolib.aes(key: bytes | bytearray | memoryview, mode: int, IV: bytes | bytearray | memoryview | None = None)¶
Skapar ett nytt AES-chifferobjekt, lämpligt för kryptering eller dekryptering. Efter initiering kan chifferobjektet endast användas för en riktning — att köra
decrypt()efterencrypt()(eller tvärtom) stöds inte.Parametrar:
key– krypterings-/dekrypteringsnyckeln. Måste vara exakt 16 byte (AES-128) eller 32 byte (AES-256); AES-192 stöds inte. Alla objekt som följer buffertprotokollet accepteras.mode– väljer blockchifferläget:Värde
Namn
Beskrivning
1ECB
Electronic Code Book. Varje 16-bytes block krypteras oberoende; identiska klartextblock ger identisk chiffertext. Rekommenderas i allmänhet inte för nya konstruktioner.
2CBC
Cipher Block Chaining. Varje block XOR:as med föregående chiffertextblock före kryptering. Kräver en 16-bytes
IV.Både ECB och CBC kräver att indatalängden är en multipel av AES-blockstorleken på 16 byte.
IV– den 16-bytes initialiseringsvektorn för CBC-läge. Ignoreras för ECB.
- encrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
Krypterar
in_buf. Buffertlängden måste vara en multipel av 16 byte; fyll ut klartexten själv före anropet.Om
out_bufutelämnas returneras resultatet som ett nyallokeratbytes-objekt. Annars skrivs chiffertexten till den muterbara buffertenout_buf, som måste vara minst lika lång somin_buf.in_bufochout_buffår referera till samma buffert för kryptering på plats.
- decrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
Som
encrypt(), men omvänder operationen.