Thanks.  I fixed it indeed by replacing

        Decryptor.DEREncode(priv);
        ...
        Encryptor.DEREncode(pub);

by

        Decryptor.AccessMaterial().Save(priv);
        ...
        Encryptor.AccessMaterial().Save(pub);

Thanks!
Bart

On Thursday, February 25, 2021 at 2:41:21 AM UTC+1 Jeffrey Walton wrote:

> On Wed, Feb 24, 2021 at 4:16 PM Bart Vandewoestyne
> <bart.vand...@gmail.com> wrote:
> >
> > Hello list,
> >
> > I am currently upgrading our Crypto++ from 5.6.3 to 8.2.0. We have some 
> code that compiled fine under 5.6.3, but breaks under 8.2.0. To me, it 
> looks like code that creates a Base64 encoded private/public keypair or 
> something:
> >
> > CryptoPP::RSAES_OAEP_SHA_Decryptor Decryptor(rng, nrOfBits /*, e */);
> > CryptoPP::Base64Encoder priv(new
> > CryptoPP::StringSink(privateKey)); // Base64 Encoder
> > Decryptor.DEREncode(priv);
> > priv.MessageEnd();
> >
> > CryptoPP::RSAES_OAEP_SHA_Encryptor Encryptor(Decryptor);
> > CryptoPP::Base64Encoder pub(new
> > CryptoPP::StringSink(publicKey)); // Base64 Encoder
> > Encryptor.DEREncode(pub);
> > pub.MessageEnd();
> >
> > The problem is the calls to DEREncode that worked with 5.6.3 but with 
> 8.2.0 give the error:
> >
> > 1>... blabla.../PPKStringEncryption.cpp(32,13): error C2039: 
> 'DEREncode': is not a member of 
> 'CryptoPP::PK_FinalTemplate<CryptoPP::TF_DecryptorImpl<CryptoPP::TF_CryptoSchemeOptions<ALG_INFO,KEYS,CryptoPP::OAEP<CryptoPP::SHA1,CryptoPP::P1363_MGF1>>>>'
> > 1> with
> > 1> [
> > 1> 
> ALG_INFO=CryptoPP::TF_ES<CryptoPP::RSA,CryptoPP::OAEP<CryptoPP::SHA1,CryptoPP::P1363_MGF1>,int>,
> > 1> KEYS=CryptoPP::RSA
> > 1> ]
> > 1>...blabla...\ThirdParty\CryptoPP\CryptoPP-custom\pubkey.h(2238): 
> message : see declaration of 
> 'CryptoPP::PK_FinalTemplate<CryptoPP::TF_DecryptorImpl<CryptoPP::TF_CryptoSchemeOptions<ALG_INFO,KEYS,CryptoPP::OAEP<CryptoPP::SHA1,CryptoPP::P1363_MGF1>>>>'
> > 1> with
> > 1> [
> > 1> 
> ALG_INFO=CryptoPP::TF_ES<CryptoPP::RSA,CryptoPP::OAEP<CryptoPP::SHA1,CryptoPP::P1363_MGF1>,int>,
> > 1> KEYS=CryptoPP::RSA
> > 1> ]
> >
> > I think it has to do with this GitHub issue about removing 
> AsymmetricAlgorithm::BERDecode:
> >
> > https://github.com/weidai11/cryptopp/issues/569
> >
> > but since the code is heavily templatized and I do not consider myself a 
> template expert, I don't know with what to replace the DEREncode calls... 
> Any help on that would be appreciated!
>
> I vaguely remember that change. According to the change in
> https://github.com/weidai11/cryptopp/commit/9b174e84de7a, you should
> be able to:
>
> AccessMaterial().Load(bt)
> or
> AccessMaterial().Save(bt)
>
> In you case, use the Encryptor object:
>
> Encryptor.AccessMaterial().Save(pub);
>
> Jeff
>

-- 
You received this message because you are subscribed to "Crypto++ Users". More 
information about Crypto++ and this group is available at 
http://www.cryptopp.com and 
http://groups.google.com/forum/#!forum/cryptopp-users.
--- 
You received this message because you are subscribed to the Google Groups 
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cryptopp-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/cryptopp-users/3c323abc-ab78-41e5-8a21-cb280acf3f6cn%40googlegroups.com.

Reply via email to