cryptolib — salausalgoritmit

cryptolib-moduuli tarjoaa symmetrisen salauksen perustoiminnot. OpenMV Cam -laitteissa se sisältyy aina, kun ssl-moduuli on käytössä.

Luokat

class cryptolib.aes(key: bytes | bytearray | memoryview, mode: int, IV: bytes | bytearray | memoryview | None = None)

Luo uuden AES-salausobjektin, joka sopii salaukseen tai salauksen purkuun. Alustuksen jälkeen salausobjektia voi käyttää vain yhteen suuntaan — decrypt()-kutsu encrypt()-kutsun jälkeen (tai päinvastoin) ei ole tuettu.

Parametrit:

  • key – salaus-/purkuavain. Pituuden on oltava täsmälleen 16 tavua (AES-128) tai 32 tavua (AES-256); AES-192 ei ole tuettu. Mikä tahansa puskuriprotokollaa noudattava objekti kelpaa.

  • mode – valitsee lohkosalaustilan:

    Arvo

    Nimi

    Kuvaus

    1

    ECB

    Electronic Code Book. Jokainen 16 tavun lohko salataan itsenäisesti; identtiset selvätekstilohkot tuottavat identtisen salatekstin. Yleisesti ei suositella uusissa toteutuksissa.

    2

    CBC

    Cipher Block Chaining. Jokaiseen lohkoon tehdään XOR edellisen salatekstilohkon kanssa ennen salausta. Vaatii 16 tavun IV-arvon.

    Sekä ECB että CBC vaativat, että syötteen pituus on 16 tavun AES-lohkokoon monikerta.

  • IV – 16 tavun alustusvektori CBC-tilaa varten. ECB-tilassa ohitetaan.

encrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes

Salaa in_buf. Puskurin pituuden on oltava 16 tavun monikerta; täydennä selväteksti itse ennen kutsua.

Jos out_buf jätetään pois, tulos palautetaan uutena varattuna bytes-objektina. Muussa tapauksessa salateksti kirjoitetaan muokattavaan puskuriin out_buf, jonka on oltava vähintään yhtä pitkä kuin in_buf. in_buf ja out_buf voivat viitata samaan puskuriin paikallaan tapahtuvaa salausta varten.

decrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes

Kuten encrypt(), mutta suorittaa käänteisen toiminnon.