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 az encrypt() 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

    1

    ECB

    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.

    2

    CBC

    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 IV szü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_buf tartalmá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_buf el van hagyva, az eredmény egy újonnan lefoglalt bytes objektumként tér vissza. Egyébként a titkosított szöveg a módosítható out_buf pufferbe íródik, amelynek legalább olyan hosszúnak kell lennie, mint az in_buf. Az in_buf és az out_buf ugyanarra 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.