提交 2c382349 编写于 作者: K Kurt Roeckx

Remove ssl_cert_inst()

It created the cert structure in SSL_CTX or SSL if it was NULL, but they can
never be NULL as the comments already said.
Reviewed-by: NDr. Stephen Henson <steve@openssl.org>
上级 9fbbdd73
...@@ -3252,22 +3252,6 @@ long ssl3_ctrl(SSL *s, int cmd, long larg, void *parg) ...@@ -3252,22 +3252,6 @@ long ssl3_ctrl(SSL *s, int cmd, long larg, void *parg)
{ {
int ret = 0; int ret = 0;
#if !defined(OPENSSL_NO_DSA) || !defined(OPENSSL_NO_RSA)
if (
# ifndef OPENSSL_NO_RSA
cmd == SSL_CTRL_SET_TMP_RSA || cmd == SSL_CTRL_SET_TMP_RSA_CB ||
# endif
# ifndef OPENSSL_NO_DSA
cmd == SSL_CTRL_SET_TMP_DH || cmd == SSL_CTRL_SET_TMP_DH_CB ||
# endif
0) {
if (!ssl_cert_inst(&s->cert)) {
SSLerr(SSL_F_SSL3_CTRL, ERR_R_MALLOC_FAILURE);
return (0);
}
}
#endif
switch (cmd) { switch (cmd) {
case SSL_CTRL_GET_SESSION_REUSED: case SSL_CTRL_GET_SESSION_REUSED:
ret = s->hit; ret = s->hit;
...@@ -3705,22 +3689,6 @@ long ssl3_callback_ctrl(SSL *s, int cmd, void (*fp) (void)) ...@@ -3705,22 +3689,6 @@ long ssl3_callback_ctrl(SSL *s, int cmd, void (*fp) (void))
{ {
int ret = 0; int ret = 0;
#if !defined(OPENSSL_NO_DSA) || !defined(OPENSSL_NO_RSA)
if (
# ifndef OPENSSL_NO_RSA
cmd == SSL_CTRL_SET_TMP_RSA_CB ||
# endif
# ifndef OPENSSL_NO_DSA
cmd == SSL_CTRL_SET_TMP_DH_CB ||
# endif
0) {
if (!ssl_cert_inst(&s->cert)) {
SSLerr(SSL_F_SSL3_CALLBACK_CTRL, ERR_R_MALLOC_FAILURE);
return (0);
}
}
#endif
switch (cmd) { switch (cmd) {
#ifndef OPENSSL_NO_RSA #ifndef OPENSSL_NO_RSA
case SSL_CTRL_SET_TMP_RSA_CB: case SSL_CTRL_SET_TMP_RSA_CB:
......
...@@ -484,31 +484,6 @@ void ssl_cert_free(CERT *c) ...@@ -484,31 +484,6 @@ void ssl_cert_free(CERT *c)
OPENSSL_free(c); OPENSSL_free(c);
} }
int ssl_cert_inst(CERT **o)
{
/*
* Create a CERT if there isn't already one (which cannot really happen,
* as it is initially created in SSL_CTX_new; but the earlier code
* usually allows for that one being non-existant, so we follow that
* behaviour, as it might turn out that there actually is a reason for it
* -- but I'm not sure that *all* of the existing code could cope with
* s->cert being NULL, otherwise we could do without the initialization
* in SSL_CTX_new).
*/
if (o == NULL) {
SSLerr(SSL_F_SSL_CERT_INST, ERR_R_PASSED_NULL_PARAMETER);
return (0);
}
if (*o == NULL) {
if ((*o = ssl_cert_new()) == NULL) {
SSLerr(SSL_F_SSL_CERT_INST, ERR_R_MALLOC_FAILURE);
return (0);
}
}
return (1);
}
int ssl_cert_set0_chain(SSL *s, SSL_CTX *ctx, STACK_OF(X509) *chain) int ssl_cert_set0_chain(SSL *s, SSL_CTX *ctx, STACK_OF(X509) *chain)
{ {
int i, r; int i, r;
......
...@@ -202,7 +202,6 @@ static ERR_STRING_DATA SSL_str_functs[] = { ...@@ -202,7 +202,6 @@ static ERR_STRING_DATA SSL_str_functs[] = {
{ERR_FUNC(SSL_F_SSL_BYTES_TO_CIPHER_LIST), "ssl_bytes_to_cipher_list"}, {ERR_FUNC(SSL_F_SSL_BYTES_TO_CIPHER_LIST), "ssl_bytes_to_cipher_list"},
{ERR_FUNC(SSL_F_SSL_CERT_ADD0_CHAIN_CERT), "ssl_cert_add0_chain_cert"}, {ERR_FUNC(SSL_F_SSL_CERT_ADD0_CHAIN_CERT), "ssl_cert_add0_chain_cert"},
{ERR_FUNC(SSL_F_SSL_CERT_DUP), "ssl_cert_dup"}, {ERR_FUNC(SSL_F_SSL_CERT_DUP), "ssl_cert_dup"},
{ERR_FUNC(SSL_F_SSL_CERT_INST), "ssl_cert_inst"},
{ERR_FUNC(SSL_F_SSL_CERT_INSTANTIATE), "SSL_CERT_INSTANTIATE"}, {ERR_FUNC(SSL_F_SSL_CERT_INSTANTIATE), "SSL_CERT_INSTANTIATE"},
{ERR_FUNC(SSL_F_SSL_CERT_NEW), "ssl_cert_new"}, {ERR_FUNC(SSL_F_SSL_CERT_NEW), "ssl_cert_new"},
{ERR_FUNC(SSL_F_SSL_CERT_SET0_CHAIN), "ssl_cert_set0_chain"}, {ERR_FUNC(SSL_F_SSL_CERT_SET0_CHAIN), "ssl_cert_set0_chain"},
......
...@@ -288,7 +288,6 @@ SSL *SSL_new(SSL_CTX *ctx) ...@@ -288,7 +288,6 @@ SSL *SSL_new(SSL_CTX *ctx)
s->mode = ctx->mode; s->mode = ctx->mode;
s->max_cert_list = ctx->max_cert_list; s->max_cert_list = ctx->max_cert_list;
if (ctx->cert != NULL) {
/* /*
* Earlier library versions used to copy the pointer to the CERT, not * Earlier library versions used to copy the pointer to the CERT, not
* its contents; only when setting new parameters for the per-SSL * its contents; only when setting new parameters for the per-SSL
...@@ -298,12 +297,9 @@ SSL *SSL_new(SSL_CTX *ctx) ...@@ -298,12 +297,9 @@ SSL *SSL_new(SSL_CTX *ctx)
* used to be known as s->ctx->default_cert). Now we don't look at the * used to be known as s->ctx->default_cert). Now we don't look at the
* SSL_CTX's CERT after having duplicated it once. * SSL_CTX's CERT after having duplicated it once.
*/ */
s->cert = ssl_cert_dup(ctx->cert); s->cert = ssl_cert_dup(ctx->cert);
if (s->cert == NULL) if (s->cert == NULL)
goto err; goto err;
} else
s->cert = NULL; /* Cannot really happen (see SSL_CTX_new) */
s->read_ahead = ctx->read_ahead; s->read_ahead = ctx->read_ahead;
s->msg_callback = ctx->msg_callback; s->msg_callback = ctx->msg_callback;
......
...@@ -2053,7 +2053,6 @@ int ssl_clear_bad_session(SSL *s); ...@@ -2053,7 +2053,6 @@ int ssl_clear_bad_session(SSL *s);
CERT *ssl_cert_new(void); CERT *ssl_cert_new(void);
CERT *ssl_cert_dup(CERT *cert); CERT *ssl_cert_dup(CERT *cert);
void ssl_cert_set_default_md(CERT *cert); void ssl_cert_set_default_md(CERT *cert);
int ssl_cert_inst(CERT **o);
void ssl_cert_clear_certs(CERT *c); void ssl_cert_clear_certs(CERT *c);
void ssl_cert_free(CERT *c); void ssl_cert_free(CERT *c);
SESS_CERT *ssl_sess_cert_new(void); SESS_CERT *ssl_sess_cert_new(void);
......
...@@ -79,10 +79,6 @@ int SSL_use_certificate(SSL *ssl, X509 *x) ...@@ -79,10 +79,6 @@ int SSL_use_certificate(SSL *ssl, X509 *x)
return 0; return 0;
} }
if (!ssl_cert_inst(&ssl->cert)) {
SSLerr(SSL_F_SSL_USE_CERTIFICATE, ERR_R_MALLOC_FAILURE);
return (0);
}
return (ssl_set_cert(ssl->cert, x)); return (ssl_set_cert(ssl->cert, x));
} }
...@@ -157,10 +153,6 @@ int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa) ...@@ -157,10 +153,6 @@ int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa)
SSLerr(SSL_F_SSL_USE_RSAPRIVATEKEY, ERR_R_PASSED_NULL_PARAMETER); SSLerr(SSL_F_SSL_USE_RSAPRIVATEKEY, ERR_R_PASSED_NULL_PARAMETER);
return (0); return (0);
} }
if (!ssl_cert_inst(&ssl->cert)) {
SSLerr(SSL_F_SSL_USE_RSAPRIVATEKEY, ERR_R_MALLOC_FAILURE);
return (0);
}
if ((pkey = EVP_PKEY_new()) == NULL) { if ((pkey = EVP_PKEY_new()) == NULL) {
SSLerr(SSL_F_SSL_USE_RSAPRIVATEKEY, ERR_R_EVP_LIB); SSLerr(SSL_F_SSL_USE_RSAPRIVATEKEY, ERR_R_EVP_LIB);
return (0); return (0);
...@@ -302,10 +294,6 @@ int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey) ...@@ -302,10 +294,6 @@ int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey)
SSLerr(SSL_F_SSL_USE_PRIVATEKEY, ERR_R_PASSED_NULL_PARAMETER); SSLerr(SSL_F_SSL_USE_PRIVATEKEY, ERR_R_PASSED_NULL_PARAMETER);
return (0); return (0);
} }
if (!ssl_cert_inst(&ssl->cert)) {
SSLerr(SSL_F_SSL_USE_PRIVATEKEY, ERR_R_MALLOC_FAILURE);
return (0);
}
ret = ssl_set_pkey(ssl->cert, pkey); ret = ssl_set_pkey(ssl->cert, pkey);
return (ret); return (ret);
} }
...@@ -383,10 +371,6 @@ int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x) ...@@ -383,10 +371,6 @@ int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x)
SSLerr(SSL_F_SSL_CTX_USE_CERTIFICATE, rv); SSLerr(SSL_F_SSL_CTX_USE_CERTIFICATE, rv);
return 0; return 0;
} }
if (!ssl_cert_inst(&ctx->cert)) {
SSLerr(SSL_F_SSL_CTX_USE_CERTIFICATE, ERR_R_MALLOC_FAILURE);
return (0);
}
return (ssl_set_cert(ctx->cert, x)); return (ssl_set_cert(ctx->cert, x));
} }
...@@ -519,10 +503,6 @@ int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa) ...@@ -519,10 +503,6 @@ int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa)
SSLerr(SSL_F_SSL_CTX_USE_RSAPRIVATEKEY, ERR_R_PASSED_NULL_PARAMETER); SSLerr(SSL_F_SSL_CTX_USE_RSAPRIVATEKEY, ERR_R_PASSED_NULL_PARAMETER);
return (0); return (0);
} }
if (!ssl_cert_inst(&ctx->cert)) {
SSLerr(SSL_F_SSL_CTX_USE_RSAPRIVATEKEY, ERR_R_MALLOC_FAILURE);
return (0);
}
if ((pkey = EVP_PKEY_new()) == NULL) { if ((pkey = EVP_PKEY_new()) == NULL) {
SSLerr(SSL_F_SSL_CTX_USE_RSAPRIVATEKEY, ERR_R_EVP_LIB); SSLerr(SSL_F_SSL_CTX_USE_RSAPRIVATEKEY, ERR_R_EVP_LIB);
return (0); return (0);
...@@ -603,10 +583,6 @@ int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey) ...@@ -603,10 +583,6 @@ int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey)
SSLerr(SSL_F_SSL_CTX_USE_PRIVATEKEY, ERR_R_PASSED_NULL_PARAMETER); SSLerr(SSL_F_SSL_CTX_USE_PRIVATEKEY, ERR_R_PASSED_NULL_PARAMETER);
return (0); return (0);
} }
if (!ssl_cert_inst(&ctx->cert)) {
SSLerr(SSL_F_SSL_CTX_USE_PRIVATEKEY, ERR_R_MALLOC_FAILURE);
return (0);
}
return (ssl_set_pkey(ctx->cert, pkey)); return (ssl_set_pkey(ctx->cert, pkey));
} }
...@@ -900,10 +876,6 @@ int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo, ...@@ -900,10 +876,6 @@ int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo,
SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO, SSL_R_INVALID_SERVERINFO_DATA); SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO, SSL_R_INVALID_SERVERINFO_DATA);
return 0; return 0;
} }
if (!ssl_cert_inst(&ctx->cert)) {
SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO, ERR_R_MALLOC_FAILURE);
return 0;
}
if (ctx->cert->key == NULL) { if (ctx->cert->key == NULL) {
SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO, ERR_R_INTERNAL_ERROR); SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO, ERR_R_INTERNAL_ERROR);
return 0; return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册