Hello All!
I have a problem when verifying a signature.
What have I done wrong and why my stack breaks?
bool f(PCBYTE pSignature, int signatureSize,
PCBYTE pModulus, int pModulusSize,
PCBYTE pKey, int pKeySize,
PCBYTE pMessage, int pMessageSize)
{
StringSource signature(pSignature, signatureSize, true, new ByteQueue);
RSASSA_PKCS1v15_SHA_Verifier *ppub;
VerifierFilter *verifierFilter;
ppub = new RSASSA_PKCS1v15_SHA_Verifier(Integer(pModulus, pModulusSize),
Integer(pKey, pKeySize));
if(signature.MaxRetrievable() != ppub->SignatureLength())
{
delete ppub;
return false;
}
SecByteBlock sb_signature(ppub->SignatureLength());
signature.Get(sb_signature, sb_signature.size);
verifierFilter = new VerifierFilter(*ppub);
verifierFilter->PutSignature(sb_signature);
StringSource ss(pMessage, pMessageSize, true, verifierFilter);
byte result = 0;
ss.Get(result);
delete ppub;
return result == 1;
}
Regards,
Voronkov Konstantin
ICQ 40202717