暗号アルゴリズムがありません
暗号化または復号化のアルゴリズムが暗号コンテキストに関連付けられていない
説明
この欠陥は、暗号コンテキストの設定時に暗号アルゴリズムを割り当てなかった場合に発生します。
暗号コンテキストは、アルゴリズムを指定しないで初期化することができます。ただし、データを暗号化または復号化する前には、暗号コンテキストに暗号アルゴリズムを関連付けなければなりません。
リスク
暗号アルゴリズムがないと、ランタイム エラーが発生するか、少なくとも安全ではない暗号文になる可能性があります。
暗号化または復号化の前には、暗号アルゴリズムとモード、暗号化または復号化のキー、初期化ベクトル (初期化ベクトルが必要なモードの場合) など、暗号化に必要な情報をもつ暗号コンテキストを設定します。
ret = EVP_EncryptInit(&ctx, EVP_aes_128_cbc(), key, iv)
EVP_aes_128_cbc() は、暗号化に高度暗号化標準 (AES) アルゴリズムを使用しなければならないことを指定します。また、128 ビットのブロック サイズと、Cipher Block Chaining (CBC) モードも指定しています。アルゴリズムを指定する代わりに、初期化ステップで NULL を使用することができます。ただし、暗号化または復号化に暗号コンテキストを使用する前に、アルゴリズムを暗号コンテキストに関連付ける追加の初期化を実行しなければなりません。そうでない場合、暗号化または復号化の更新ステップでランタイム エラーが発生する可能性があります。
修正方法
暗号化または復号化のステップの前
ret = EVP_EncryptUpdate(&ctx, out_buf, &out_len, src, len)
ctx にアルゴリズムを関連付けます。ret = EVP_EncryptInit(ctx, EVP_aes_128_cbc(), key, iv)
例
結果情報
| グループ: 暗号化 |
| 言語: C | C++ |
| 既定値: オフ |
コマンド ライン構文: CRYPTO_CIPHER_NO_ALGORITHM |
| 影響度: Medium |
バージョン履歴
R2017a で導入