"Howard Chan" <[EMAIL PROTECTED]> writes:
>
> I have this file which used sha1 hash algorithm to obtain it's message
> digest, and subsequently the digest�was encrypted (signed)�using RSA
> algorithm with a private key from a X.509 certificate.
>
i don't think you can get a private key from an X509 certificate, may be
you meant a PKCS12.
anyway...
>
>
> Now, I have the original file, the signed message digest (from above),
> and I have the corresponding public key of the X.509 certificate.
>
> My question is; what openssl commands can I use now to verify the
> signature of the signed message digest?
>
OpenSSL provides a set of functions called EVP to sign and verify.
to sign
EVP_PKEY* pkey <---- your private key
EVP_MD_CTX ctx;
EVP_SignInit(&ctx, EVP_sha1());
EVP_SignUpdate(&ctx, your_data, your_data_size); <-- n calls
if (!EVP_SignFinal(&ctx, signature_buffer, &signature_len, pkey))
{
// unable to sign
}
to verify
EVP_PKEY* pkey <---- your public key
EVP_MD_CTX ctx;
EVP_VerifyInit(&ctx, type_);
EVP_VerifyUpdate(&ctx, original_data, original_data_size);
if (EVP_VerifyFinal(&ctx, signature_buffer, signature_size,
pkey) == -1)
{
// unable to verify
}
> I have created the�message digest�of the original file already.� I now
> want to know "what can I do with the signed message digest so that I
> can decrypt it (verify) using the public key?"
>
> After decrypting (verifying) it, am I supposed to get the same message
> digest which I created earlier from the original file?
>
yes, that's it. when you get the signature (the encrypted message
digest) it will be decrypted and compared with the message digest
calculated with data you have provided to verify with.
regards,
aleix
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]