さて、私は最近、個人的な地獄を経験してきました
RSA を使用して暗号化されたメッセージの復号化に問題があり、常に「RSA/OAEP-MGF1(SHA-1): 無効な暗号文」で失敗しています。
base64 でエンコードされた秘密鍵があり、それをロードします。
RSA::PrivateKey private_key; StringSource file_pk(PK,true,new Base64Decoder); private_key.Load( file_pk );
次に、次のようにしてメッセージをデコードします。
RSAES_OAEP_SHA_Decryptor decryptor(private_key); AutoSeededRandomPool rng; string result; StringSource(ciphertext, true, new PK_DecryptorFilter(rng, decryptor, new StringSink(result) ) );
私が知る限り、メッセージは問題なく解析されているはずです。ciphertext は std::string であるため、最後に \0 がなく、予期しないことが起こります。
秘密鍵が間違っていても、BER デコード エラーをスローせずにロードできる場合はどうでしょうか。復号化するときに何がスローされますか?
誰もがこれに光を当てることができることを願っています。
乾杯