On Friday, August 16, 2013 3:28:52 AM UTC-4, robert.hegner wrote: > > Hi there! > > I have a binary file with the following content > > - length of the signature as an uint32 > - signature > - length of the data as an uint32 > - data > > and I'd like to verify the data. First I create my verifier like this: > > CryptoPP::RSA::PublicKey publicKey; > CryptoPP::Integer n(PUBLIC_KEY_MODULUS, sizeof(PUBLIC_KEY_MODULUS)); > CryptoPP::Integer e(PUBLIC_KEY_EXPONENT, sizeof(PUBLIC_KEY_EXPONENT)); > publicKey.Initialize(n, e); > CryptoPP::RSASS<CryptoPP::PKCS1v15, CryptoPP::SHA1>::Verifier > verifier(publicKey); > > Then I tried the following for verifying the data: > > CryptoPP::VerifierFilter* verifierFilter = new > CryptoPP::VerifierFilter(verifier); > CryptoPP::FileSource fileSource(packagePath.c_str(), false, > verifierFilter); > uint32_t len; > fileSource.GetWord32(len); // get signature length > fileSource.Pump(len); // pump signature length to verifier filter > fileSource.GetWord32(len); // get data length > fileSource.Pump(len); // pump data to verifier filter > bool valid = verifierFilter->GetLastResult(); > > But it returns false. I also tried this: > > CryptoPP::FileSource fileSource(packagePath.c_str(), true); > CryptoPP::VerifierFilter verifierFilter(verifier); > uint32_t len; > fileSource.GetWord32(len); > fileSource.TransferTo(verifierFilter, len); > fileSource.GetWord32(len); > fileSource.TransferTo(verifierFilter, len); > bool valid = verifierFilter.GetLastResult(); > > But it doesn't work either. > > What's wrong with this code? > Try using a class that subclasses PK_Verifier. For example, RSASS<PSS, SHA1>::Verifier. http://www.cryptopp.com/docs/ref/class_p_k___verifier.html.
Some sample code using RSA are available on the wiki. http://www.cryptopp.com/wiki/RSA_Signature_Schemes. Jeff -- -- You received this message because you are subscribed to the "Crypto++ Users" Google Group. To unsubscribe, send an email to [email protected]. More information about Crypto++ and this group is available at http://www.cryptopp.com. --- 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 [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
