cryptolib --- 暗号化用の暗号アルゴリズム¶
cryptolib モジュールは対称暗号のプリミティブを提供します。OpenMV Cam では ssl モジュールが有効な場合に常に含まれます。
クラス¶
- class cryptolib.aes(key: bytes | bytearray | memoryview, mode: int, IV: bytes | bytearray | memoryview | None = None)¶
暗号化または復号に使用できる新しい AES 暗号オブジェクトを作成します。初期化後、この暗号オブジェクトは一方向にのみ使用できます。
encrypt()の後にdecrypt()を実行する(またはその逆)ことはサポートされていません。パラメータ:
key-- 暗号化/復号鍵。正確に 16 バイト(AES-128)または 32 バイト(AES-256)である必要があります。AES-192 はサポートされていません。バッファプロトコルに対応した任意のオブジェクトを受け付けます。mode-- ブロック暗号モードを選択します:値
名前
説明
1ECB
Electronic Code Book(電子符号表)。各 16 バイトブロックが独立して暗号化されます。同一の平文ブロックは同一の暗号文を生成します。一般に新規設計では推奨されません。
2CBC
Cipher Block Chaining(暗号ブロック連鎖)。各ブロックは暗号化前に直前の暗号文ブロックと XOR されます。16 バイトの
IVが必要です。ECB と CBC はいずれも、入力長が 16 バイトの AES ブロックサイズの倍数である必要があります。
IV-- CBC モード用の 16 バイトの初期化ベクトル。ECB では無視されます。
- encrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
in_bufを暗号化します。バッファ長は 16 バイトの倍数である必要があります。呼び出す前に平文を自分でパディングしてください。out_bufを省略した場合、結果は新しく割り当てられたbytesオブジェクトとして返されます。それ以外の場合、暗号文は可変バッファout_bufに書き込まれます。これは少なくともin_bufと同じ長さである必要があります。インプレース暗号化のためにin_bufとout_bufは同じバッファを参照しても構いません。
- decrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
encrypt()と同様ですが、操作を逆向きに行います。