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ındadecrypt()ç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
1ECB
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.
2CBC
Cipher Block Chaining. Her blok, şifrelemeden önce önceki şifreli metin bloğuyla XOR’lanır. 16 baytlık bir
IVgerektirir.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_bufdeğerini şifreler. Tampon uzunluğu 16 baytın katı olmalıdır; düz metni çağırmadan önce kendiniz doldurun.out_bufatlanırsa, sonuç yeni ayrılmış birbytesnesnesi olarak döndürülür. Aksi takdirde şifreli metin, en azin_bufkadar uzun olması gereken değiştirilebilirout_buftamponuna yazılır. Yerinde şifreleme içinin_bufveout_bufaynı 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.