我使用这段代码用crypto++验证一条消息:
CryptoPP::ECDSA<CryptoPP::ECP, CryptoPP::SHA256>::Verifier verifier(key);
bool result = verifier.VerifyMessage( (const CryptoPP::byte*)message.data(), message.length(), (const CryptoPP::byte*)signature.data(), signature.length() );现在,我想验证我以前为一个文件创建的签名。该文件相当大(GB),我不希望将它作为一个片段(到message变量)加载到内存中。
是否有一种方法crypto++可以验证大文件的签名?
发布于 2018-10-27 17:28:31
这段代码完成了我需要的任务:
CryptoPP::ECDSA<CryptoPP::ECP, CryptoPP::SHA256>::PublicKey key; key.Load(queue);
CryptoPP::ECDSA<CryptoPP::ECP, CryptoPP::SHA256>::Verifier verifier(key);
CryptoPP::SignatureVerificationFilter verificationFilter(verifier, NULL, CryptoPP::SignatureVerificationFilter::SIGNATURE_AT_BEGIN);
CryptoPP::FileSource fileSource( file, false, new CryptoPP::Redirector(verificationFilter));
CryptoPP::StringSource signatureSource( (const CryptoPP::byte*)signature.data(), signature.length(), false, new CryptoPP::Redirector(verificationFilter));
signatureSource.Pump(signature.length());
fileSource.PumpAll();
return verificationFilter.GetLastResult();https://stackoverflow.com/questions/52966938
复制相似问题