CryptMT
1.0
|
#include <cryptmt.h>
データ構造 | |
class | stage_exception |
CryptMT の状態エラー [詳細] | |
Public メソッド | |
cryptmt::CryptMT::stage_exception std::runtime_error | CryptMT (const uint8_t *key, int keysize, int ivsize) throw (std::bad_alloc,std::invalid_argument) |
キー長とIV長はビット単位の長さであり、128 の倍数で maxKeySize(), 以下の数である必要がある。 この条件に違反するとinvalid_argument 例外が発生する。 必要な内部メモリ割り当てに失敗するとbad_alloc例外が発生する。 [詳細] | |
void | IVSetUp (const uint8_t *iv) |
初期化ベクトル設定 [詳細] | |
void | encrypt (const uint8_t *plaintext, uint8_t *ciphertext, uint64_t msglen) throw (stage_exception) |
plaintext を暗号化して ciphertext にセットする。 plaintext と ciphertext のアドレスは整列されて いなければならない。aligned_alloc() を使用すれば整列された アドレスのメモリが取得できる。 [詳細] | |
void | decrypt (const uint8_t *ciphertext, uint8_t *plaintext, uint64_t msglen) throw (stage_exception) |
ciphertext を復号して plaintext にセットする。 stream 暗号の場合、暗号化と復号は同じ処理である。 plaintext と ciphertext のアドレスは整列されて いなければならない。aligned_alloc() を使用すれば整列された アドレスのメモリが取得できる。 [詳細] | |
void | encryptPacket (const uint8_t *iv, const uint8_t *plaintext, uint8_t *ciphertext, uint64_t msglen) |
iv でsetUpIV() してから、 plaintext を暗号化して ciphertext にセットする。 plaintext と ciphertext のアドレスは整列されて いなければならない。aligned_alloc() を使用すれば整列された アドレスのメモリが取得できる。 [詳細] | |
void | decryptPacket (const uint8_t *iv, const uint8_t *ciphertext, uint8_t *plaintext, uint64_t msglen) |
iv でsetUpIV() してから、 ciphertext を復号して plaintext にセットする。 plaintext と ciphertext のアドレスは整列されて いなければならない。aligned_alloc() を使用すれば整列された アドレスのメモリが取得できる。 [詳細] | |
void | encryptBlocks (const uint8_t *plaintext, uint8_t *ciphertext, uint32_t blocks) throw (stage_exception) |
plaintext を暗号化して ciphertext にセットする。 1 ブロックの長さは、 blockLength() で取得できる。 plaintext と ciphertext のアドレスは整列されて いなければならない。aligned_alloc() を使用すれば整列された アドレスのメモリが取得できる。 [詳細] | |
void | decryptBlocks (const uint8_t *ciphertext, uint8_t *plaintext, uint32_t blocks) throw (stage_exception) |
ciphertext を復号して plaintext にセットする。 1 ブロックの長さは、 blockLength() で取得できる。 plaintext と ciphertext のアドレスは整列されて いなければならない。aligned_alloc() を使用すれば整列された アドレスのメモリが取得できる。 [詳細] | |
uint32_t | blockLength () |
encryptBlocks(), decryptBlocks() を使うときに 必要となるブロック長を返す。 [詳細] | |
CryptMT ストリーム暗号
cryptmt::CryptMT::stage_exception std::runtime_error cryptmt::CryptMT::CryptMT | ( | const uint8_t * | key, |
int | keysize, | ||
int | ivsize | ||
) | throw (std::bad_alloc,std::invalid_argument) |
キー長とIV長はビット単位の長さであり、128 の倍数で maxKeySize(), 以下の数である必要がある。 この条件に違反するとinvalid_argument 例外が発生する。 必要な内部メモリ割り当てに失敗するとbad_alloc例外が発生する。
[in] | key | 暗号化キー |
[in] | keysize | ビット単位のキーサイズ |
[in] | ivsize | ビット単位のIVサイズ |
std::bad_alloc | 内部メモリの割り当てに失敗した時 |
std::invalid_argument | keysize または ivsize が適切でない。 |
uint32_t cryptmt::CryptMT::blockLength | ( | ) |
encryptBlocks(), decryptBlocks() を使うときに 必要となるブロック長を返す。
|
inline |
ciphertext を復号して plaintext にセットする。 stream 暗号の場合、暗号化と復号は同じ処理である。 plaintext と ciphertext のアドレスは整列されて いなければならない。aligned_alloc() を使用すれば整列された アドレスのメモリが取得できる。
この関数の実行後は、IVSetUp を実行するまでは、以下の暗号化および 復号関数を実行してはならない。 encrypt(),decrypt(), encryptBlocks(),decryptBlocks().
[in] | ciphertext | 暗号文 |
[out] | plaintext | 平文 |
[in] | msglen | 暗号文の長さ(バイト) |
stage_exception | IVSetUp() を実行していない、または decrypt() 呼び出しの後に IVSetUp() を実行していない。 |
参照先 encrypt().
|
inline |
ciphertext を復号して plaintext にセットする。 1 ブロックの長さは、 blockLength() で取得できる。 plaintext と ciphertext のアドレスは整列されて いなければならない。aligned_alloc() を使用すれば整列された アドレスのメモリが取得できる。
[in] | ciphertext | 暗号文 |
[out] | plaintext | 平文 |
[in] | blocks | 平文の長さ(ブロック数) |
stage_exception | IVSetUp() を実行していない、または decrypt() 呼び出しの後に IVSetUp() を実行していない。 |
参照先 encryptBlocks().
|
inline |
iv でsetUpIV() してから、 ciphertext を復号して plaintext にセットする。 plaintext と ciphertext のアドレスは整列されて いなければならない。aligned_alloc() を使用すれば整列された アドレスのメモリが取得できる。
この関数の実行後は、IVSetUp を実行するまでは、以下の暗号化および 復号関数を実行してはならない。 encrypt(),decrypt(), encryptBlocks(),decryptBlocks().
[in] | iv | 初期化ベクトル |
[in] | ciphertext | 暗号文 |
[out] | plaintext | 平文 |
[in] | msglen | 平文の長さ(バイト) |
参照先 encryptPacket().
void cryptmt::CryptMT::encrypt | ( | const uint8_t * | plaintext, |
uint8_t * | ciphertext, | ||
uint64_t | msglen | ||
) | throw (stage_exception) |
plaintext を暗号化して ciphertext にセットする。 plaintext と ciphertext のアドレスは整列されて いなければならない。aligned_alloc() を使用すれば整列された アドレスのメモリが取得できる。
この関数の実行後は、IVSetUp を実行するまでは、以下の暗号化および 復号関数を実行してはならない。 encrypt(), decrypt(), encryptBlocks(), decryptBlocks().
[in] | plaintext | 平文 |
[out] | ciphertext | 暗号文 |
[in] | msglen | 平文の長さ(バイト) |
stage_exception | IVSetUp() を実行していない、または encrypt() 呼び出しの後に IVSetUp() を実行していない。 |
参照元 decrypt(), と encryptPacket().
void cryptmt::CryptMT::encryptBlocks | ( | const uint8_t * | plaintext, |
uint8_t * | ciphertext, | ||
uint32_t | blocks | ||
) | throw (stage_exception) |
plaintext を暗号化して ciphertext にセットする。 1 ブロックの長さは、 blockLength() で取得できる。 plaintext と ciphertext のアドレスは整列されて いなければならない。aligned_alloc() を使用すれば整列された アドレスのメモリが取得できる。
[in] | plaintext | 平文 |
[out] | ciphertext | 暗号文 |
[in] | blocks | 平文の長さ(ブロック数) |
stage_exception | IVSetUp() を実行していない、または decrypt() 呼び出しの後に IVSetUp() を実行していない。 |
参照元 decryptBlocks().
|
inline |
iv でsetUpIV() してから、 plaintext を暗号化して ciphertext にセットする。 plaintext と ciphertext のアドレスは整列されて いなければならない。aligned_alloc() を使用すれば整列された アドレスのメモリが取得できる。
この関数の実行後は、IVSetUp を実行するまでは、以下の暗号化および 復号関数を実行してはならない。 encrypt(),decrypt(), encryptBlocks(),decryptBlocks().
[in] | iv | 初期化ベクトル |
[in] | plaintext | 平文 |
[out] | ciphertext | 暗号文 |
[in] | msglen | 平文の長さ(バイト) |
参照元 decryptPacket().
void cryptmt::CryptMT::IVSetUp | ( | const uint8_t * | iv | ) |
初期化ベクトル設定
暗号化をする前に初期ベクトル設定をしなければならない。 この条件に反すると、stage_exception 例外が発生する。
iv | 初期化ベクトル |
参照元 encryptPacket().