cryptolib — kriptografik şifreler

cryptolib modülü, simetrik şifre ilkelleri sağlar. OpenMV Cam’lerde, ssl modülü etkinleştirildiğinde her zaman dahil edilir.

Sınıflar

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

Şifreleme veya şifre çözme için uygun yeni bir AES şifre nesnesi oluşturur. Başlatıldıktan sonra, şifre nesnesi yalnızca tek bir yönde kullanılabilir — encrypt() sonrasında decrypt() çalıştırmak (veya tersi) desteklenmez.

Parametreler:

  • key – şifreleme/şifre çözme anahtarı. Tam olarak 16 bayt (AES-128) veya 32 bayt (AES-256) olmalıdır; AES-192 desteklenmez. Tampon protokolünü destekleyen herhangi bir nesne kabul edilir.

  • mode – blok şifre modunu seçer:

    Değer

    Ad

    Açıklama

    1

    ECB

    Electronic Code Book. Her 16 baytlık blok bağımsız olarak şifrelenir; özdeş düz metin blokları özdeş şifreli metin üretir. Genellikle yeni tasarımlar için önerilmez.

    2

    CBC

    Cipher Block Chaining. Her blok, şifrelemeden önce önceki şifreli metin bloğuyla XOR’lanır. 16 baytlık bir IV gerektirir.

    ECB ve CBC’nin her ikisi de girdi uzunluğunun 16 baytlık AES blok boyutunun katı olmasını gerektirir.

  • IV – CBC modu için 16 baytlık başlatma vektörü. ECB için yok sayılır.

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

in_buf değerini şifreler. Tampon uzunluğu 16 baytın katı olmalıdır; düz metni çağırmadan önce kendiniz doldurun.

out_buf atlanırsa, sonuç yeni ayrılmış bir bytes nesnesi olarak döndürülür. Aksi takdirde şifreli metin, en az in_buf kadar uzun olması gereken değiştirilebilir out_buf tamponuna yazılır. Yerinde şifreleme için in_buf ve out_buf aynı tamponu işaret edebilir.

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

encrypt() ile aynıdır, ancak işlemi tersine çevirir.