PK_Signerオブジェクトを初期化しようとしていますが、Botanバージョン1.8.10よりもはるかに多くの問題が発生しているようです。現在、Botanの最新の安定版リリース(1.10)を使用していますが、問題が発生しています...
Botan 1.8.10では、プログラマーが次のようになる例があります。
Botan::RSA_PrivateKey pkey(rng, p, q, 65537, 0, n);
Botan::PK_Signer signer(pkey, "EMSA3(SHA-1)");
Botan 1.10.3には、PK_Signerクラスのようなコンストラクターはありません。2人の構成者がいます:
Botan::PK_Signer(const PK_Signer &);
Botan::PK_Signer(const PK_Signing_Key &key, EMSA *emsa);
2番目のコンストラクターで実際に問題が発生し始めるまで、これは問題ではありませんでした。
私は多くのことを変更しようとしましたが、最も理にかなっている方法は次のようにすることです。Botan :: AutoSeeded_RNG rng; Botan :: RSA_PrivateKey pkey(rng、p、q、0x10001、0、n);
Botan::EMSA3 emsa(Botan::SHA_160);
Botan::PK_Signer signer(pkey, &emsa);
これを行うと、エラーがスローされます。
error: no matching function for call to 'Botan::PK_Signer::PK_Signer(Botan::RSA_PrivateKey&, Botan::EMSA3 (*)(Botan::SHA_160))'
Botanのドキュメントによると、EMSA3は抽象クラスEMSAから継承しているため、なぜこれが発生するのかわかりません。助けてくれてありがとう、Hetelek。