hi, i tried to verify a signature but it fails giving an error code of -1.
can anyone tell me where i might had gone wrong?
i used the RSA_public_decrypt which i think should be the correct function
to use.
pValidationData.rgbValidationData has been signed previously using the
private key.
i'm suspecting it could be some problem with lengths of the variables.
publicKey = RSA_new();
RSAModulus = BN_new();
BN_bin2bn(prgbAttribData, pulAttribDataSize, RSAModulus);
publicKey->n = RSAModulus;
RSAExponent = BN_new();
BN_hex2bn(&RSAExponent, "010001");
publicKey->e = RSAExponent;
outputPlaintext = (unsigned char *)OPENSSL_malloc((unsigned
int)pValidationData.ulValidationDataLength);
// RSA_size(publicKey) returns 256
// pValidationData.ulValidationDataLength is 256 too
result = RSA_public_decrypt(pValidationData.ulValidationDataLength,
pValidationData.rgbValidationData, outputPlaintext, publicKey,
RSA_PKCS1_PADDING);
if (result == -1) {
printf("RSA public dncrypt error!\n");
ERR_get_error();
}
I know this isn't a lot of information why it failed, how do i find out more
about what went wrong?
thanks - adrian