Latest update.

This commit is contained in:
2020-02-11 23:20:44 +09:00
parent 047a30700b
commit 9dfeec3942
639 changed files with 14024 additions and 31198 deletions
+25 -5
View File
@@ -4062,12 +4062,14 @@ long ssl3_ctx_callback_ctrl(SSL_CTX *ctx, int cmd, void (*fp) (void))
ctx->ext.status_cb = (int (*)(SSL *, void *))fp;
break;
# ifndef OPENSSL_NO_DEPRECATED_3_0
case SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB:
ctx->ext.ticket_key_cb = (int (*)(SSL *, unsigned char *,
unsigned char *,
EVP_CIPHER_CTX *,
HMAC_CTX *, int))fp;
break;
#endif
#ifndef OPENSSL_NO_SRP
case SSL_CTRL_SET_SRP_VERIFY_PARAM_CB:
@@ -4096,6 +4098,14 @@ long ssl3_ctx_callback_ctrl(SSL_CTX *ctx, int cmd, void (*fp) (void))
return 1;
}
int SSL_CTX_set_tlsext_ticket_key_evp_cb
(SSL_CTX *ctx, int (*fp)(SSL *, unsigned char *, unsigned char *,
EVP_CIPHER_CTX *, EVP_MAC_CTX *, int))
{
ctx->ext.ticket_key_evp_cb = fp;
return 1;
}
const SSL_CIPHER *ssl3_get_cipher_by_id(uint32_t id)
{
SSL_CIPHER c;
@@ -4630,9 +4640,9 @@ int ssl_fill_hello_random(SSL *s, int server, unsigned char *result, size_t len,
unsigned char *p = result;
l2n(Time, p);
ret = RAND_bytes(p, len - 4);
ret = RAND_bytes_ex(s->ctx->libctx, p, len - 4);
} else {
ret = RAND_bytes(result, len);
ret = RAND_bytes_ex(s->ctx->libctx, result, len);
}
if (ret > 0) {
@@ -4719,14 +4729,14 @@ int ssl_generate_master_secret(SSL *s, unsigned char *pms, size_t pmslen,
}
/* Generate a private key from parameters */
EVP_PKEY *ssl_generate_pkey(EVP_PKEY *pm)
EVP_PKEY *ssl_generate_pkey(SSL *s, EVP_PKEY *pm)
{
EVP_PKEY_CTX *pctx = NULL;
EVP_PKEY *pkey = NULL;
if (pm == NULL)
return NULL;
pctx = EVP_PKEY_CTX_new(pm, NULL);
pctx = EVP_PKEY_CTX_new_from_pkey(s->ctx->libctx, pm, s->ctx->propq);
if (pctx == NULL)
goto err;
if (EVP_PKEY_keygen_init(pctx) <= 0)
@@ -4759,6 +4769,11 @@ EVP_PKEY *ssl_generate_pkey_group(SSL *s, uint16_t id)
goto err;
}
gtype = ginf->flags & TLS_GROUP_TYPE;
/*
* TODO(3.0): Convert these EVP_PKEY_CTX_new_id calls to ones that take
* s->ctx->libctx and s->ctx->propq when keygen has been updated to be
* provider aware.
*/
# ifndef OPENSSL_NO_DH
if (gtype == TLS_GROUP_FFDHE)
pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_DH, NULL);
@@ -4852,6 +4867,11 @@ EVP_PKEY *ssl_generate_param_group(uint16_t id)
return NULL;
}
/*
* TODO(3.0): Convert this EVP_PKEY_CTX_new_id call to one that takes
* s->ctx->libctx and s->ctx->propq when paramgen has been updated to be
* provider aware.
*/
pkey_ctx_id = (ginf->flags & TLS_GROUP_FFDHE)
? EVP_PKEY_DH : EVP_PKEY_EC;
pctx = EVP_PKEY_CTX_new_id(pkey_ctx_id, NULL);
@@ -4898,7 +4918,7 @@ int ssl_derive(SSL *s, EVP_PKEY *privkey, EVP_PKEY *pubkey, int gensecret)
return 0;
}
pctx = EVP_PKEY_CTX_new(privkey, NULL);
pctx = EVP_PKEY_CTX_new_from_pkey(s->ctx->libctx, privkey, s->ctx->propq);
if (EVP_PKEY_derive_init(pctx) <= 0
|| EVP_PKEY_derive_set_peer(pctx, pubkey) <= 0