cryptolib — kryptografische Chiffren¶
Das Modul cryptolib stellt Primitive für symmetrische Chiffren bereit. Auf OpenMV Cams ist es immer dann enthalten, wenn das Modul ssl aktiviert ist.
Klassen¶
- class cryptolib.aes(key: bytes | bytearray | memoryview, mode: int, IV: bytes | bytearray | memoryview | None = None)¶
Erstellt ein neues AES-Chiffreobjekt, das für die Verschlüsselung oder Entschlüsselung geeignet ist. Nach der Initialisierung kann das Chiffreobjekt nur für eine Richtung verwendet werden — das Ausführen von
decrypt()nachencrypt()(oder umgekehrt) wird nicht unterstützt.Parameter:
key– der Schlüssel für die Ver-/Entschlüsselung. Muss genau 16 Bytes (AES-128) oder 32 Bytes (AES-256) lang sein; AES-192 wird nicht unterstützt. Jedes Objekt, das das Buffer-Protokoll unterstützt, wird akzeptiert.mode– wählt den Blockchiffremodus aus:Wert
Name
Beschreibung
1ECB
Electronic Code Book. Jeder 16-Byte-Block wird unabhängig verschlüsselt; identische Klartextblöcke ergeben identischen Chiffretext. Für neue Designs im Allgemeinen nicht empfohlen.
2CBC
Cipher Block Chaining. Jeder Block wird vor der Verschlüsselung mit dem vorherigen Chiffretextblock per XOR verknüpft. Erfordert einen 16-Byte-
IV.ECB und CBC erfordern beide, dass die Eingabelänge ein Vielfaches der 16-Byte-AES-Blockgröße ist.
IV– der 16-Byte-Initialisierungsvektor für den CBC-Modus. Wird bei ECB ignoriert.
- encrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
Verschlüsselt
in_buf. Die Pufferlänge muss ein Vielfaches von 16 Bytes sein; füllen Sie den Klartext vor dem Aufruf selbst auf.Wird
out_bufweggelassen, wird das Ergebnis als neu zugewiesenesbytes-Objekt zurückgegeben. Andernfalls wird der Chiffretext in den veränderbaren Pufferout_bufgeschrieben, der mindestens so lang wiein_bufsein muss.in_bufundout_bufdürfen für eine In-Place-Verschlüsselung auf denselben Puffer verweisen.
- decrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
Wie
encrypt(), kehrt jedoch die Operation um.