Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[crypto] Require OCSP check if certificate provides an OCSP URI
Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed May 21, 2012
1 parent 073331c commit 7fa1f41
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/crypto/x509.c
Expand Up @@ -98,6 +98,10 @@ FILE_LICENCE ( GPL2_OR_LATER );
__einfo_error ( EINFO_EACCES_EMPTY )
#define EINFO_EACCES_EMPTY \
__einfo_uniqify ( EINFO_EACCES, 0x08, "Empty certificate chain" )
#define EACCES_OCSP_REQUIRED \
__einfo_error ( EINFO_EACCES_OCSP_REQUIRED )
#define EINFO_EACCES_OCSP_REQUIRED \
__einfo_uniqify ( EINFO_EACCES, 0x09, "OCSP check required" )

/** Certificate cache */
static LIST_HEAD ( x509_cache );
Expand Down Expand Up @@ -1343,6 +1347,14 @@ int x509_validate ( struct x509_certificate *cert,
return -EACCES_PATH_LEN;
}

/* Fail if OCSP is required */
if ( cert->extensions.auth_info.ocsp.uri &&
( ! cert->extensions.auth_info.ocsp.good ) ) {
DBGC ( cert, "X509 %p \"%s\" requires an OCSP check\n",
cert, cert->subject.name );
return -EACCES_OCSP_REQUIRED;
}

/* Calculate effective path length */
cert->path_remaining = ( issuer->path_remaining - 1 );
max_path_remaining = ( cert->extensions.basic.path_len + 1 );
Expand Down

0 comments on commit 7fa1f41

Please sign in to comment.