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 -- ブロック暗号モードを選択します:

    名前

    説明

    1

    ECB

    Electronic Code Book(電子符号表)。各 16 バイトブロックが独立して暗号化されます。同一の平文ブロックは同一の暗号文を生成します。一般に新規設計では推奨されません。

    2

    CBC

    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_bufout_buf は同じバッファを参照しても構いません。

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

encrypt() と同様ですが、操作を逆向きに行います。