根据RSA-PSSR-Filter-Test.zip示例,我正在使用crypto++
here
它是有效的。
我正试图找到一些可靠的方法,在Qt应用程序中使用私钥对消息进行签名,并使用公钥以编程方式验证消息的来源。
我很高兴能够在验证签名的同时提取信息:
StringSource(signature, true,
new SignatureVerificationFilter(
verifier,
new StringSink(recovered),
SignatureVerificationFilter::THROW_EXCEPTION | SignatureVerificationFilter::PUT_MESSAGE) // SignatureVerificationFilter
); // StringSource
assert(ui->plainTextEdit->toPlainText().toStdString() == recovered);
但是SHA1是不安全的。
然后我发现
this example
bool result = false;
Verifier verifier(publicKey);
CryptoPP::StringSource ss2(decodedSignature + aMessage, true,
new CryptoPP::SignatureVerificationFilter(verifier,
new CryptoPP::ArraySink((byte*)&result,
sizeof(result))));
return result;
我试图将代码转换为类似于SHA1示例的代码,但这并没有提取任何消息:
CryptoPP::StringSource ss2(decodedSignature, true,
new CryptoPP::SignatureVerificationFilter(verifier,
new StringSink(recovered)));
我还想知道这里“新”分配的用法;这段代码真的会泄漏内存吗?
我对任何错误的术语表示歉意;我不在安全领域。