> [ding...@hotmail.com - Tue Mar 03 08:06:37 2009]:
> 
> 
> 
> Hi all,
> 
> In the current release OpenSSL 0.9.8j, there are two bugs in
>    ./crpto/x509/x509_vfy.c and ./crpto/x509/x509_cmp.c
> 
> Here are the details:
> 
> 1) The return value of function X509_NAME_cmp in
>    ./crpto/x509/x509_cmp.c is not consistent. X509_NAME_cmp(a,b)
>    should not only return boolean value (a=b or not) but also need to
>    return 0 means a>b, =0 means a=b. Since this function is ued in
>    sort and bsearch function, the return value should be absolutely
>    consistent. Say if a>b, b>c, then a>c should be expected. The
>    current logic may return conflict result.
> 
> We have a CA cert file which contains over 300 trusted CA certs, if we
>    enumerate the whole list and call X509_find_by_subjet,
>    X509_find_by_subjec will failed on some certs due to this problem.
> 
> FIX: return a memcmp(a,b) value once we find any diffrence.
> 

An update to X509_NAME_cmp() was applied to 0.9.8-stable recently,
please try a recent snapshot.

The "right" way is in 0.9.9-dev but the changes are considerable and
change some public structures.

> 2) X509_verify_cert function in ./crpto/x509/x509_vfy.c will only
>    verify cert chain against the first cert in a trusted CA cert list.
> 
> In the same cert file, we have two CA certs that have excat same
>    subjet line. Since  X509_find_by_subjet can only return the first
>    CA cert found in the list, X509_verify_cert failed to verify a cert
>    signed by the second CA sert, the root CA cert of this cert is in
>    the ca cert list but cannot be returned  by X509_find_by_subjet
>    function.
> 
> FIX:  X509_find_by_subjet should return a NULL ended x509_NAME array,
>    the X509_verify_cer then can try all the CA cert instances to
>    verify the cert chain.
> 
> BTW, we prepared the CA cert file by importing root CA certs from
>    IE7/Firefox3 and other truscted source. So it a real problem.
> 
> 

If the subject names are identical but the chain can be determined by
SKID/AKID then OpenSSL should handle this case correctly.

If not please send me an example that misbehaves.

Steve.


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to