暗号化アルゴリズムのキーが正しくありません
公開鍵の暗号化操作が、コンテキストの初期化で使用されたアルゴリズムでサポートされていない
説明
この欠陥は、特定のアルゴリズム用のキーを使用してコンテキスト オブジェクトを初期化したが、そのアルゴリズムでサポートされていない操作を実行した場合に発生します。
たとえば、DSA アルゴリズムのキーを使用してコンテキストを初期化します。
ret = EVP_PKEY_set1_DSA(pkey,dsa); ctx = EVP_PKEY_CTX_new(pkey, NULL);
ret = EVP_PKEY_encrypt(ctx,out, &out_len, in, in_len);
リスク
アルゴリズムで暗号化操作がサポートされていない場合、期待どおりの結果が表示されません。たとえば、暗号化に DSA アルゴリズムを使用すると、予期しない暗号文になる可能性があります。
修正方法
以下のように、実行する暗号化操作に適したアルゴリズムを使用します。
Diffie-Hellman (DH): キー派生用。
デジタル署名アルゴリズム (DSA): 署名用。
RSA: 暗号化および署名用。
楕円曲線 (EC): キー派生および署名用。
例
結果情報
グループ: 暗号化 |
言語: C | C++ |
既定値: オフ |
コマンド ライン構文: CRYPTO_PKEY_INCORRECT_KEY |
影響度: Medium |
バージョン履歴
R2018a で導入