[openssl-commits] [openssl] master update

Viktor Dukhovni viktor at openssl.org
Fri Jan 29 15:53:55 UTC 2016


The branch master has been updated
       via  aea6116146ef462d11950ebf701e0f56a38b3d75 (commit)
      from  d8ca44ba4158a9dafeaa30d3cba6f113904d2aa6 (commit)


- Log -----------------------------------------------------------------
commit aea6116146ef462d11950ebf701e0f56a38b3d75
Author: Viktor Dukhovni <openssl-users at dukhovni.org>
Date:   Wed Jan 27 22:43:23 2016 -0500

    Make it possible to check for explicit auxiliary trust
    
    By default X509_check_trust() trusts self-signed certificates from
    the trust store that have no explicit local trust/reject oids
    encapsulated as a "TRUSTED CERTIFICATE" object.  (See the -addtrust
    and -trustout options of x509(1)).
    
    This commit adds a flag that makes it possible to distinguish between
    that implicit trust, and explicit auxiliary settings.
    
    With flags |= X509_TRUST_NO_SS_COMPAT, a certificate is only trusted
    via explicit trust settings.
    
    Reviewed-by: Dr. Stephen Henson <steve at openssl.org>

-----------------------------------------------------------------------

Summary of changes:
 crypto/x509/x509_trs.c | 2 +-
 include/openssl/x509.h | 5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/crypto/x509/x509_trs.c b/crypto/x509/x509_trs.c
index 72c8110..7392c55 100644
--- a/crypto/x509/x509_trs.c
+++ b/crypto/x509/x509_trs.c
@@ -285,7 +285,7 @@ static int trust_compat(X509_TRUST *trust, X509 *x, int flags)
 {
     /* Call for side-effect of computing hash and caching extensions */
     X509_check_purpose(x, -1, 0);
-    if (x->ex_flags & EXFLAG_SS)
+    if ((flags & X509_TRUST_NO_SS_COMPAT) == 0 && x->ex_flags & EXFLAG_SS)
         return X509_TRUST_TRUSTED;
     else
         return X509_TRUST_UNTRUSTED;
diff --git a/include/openssl/x509.h b/include/openssl/x509.h
index 477bff8..7581bb4 100644
--- a/include/openssl/x509.h
+++ b/include/openssl/x509.h
@@ -199,8 +199,9 @@ DEFINE_STACK_OF(X509_TRUST)
 # define X509_TRUST_MAX          8
 
 /* trust_flags values */
-# define X509_TRUST_DYNAMIC      1
-# define X509_TRUST_DYNAMIC_NAME 2
+# define X509_TRUST_DYNAMIC      (1U << 0)
+# define X509_TRUST_DYNAMIC_NAME (1U << 1)
+# define X509_TRUST_NO_SS_COMPAT (1U << 2)
 
 /* check_trust return codes */
 


More information about the openssl-commits mailing list