私はECDH鍵交換GOST 34.10-2001をOpenSSL 1.0.0dを使って実装しようとしています。 私はこのようなGOSTエンジンを搭載しています:(私はそう思う)ロードされ、正常に動作しているこの時点で、GOSTエンジンでOpenSSL Gostエンジンの問題
ENGINE * e = ENGINE_by_id("gost");
if(!e)
{
e = ENGINE_by_id("dynamic");
if (!e)
{
ENGINE_load_dynamic();
e = ENGINE_by_id("dynamic");
}
if (e && (!ENGINE_ctrl_cmd_string(e, "SO_PATH", "gost", 0) || !ENGINE_ctrl_cmd_string(e, "LOAD", NULL, 0)))
return 1;
}
if(!ENGINE_init(e))
return 1;
ENGINE_set_default(e, ENGINE_METHOD_ALL);
OpenSSL_add_all_algorithms();
。私はハッシングと暗号化アルゴリズムを使っていくつかのテストを行った。
しかし、私はECDH(他の側の公開鍵をインポートして共有鍵の生成)を実装しようとすると、不適切な結果(共有鍵が相手側と異なる)が発生しています。
私は、a、b、p、q、x、yのパラメータ、チェックされたコードフローをチェックしましたが、何が間違っているのか理解できませんでした。 VKO 34.10から2001アルゴリズムは、\ ccgost \ gost2001_keyx.c(関数VKO_compute_key)のopenssl \エンジンに実装されているが、私は一般的な機能のECDH_compute_keyを呼んでいるとき、それはVKO_compute_keyにはつながらない。
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD94
a6
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD97
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C611070995AD10045841B09B761B893
1
8D91E471E0989CDA27DF505A453F2B7635294F2DDF23E3B122ACC99C9E9F1E14
あり、一つのことです(これを確認するには、VKO_compute_keyの先頭にint3を設定します)。
私は何か誤解しましたか?または、誰かがopensslのgostエンジンを使用して共有鍵を生成する例を表示できますか?