cryptolib --- cipher kriptografi¶
Modul cryptolib menyediakan primitif cipher simetris. Pada OpenMV Cam, modul ini disertakan setiap kali modul ssl diaktifkan.
Kelas¶
- class cryptolib.aes(key: bytes | bytearray | memoryview, mode: int, IV: bytes | bytearray | memoryview | None = None)¶
Buat objek cipher AES baru, yang sesuai untuk enkripsi atau dekripsi. Setelah inisialisasi, objek cipher hanya dapat digunakan untuk satu arah --- menjalankan
decrypt()setelahencrypt()(atau sebaliknya) tidak didukung.Parameter:
key-- kunci enkripsi/dekripsi. Harus tepat 16 byte (AES-128) atau 32 byte (AES-256); AES-192 tidak didukung. Objek apa pun yang mendukung protokol buffer diterima.mode-- memilih mode cipher blok:Nilai
Nama
Deskripsi
1ECB
Electronic Code Book. Setiap blok 16-byte dienkripsi secara independen; blok plaintext yang identik menghasilkan ciphertext yang identik. Umumnya tidak direkomendasikan untuk desain baru.
2CBC
Cipher Block Chaining. Setiap blok di-XOR dengan blok ciphertext sebelumnya sebelum enkripsi. Memerlukan
IVsepanjang 16 byte.ECB dan CBC keduanya mengharuskan panjang input kelipatan dari ukuran blok AES 16-byte.
IV-- vektor inisialisasi 16-byte untuk mode CBC. Diabaikan untuk ECB.
- encrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
Enkripsi
in_buf. Panjang buffer harus kelipatan 16 byte; lakukan padding pada plaintext sendiri sebelum memanggil fungsi ini.Jika
out_bufdihilangkan, hasilnya dikembalikan sebagai objekbytesyang baru dialokasikan. Jika tidak, ciphertext ditulis ke dalam buffer yang dapat diubahout_buf, yang harus setidaknya sepanjangin_buf.in_bufdanout_bufdapat merujuk ke buffer yang sama untuk enkripsi di tempat.
- decrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
Seperti
encrypt(), tetapi membalik operasinya.