Dear All,
 Thank you Dave Thompson for your help and clarifying my doubt. 

Thank you.

Regards,

--Ajeet  Kumar  Singh

 

Sarve Bhavantu Sukhina ,Sarve Santu NiramayaSarve Bhadrani Pashyantu , Maa
Kaschit Dukha Bhagh Bhavet 

 

-----Original Message-----
From: owner-openssl-us...@openssl.org
[mailto:owner-openssl-us...@openssl.org] On Behalf Of Dave Thompson
Sent: Saturday, January 31, 2009 8:11 AM
To: openssl-users@openssl.org
Subject: RE: Openssl signature verification

> From: owner-openssl-us...@openssl.org On Behalf Of Ajeet kumar.S
> Sent: Friday, 30 January, 2009 00:07

> In openssl  API  X509_verify(X509 *a, EVP_PKEY *r) is used to verify
> the signature of certificate. I have some doubt please help me.
> Is in this API we are passing the CA certificate and public key of CA
certificate?

We pass any cert and the key we believe (are told) will verify it.
CA "root" certs are self-signed; the key _in_ the cert is used to sign it,
or to be precise the keypair whose public half is in the cert is used.
As a result you can't trust a root cert simply because the signature
verifies;
you must have other evidence this is the/a valid root cert from/for a given
CA,
such as a trusted distribution or manually-checked fingerprint.
Lower-level CA certs (if any) and end-entity certs are signed "by" a parent
cert,
or to be precise by a keypair whose public half is certified by the parent
cert.

If you instead use X509_verify_cert, it tries several methods to find
and verify the whole cert chain (from a root) by looking in (data from)
a configurable file and/or (hashed) entries in a configurable directory.
If you want to do this job or part(s) of it yourself, you can look at that
for an example, but it's pretty complicated.

> What is  data over SSL compute the HASH?

The DER-encoded CertificateInfo portion of the cert, which is the first
element in the outermost SEQUENCE and contains version, serial, copy of
sig-algid, issuer name, subject name & publickey, validity period, and
for v3 optional extensions such as keyusage, subjectaltname, keyids, etc.
This is everything "in" the cert except the appended algid and signature,
and is indented under "Data:" in the display from openssl x509 -text .

> SSL will decrypt the CA signature (Which is on CA certificate bundle)?
> Decrypted CA Signature will match to above HASH.(query 2)?

For RSA signatures this is approximately true.  You actually raise the
signature value to the public exponent (like RSA encryption) rather than
the private exponent (as for RSA decryption), and the (standard) padding
is different for sign/verify than for encrypt/decrypt.

For DSA signatures this is not true at all. There is no corresponding
encryption or decryption; there is simply a signing algorithm and a
verifying algorithm. You apply the verifying algorithm to determine
if the received signature is correct for the (recomputed) hash.

You separately asked
>     In Openssl  for signature verification  we are using API
ASN1_item_verify().
>      Let me know the data which is used for finger print (signature)
creation
> is the CA public key or some thing else data .
>      Please clarify this doubt. How we are verifying the signature?

If you mean in crypto/x509/x_all.c X509_verify(), we are verifying
the signature in the cert, of the data in the cert, using the key.
No fingerprint is involved. This only applies to X509 certs; the
verification of signatures on other things is similar but not identical.

Fingerprints can be used in lots of situations and ways. _PKI_ fingerprints
can meaningfully be computed on either the whole CertificateInfo
thus verifying all the attributes directly, or just on the publickey
since that is enough to verify the signature. But a fingerprint is not
a signature; it does not itself have any cryptographic protection.



______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to