diff options
author | David Benjamin <davidben@chromium.org> | 2014-11-13 15:29:09 -0500 |
---|---|---|
committer | Adam Langley <agl@google.com> | 2014-11-18 22:19:24 +0000 |
commit | b398d16c1d103cff0fee577a9e8c1a7cc8d5242b (patch) | |
tree | f8f2f8a849df70d93d29e07e952d59be0a11e0d5 /include | |
parent | 675227e0d2cf328b216b83f61745e464c92d7066 (diff) | |
download | boringssl-b398d16c1d103cff0fee577a9e8c1a7cc8d5242b.zip boringssl-b398d16c1d103cff0fee577a9e8c1a7cc8d5242b.tar.gz boringssl-b398d16c1d103cff0fee577a9e8c1a7cc8d5242b.tar.bz2 |
Remove SSL_check_chain and unexport CERT_PKEY flags.
Both of these are newly-exported in OpenSSL 1.0.2, so they cannot be used by
current consumers.
This was added in upstream's 18d7158809c9722f4c6d2a8af7513577274f9b56 to
support custom selection of certificates. The intent seems to be that you
listen to cert_cb and use SSL_check_chain to lean on OpenSSL to process
signature algorithms list for you.
Unfortunately, the implementation is slightly suspect: it uses the same
function as the codepath which mutates and refers to the CERT_PKEY of the
matching type. Some access was guarded by check_flags, but this is too
complex. Part of it is also because the matching digest is selected early and
we intend to connect this to EVP_PKEY_supports_digest so it is no longer a
property of just the key type.
Let's remove the hook for now, to unblock removing a lot of complexity. After
cleaning up this area, a function like this could be cleaner to support, but
we already have a version of this: select_certificate_cb and
ssl_early_callback_ctx.
Change-Id: I3add425b3996e5e32d4a88e14cc607b4fdaa5aec
Reviewed-on: https://boringssl-review.googlesource.com/2283
Reviewed-by: Adam Langley <agl@google.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/openssl/ssl.h | 20 | ||||
-rw-r--r-- | include/openssl/tls1.h | 2 |
2 files changed, 0 insertions, 22 deletions
diff --git a/include/openssl/ssl.h b/include/openssl/ssl.h index d357e73..bcc9501 100644 --- a/include/openssl/ssl.h +++ b/include/openssl/ssl.h @@ -543,26 +543,6 @@ struct ssl_session_st /* Clear verification errors from queue */ #define SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR 0x10 -/* Flags returned by SSL_check_chain */ -/* Certificate can be used with this session */ -#define CERT_PKEY_VALID 0x1 -/* Certificate can also be used for signing */ -#define CERT_PKEY_SIGN 0x2 -/* EE certificate signing algorithm OK */ -#define CERT_PKEY_EE_SIGNATURE 0x10 -/* CA signature algorithms OK */ -#define CERT_PKEY_CA_SIGNATURE 0x20 -/* EE certificate parameters OK */ -#define CERT_PKEY_EE_PARAM 0x40 -/* CA certificate parameters OK */ -#define CERT_PKEY_CA_PARAM 0x80 -/* Client CA issuer names match (always set for server cert) */ -#define CERT_PKEY_ISSUER_NAME 0x200 -/* Cert type matches client types (always set for server cert) */ -#define CERT_PKEY_CERT_TYPE 0x400 -/* Cert chain suitable to Suite B */ -#define CERT_PKEY_SUITEB 0x800 - #define SSL_CONF_FLAG_CMDLINE 0x1 #define SSL_CONF_FLAG_FILE 0x2 #define SSL_CONF_FLAG_CLIENT 0x4 diff --git a/include/openssl/tls1.h b/include/openssl/tls1.h index d2682dd..dc106d2 100644 --- a/include/openssl/tls1.h +++ b/include/openssl/tls1.h @@ -325,8 +325,6 @@ OPENSSL_EXPORT int SSL_get_shared_sigalgs(SSL *s, int idx, int *psign, int *phash, int *psignandhash, unsigned char *rsig, unsigned char *rhash); -OPENSSL_EXPORT int SSL_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, STACK_OF(X509) *chain); - #define SSL_set_tlsext_host_name(s,name) \ SSL_ctrl(s,SSL_CTRL_SET_TLSEXT_HOSTNAME,TLSEXT_NAMETYPE_host_name,(char *)name) |