Latest update.
This commit is contained in:
@@ -19,6 +19,8 @@
|
||||
|
||||
#ifndef OPENSSL_NO_SRTP
|
||||
|
||||
DEFINE_STACK_OF(SRTP_PROTECTION_PROFILE)
|
||||
|
||||
static SRTP_PROTECTION_PROFILE srtp_known_profiles[] = {
|
||||
{
|
||||
"SRTP_AES128_CM_SHA1_80",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -1270,7 +1270,7 @@ int n_ssl3_mac(SSL *ssl, SSL3_RECORD *rec, unsigned char *md, int sending)
|
||||
header[j++] = (unsigned char)(rec->length & 0xff);
|
||||
|
||||
/* Final param == is SSLv3 */
|
||||
if (ssl3_cbc_digest_record(hash,
|
||||
if (ssl3_cbc_digest_record(ssl, hash,
|
||||
md, &md_size,
|
||||
header, rec->input,
|
||||
rec->length + md_size, rec->orig_len,
|
||||
@@ -1374,7 +1374,7 @@ int tls1_mac(SSL *ssl, SSL3_RECORD *rec, unsigned char *md, int sending)
|
||||
* are hashing because that gives an attacker a timing-oracle.
|
||||
*/
|
||||
/* Final param == not SSLv3 */
|
||||
if (ssl3_cbc_digest_record(mac_ctx,
|
||||
if (ssl3_cbc_digest_record(ssl, mac_ctx,
|
||||
md, &md_size,
|
||||
header, rec->input,
|
||||
rec->length + md_size, rec->orig_len,
|
||||
|
||||
+13
-7
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2019 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2012-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -131,7 +131,8 @@ char ssl3_cbc_record_digest_supported(const EVP_MD_CTX *ctx)
|
||||
* padding too. )
|
||||
* Returns 1 on success or 0 on error
|
||||
*/
|
||||
int ssl3_cbc_digest_record(const EVP_MD_CTX *ctx,
|
||||
int ssl3_cbc_digest_record(SSL *s,
|
||||
const EVP_MD_CTX *ctx,
|
||||
unsigned char *md_out,
|
||||
size_t *md_out_size,
|
||||
const unsigned char header[13],
|
||||
@@ -166,7 +167,8 @@ int ssl3_cbc_digest_record(const EVP_MD_CTX *ctx,
|
||||
*/
|
||||
size_t md_length_size = 8;
|
||||
char length_is_big_endian = 1;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
const EVP_MD *md = NULL;
|
||||
|
||||
/*
|
||||
* This is a, hopefully redundant, check that allows us to forget about
|
||||
@@ -461,7 +463,11 @@ int ssl3_cbc_digest_record(const EVP_MD_CTX *ctx,
|
||||
md_ctx = EVP_MD_CTX_new();
|
||||
if (md_ctx == NULL)
|
||||
goto err;
|
||||
if (EVP_DigestInit_ex(md_ctx, EVP_MD_CTX_md(ctx), NULL /* engine */ ) <= 0)
|
||||
md = ssl_evp_md_fetch(s->ctx->libctx, EVP_MD_type(EVP_MD_CTX_md(ctx)),
|
||||
s->ctx->propq);
|
||||
if (md == NULL)
|
||||
goto err;
|
||||
if (EVP_DigestInit_ex(md_ctx, md, NULL /* engine */ ) <= 0)
|
||||
goto err;
|
||||
if (is_sslv3) {
|
||||
/* We repurpose |hmac_pad| to contain the SSLv3 pad2 block. */
|
||||
@@ -484,10 +490,10 @@ int ssl3_cbc_digest_record(const EVP_MD_CTX *ctx,
|
||||
ret = EVP_DigestFinal(md_ctx, md_out, &md_out_size_u);
|
||||
if (ret && md_out_size)
|
||||
*md_out_size = md_out_size_u;
|
||||
EVP_MD_CTX_free(md_ctx);
|
||||
|
||||
return 1;
|
||||
ret = 1;
|
||||
err:
|
||||
EVP_MD_CTX_free(md_ctx);
|
||||
return 0;
|
||||
ssl_evp_md_free(md);
|
||||
return ret;
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2005 Nokia. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
|
||||
+11
-50
@@ -20,6 +20,10 @@
|
||||
#include <openssl/x509v3.h>
|
||||
#include "internal/cryptlib.h"
|
||||
|
||||
DEFINE_STACK_OF(X509_NAME)
|
||||
DEFINE_STACK_OF(X509)
|
||||
DEFINE_STACK_OF_CONST(SSL_CIPHER)
|
||||
|
||||
#define TLS13_NUM_CIPHERS OSSL_NELEM(tls13_ciphers)
|
||||
#define SSL3_NUM_CIPHERS OSSL_NELEM(ssl3_ciphers)
|
||||
#define SSL3_NUM_SCSVS OSSL_NELEM(ssl3_scsvs)
|
||||
@@ -4424,8 +4428,10 @@ int ssl3_get_req_cert_type(SSL *s, WPACKET *pkt)
|
||||
#ifndef OPENSSL_NO_GOST
|
||||
if (s->version >= TLS1_VERSION && (alg_k & SSL_kGOST))
|
||||
return WPACKET_put_bytes_u8(pkt, TLS_CT_GOST01_SIGN)
|
||||
&& WPACKET_put_bytes_u8(pkt, TLS_CT_GOST12_SIGN)
|
||||
&& WPACKET_put_bytes_u8(pkt, TLS_CT_GOST12_512_SIGN);
|
||||
&& WPACKET_put_bytes_u8(pkt, TLS_CT_GOST12_IANA_SIGN)
|
||||
&& WPACKET_put_bytes_u8(pkt, TLS_CT_GOST12_IANA_512_SIGN)
|
||||
&& WPACKET_put_bytes_u8(pkt, TLS_CT_GOST12_LEGACY_SIGN)
|
||||
&& WPACKET_put_bytes_u8(pkt, TLS_CT_GOST12_LEGACY_512_SIGN);
|
||||
#endif
|
||||
|
||||
if ((s->version == SSL3_VERSION) && (alg_k & SSL_kDHE)) {
|
||||
@@ -4790,40 +4796,10 @@ 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)
|
||||
# if 0
|
||||
pctx = EVP_PKEY_CTX_new_from_name(s->ctx->libctx, "DH", s->ctx->propq);
|
||||
# else
|
||||
pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_DH, NULL);
|
||||
# endif
|
||||
# ifndef OPENSSL_NO_EC
|
||||
else
|
||||
# endif /* OPENSSL_NO_EC */
|
||||
# endif /* OPENSSL_NO_DH */
|
||||
# ifndef OPENSSL_NO_EC
|
||||
{
|
||||
/*
|
||||
* TODO(3.0): When provider based EC key gen is present we can enable
|
||||
* this code.
|
||||
*/
|
||||
if (gtype == TLS_GROUP_CURVE_CUSTOM)
|
||||
pctx = EVP_PKEY_CTX_new_id(ginf->nid, NULL);
|
||||
else
|
||||
# if 0
|
||||
pctx = EVP_PKEY_CTX_new_from_name(s->ctx->libctx, "EC",
|
||||
s->ctx->propq);
|
||||
# else
|
||||
pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_EC, NULL);
|
||||
# endif
|
||||
|
||||
}
|
||||
# endif /* OPENSSL_NO_EC */
|
||||
pctx = EVP_PKEY_CTX_new_from_name(s->ctx->libctx, ginf->keytype,
|
||||
s->ctx->propq);
|
||||
|
||||
if (pctx == NULL) {
|
||||
SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_SSL_GENERATE_PKEY_GROUP,
|
||||
ERR_R_MALLOC_FAILURE);
|
||||
@@ -4889,11 +4865,7 @@ EVP_PKEY *ssl_generate_param_group(SSL *s, uint16_t id)
|
||||
EVP_PKEY_CTX *pctx = NULL;
|
||||
EVP_PKEY *pkey = NULL;
|
||||
const TLS_GROUP_INFO *ginf = tls1_group_id_lookup(id);
|
||||
#if 0
|
||||
const char *pkey_ctx_name;
|
||||
#else
|
||||
int pkey_ctx_id;
|
||||
#endif
|
||||
|
||||
if (ginf == NULL)
|
||||
goto err;
|
||||
@@ -4906,20 +4878,9 @@ EVP_PKEY *ssl_generate_param_group(SSL *s, 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.
|
||||
*/
|
||||
#if 0
|
||||
pkey_ctx_name = (ginf->flags & TLS_GROUP_FFDHE) != 0 ? "DH" : "EC";
|
||||
pctx = EVP_PKEY_CTX_new_from_name(s->ctx->libctx, pkey_ctx_name,
|
||||
s->ctx->propq);
|
||||
#else
|
||||
pkey_ctx_id = (ginf->flags & TLS_GROUP_FFDHE)
|
||||
? EVP_PKEY_DH : EVP_PKEY_EC;
|
||||
pctx = EVP_PKEY_CTX_new_id(pkey_ctx_id, NULL);
|
||||
#endif
|
||||
|
||||
if (pctx == NULL)
|
||||
goto err;
|
||||
|
||||
+4
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
@@ -25,6 +25,9 @@
|
||||
#include "ssl_cert_table.h"
|
||||
#include "internal/thread_once.h"
|
||||
|
||||
DEFINE_STACK_OF(X509)
|
||||
DEFINE_STACK_OF(X509_NAME)
|
||||
|
||||
static int ssl_security_default_callback(const SSL *s, const SSL_CTX *ctx,
|
||||
int op, int bits, int nid, void *other,
|
||||
void *ex);
|
||||
|
||||
@@ -22,6 +22,9 @@
|
||||
#include "internal/thread_once.h"
|
||||
#include "internal/cryptlib.h"
|
||||
|
||||
DEFINE_STACK_OF(SSL_COMP)
|
||||
DEFINE_STACK_OF_CONST(SSL_CIPHER)
|
||||
|
||||
#define SSL_ENC_DES_IDX 0
|
||||
#define SSL_ENC_3DES_IDX 1
|
||||
#define SSL_ENC_RC4_IDX 2
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
#include <openssl/dh.h>
|
||||
#include "internal/nelem.h"
|
||||
|
||||
DEFINE_STACK_OF(X509_NAME)
|
||||
|
||||
/*
|
||||
* structure holding name tables. This is used for permitted elements in lists
|
||||
* such as TLSv1.
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
|
||||
+9
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
|
||||
* Copyright 2005 Nokia. All rights reserved.
|
||||
*
|
||||
@@ -26,6 +26,14 @@
|
||||
#include "internal/refcount.h"
|
||||
#include "internal/ktls.h"
|
||||
|
||||
DEFINE_STACK_OF(X509)
|
||||
DEFINE_STACK_OF(X509_NAME)
|
||||
DEFINE_STACK_OF_CONST(SSL_CIPHER)
|
||||
DEFINE_STACK_OF(X509_EXTENSION)
|
||||
DEFINE_STACK_OF(OCSP_RESPID)
|
||||
DEFINE_STACK_OF(SRTP_PROTECTION_PROFILE)
|
||||
DEFINE_STACK_OF(SCT)
|
||||
|
||||
static int ssl_undefined_function_1(SSL *ssl, SSL3_RECORD *r, size_t s, int t)
|
||||
{
|
||||
(void)r;
|
||||
|
||||
+6
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
|
||||
* Copyright 2005 Nokia. All rights reserved.
|
||||
*
|
||||
@@ -1769,6 +1769,7 @@ typedef struct sigalg_lookup_st {
|
||||
|
||||
typedef struct tls_group_info_st {
|
||||
int nid; /* Curve NID */
|
||||
const char *keytype;
|
||||
int secbits; /* Bits of security (from SP800-57) */
|
||||
uint32_t flags; /* For group type and applicable TLS versions */
|
||||
uint16_t group_id; /* Group ID */
|
||||
@@ -2136,6 +2137,8 @@ typedef enum downgrade_en {
|
||||
#define TLSEXT_SIGALG_dsa_sha512 0x0602
|
||||
#define TLSEXT_SIGALG_dsa_sha224 0x0302
|
||||
#define TLSEXT_SIGALG_dsa_sha1 0x0202
|
||||
#define TLSEXT_SIGALG_gostr34102012_256_intrinsic 0x0840
|
||||
#define TLSEXT_SIGALG_gostr34102012_512_intrinsic 0x0841
|
||||
#define TLSEXT_SIGALG_gostr34102012_256_gostr34112012_256 0xeeee
|
||||
#define TLSEXT_SIGALG_gostr34102012_512_gostr34112012_512 0xefef
|
||||
#define TLSEXT_SIGALG_gostr34102001_gostr3411 0xeded
|
||||
@@ -2723,7 +2726,8 @@ __owur int ssl_log_secret(SSL *ssl, const char *label,
|
||||
|
||||
/* s3_cbc.c */
|
||||
__owur char ssl3_cbc_record_digest_supported(const EVP_MD_CTX *ctx);
|
||||
__owur int ssl3_cbc_digest_record(const EVP_MD_CTX *ctx,
|
||||
__owur int ssl3_cbc_digest_record(SSL *s,
|
||||
const EVP_MD_CTX *ctx,
|
||||
unsigned char *md_out,
|
||||
size_t *md_out_size,
|
||||
const unsigned char header[13],
|
||||
|
||||
+18
-10
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -17,6 +17,8 @@
|
||||
#include <openssl/x509v3.h>
|
||||
#include <openssl/pem.h>
|
||||
|
||||
DEFINE_STACK_OF(X509)
|
||||
|
||||
static int ssl_set_cert(CERT *c, X509 *x509);
|
||||
static int ssl_set_pkey(CERT *c, EVP_PKEY *pkey);
|
||||
|
||||
@@ -264,12 +266,15 @@ int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type)
|
||||
}
|
||||
if (type == SSL_FILETYPE_PEM) {
|
||||
j = ERR_R_PEM_LIB;
|
||||
pkey = PEM_read_bio_PrivateKey(in, NULL,
|
||||
ssl->default_passwd_callback,
|
||||
ssl->default_passwd_callback_userdata);
|
||||
pkey = PEM_read_bio_PrivateKey_ex(in, NULL,
|
||||
ssl->default_passwd_callback,
|
||||
ssl->default_passwd_callback_userdata,
|
||||
ssl->ctx->libctx,
|
||||
ssl->ctx->propq);
|
||||
} else if (type == SSL_FILETYPE_ASN1) {
|
||||
j = ERR_R_ASN1_LIB;
|
||||
pkey = d2i_PrivateKey_bio(in, NULL);
|
||||
pkey = d2i_PrivateKey_ex_bio(in, NULL, ssl->ctx->libctx,
|
||||
ssl->ctx->propq);
|
||||
} else {
|
||||
SSLerr(SSL_F_SSL_USE_PRIVATEKEY_FILE, SSL_R_BAD_SSL_FILETYPE);
|
||||
goto end;
|
||||
@@ -293,7 +298,8 @@ int SSL_use_PrivateKey_ASN1(int type, SSL *ssl, const unsigned char *d,
|
||||
EVP_PKEY *pkey;
|
||||
|
||||
p = d;
|
||||
if ((pkey = d2i_PrivateKey(type, NULL, &p, (long)len)) == NULL) {
|
||||
if ((pkey = d2i_PrivateKey_ex(type, NULL, &p, (long)len, ssl->ctx->libctx,
|
||||
ssl->ctx->propq)) == NULL) {
|
||||
SSLerr(SSL_F_SSL_USE_PRIVATEKEY_ASN1, ERR_R_ASN1_LIB);
|
||||
return 0;
|
||||
}
|
||||
@@ -551,12 +557,13 @@ int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type)
|
||||
}
|
||||
if (type == SSL_FILETYPE_PEM) {
|
||||
j = ERR_R_PEM_LIB;
|
||||
pkey = PEM_read_bio_PrivateKey(in, NULL,
|
||||
pkey = PEM_read_bio_PrivateKey_ex(in, NULL,
|
||||
ctx->default_passwd_callback,
|
||||
ctx->default_passwd_callback_userdata);
|
||||
ctx->default_passwd_callback_userdata,
|
||||
ctx->libctx, ctx->propq);
|
||||
} else if (type == SSL_FILETYPE_ASN1) {
|
||||
j = ERR_R_ASN1_LIB;
|
||||
pkey = d2i_PrivateKey_bio(in, NULL);
|
||||
pkey = d2i_PrivateKey_ex_bio(in, NULL, ctx->libctx, ctx->propq);
|
||||
} else {
|
||||
SSLerr(SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE, SSL_R_BAD_SSL_FILETYPE);
|
||||
goto end;
|
||||
@@ -580,7 +587,8 @@ int SSL_CTX_use_PrivateKey_ASN1(int type, SSL_CTX *ctx,
|
||||
EVP_PKEY *pkey;
|
||||
|
||||
p = d;
|
||||
if ((pkey = d2i_PrivateKey(type, NULL, &p, (long)len)) == NULL) {
|
||||
if ((pkey = d2i_PrivateKey_ex(type, NULL, &p, (long)len, ctx->libctx,
|
||||
ctx->propq)) == NULL) {
|
||||
SSLerr(SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1, ERR_R_ASN1_LIB);
|
||||
return 0;
|
||||
}
|
||||
|
||||
+3
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2005 Nokia. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
@@ -16,6 +16,8 @@
|
||||
#include "ssl_local.h"
|
||||
#include "statem/statem_local.h"
|
||||
|
||||
DEFINE_STACK_OF(X509)
|
||||
|
||||
static void SSL_SESSION_list_remove(SSL_CTX *ctx, SSL_SESSION *s);
|
||||
static void SSL_SESSION_list_add(SSL_CTX *ctx, SSL_SESSION *s);
|
||||
static int remove_session_lock(SSL_CTX *ctx, SSL_SESSION *c, int lck);
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2005 Nokia. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -14,6 +14,8 @@
|
||||
#include "statem_local.h"
|
||||
#include "internal/cryptlib.h"
|
||||
|
||||
DEFINE_STACK_OF(X509_NAME)
|
||||
|
||||
static int final_renegotiate(SSL *s, unsigned int context, int sent);
|
||||
static int init_server_name(SSL *s, unsigned int context);
|
||||
static int final_server_name(SSL *s, unsigned int context, int sent);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -12,6 +12,10 @@
|
||||
#include "internal/cryptlib.h"
|
||||
#include "statem_local.h"
|
||||
|
||||
DEFINE_STACK_OF(SRTP_PROTECTION_PROFILE)
|
||||
DEFINE_STACK_OF_CONST(SSL_CIPHER)
|
||||
DEFINE_STACK_OF(OCSP_RESPID)
|
||||
|
||||
EXT_RETURN tls_construct_ctos_renegotiate(SSL *s, WPACKET *pkt,
|
||||
unsigned int context, X509 *x,
|
||||
size_t chainidx)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -12,6 +12,10 @@
|
||||
#include "statem_local.h"
|
||||
#include "internal/cryptlib.h"
|
||||
|
||||
DEFINE_STACK_OF(SRTP_PROTECTION_PROFILE)
|
||||
DEFINE_STACK_OF(OCSP_RESPID)
|
||||
DEFINE_STACK_OF(X509_EXTENSION)
|
||||
|
||||
#define COOKIE_STATE_FORMAT_VERSION 0
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
|
||||
* Copyright 2005 Nokia. All rights reserved.
|
||||
*
|
||||
@@ -25,6 +25,10 @@
|
||||
#include <openssl/trace.h>
|
||||
#include <internal/cryptlib.h>
|
||||
|
||||
DEFINE_STACK_OF(X509)
|
||||
DEFINE_STACK_OF(SSL_COMP)
|
||||
DEFINE_STACK_OF_CONST(SSL_CIPHER)
|
||||
|
||||
static MSG_PROCESS_RETURN tls_process_as_hello_retry_request(SSL *s, PACKET *pkt);
|
||||
static MSG_PROCESS_RETURN tls_process_encrypted_extensions(SSL *s, PACKET *pkt);
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
@@ -21,6 +21,10 @@
|
||||
#include <openssl/x509.h>
|
||||
#include <openssl/trace.h>
|
||||
|
||||
DEFINE_STACK_OF(X509)
|
||||
DEFINE_STACK_OF(X509_NAME)
|
||||
DEFINE_STACK_OF_CONST(SSL_CIPHER)
|
||||
|
||||
/*
|
||||
* Map error codes to TLS/SSL alart types.
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
|
||||
* Copyright 2005 Nokia. All rights reserved.
|
||||
*
|
||||
@@ -26,6 +26,10 @@
|
||||
#include <openssl/core_names.h>
|
||||
#include <openssl/asn1t.h>
|
||||
|
||||
DEFINE_STACK_OF(X509)
|
||||
DEFINE_STACK_OF(SSL_COMP)
|
||||
DEFINE_STACK_OF_CONST(SSL_CIPHER)
|
||||
|
||||
#define TICKET_NONCE_SIZE 8
|
||||
|
||||
typedef struct {
|
||||
@@ -2634,8 +2638,10 @@ int tls_construct_server_key_exchange(SSL *s, WPACKET *pkt)
|
||||
* THIS IS TEMPORARY
|
||||
*/
|
||||
EVP_PKEY_get0(s->s3.tmp.pkey);
|
||||
if (EVP_PKEY_id(s->s3.tmp.pkey) == EVP_PKEY_NONE)
|
||||
if (EVP_PKEY_id(s->s3.tmp.pkey) == EVP_PKEY_NONE) {
|
||||
SSLfatal(s, SSL_AD_INTERNAL_ERROR, 0, ERR_R_EC_LIB);
|
||||
goto err;
|
||||
}
|
||||
|
||||
/* Encode the public key. */
|
||||
encodedlen = EVP_PKEY_get1_tls_encodedpoint(s->s3.tmp.pkey,
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2005 Nokia. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
|
||||
+71
-39
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -26,6 +26,10 @@
|
||||
#include "ssl_local.h"
|
||||
#include <openssl/ct.h>
|
||||
|
||||
DEFINE_STACK_OF_CONST(SSL_CIPHER)
|
||||
DEFINE_STACK_OF(X509)
|
||||
DEFINE_STACK_OF(X509_NAME)
|
||||
|
||||
static const SIGALG_LOOKUP *find_sig_alg(SSL *s, X509 *x, EVP_PKEY *pkey);
|
||||
static int tls12_sigalg_allowed(const SSL *s, int op, const SIGALG_LOOKUP *lu);
|
||||
|
||||
@@ -142,44 +146,53 @@ int tls1_clear(SSL *s)
|
||||
#if !defined(OPENSSL_NO_DH) || !defined(OPENSSL_NO_EC)
|
||||
static const TLS_GROUP_INFO nid_list[] = {
|
||||
# ifndef OPENSSL_NO_EC
|
||||
{NID_sect163k1, 80, TLS_GROUP_CURVE_CHAR2, 0x0001}, /* sect163k1 (1) */
|
||||
{NID_sect163r1, 80, TLS_GROUP_CURVE_CHAR2, 0x0002}, /* sect163r1 (2) */
|
||||
{NID_sect163r2, 80, TLS_GROUP_CURVE_CHAR2, 0x0003}, /* sect163r2 (3) */
|
||||
{NID_sect193r1, 80, TLS_GROUP_CURVE_CHAR2, 0x0004}, /* sect193r1 (4) */
|
||||
{NID_sect193r2, 80, TLS_GROUP_CURVE_CHAR2, 0x0005}, /* sect193r2 (5) */
|
||||
{NID_sect233k1, 112, TLS_GROUP_CURVE_CHAR2, 0x0006}, /* sect233k1 (6) */
|
||||
{NID_sect233r1, 112, TLS_GROUP_CURVE_CHAR2, 0x0007}, /* sect233r1 (7) */
|
||||
{NID_sect239k1, 112, TLS_GROUP_CURVE_CHAR2, 0x0008}, /* sect239k1 (8) */
|
||||
{NID_sect283k1, 128, TLS_GROUP_CURVE_CHAR2, 0x0009}, /* sect283k1 (9) */
|
||||
{NID_sect283r1, 128, TLS_GROUP_CURVE_CHAR2, 0x000A}, /* sect283r1 (10) */
|
||||
{NID_sect409k1, 192, TLS_GROUP_CURVE_CHAR2, 0x000B}, /* sect409k1 (11) */
|
||||
{NID_sect409r1, 192, TLS_GROUP_CURVE_CHAR2, 0x000C}, /* sect409r1 (12) */
|
||||
{NID_sect571k1, 256, TLS_GROUP_CURVE_CHAR2, 0x000D}, /* sect571k1 (13) */
|
||||
{NID_sect571r1, 256, TLS_GROUP_CURVE_CHAR2, 0x000E}, /* sect571r1 (14) */
|
||||
{NID_secp160k1, 80, TLS_GROUP_CURVE_PRIME, 0x000F}, /* secp160k1 (15) */
|
||||
{NID_secp160r1, 80, TLS_GROUP_CURVE_PRIME, 0x0010}, /* secp160r1 (16) */
|
||||
{NID_secp160r2, 80, TLS_GROUP_CURVE_PRIME, 0x0011}, /* secp160r2 (17) */
|
||||
{NID_secp192k1, 80, TLS_GROUP_CURVE_PRIME, 0x0012}, /* secp192k1 (18) */
|
||||
{NID_X9_62_prime192v1, 80, TLS_GROUP_CURVE_PRIME, 0x0013}, /* secp192r1 (19) */
|
||||
{NID_secp224k1, 112, TLS_GROUP_CURVE_PRIME, 0x0014}, /* secp224k1 (20) */
|
||||
{NID_secp224r1, 112, TLS_GROUP_CURVE_PRIME, 0x0015}, /* secp224r1 (21) */
|
||||
{NID_secp256k1, 128, TLS_GROUP_CURVE_PRIME, 0x0016}, /* secp256k1 (22) */
|
||||
{NID_X9_62_prime256v1, 128, TLS_GROUP_CURVE_PRIME, 0x0017}, /* secp256r1 (23) */
|
||||
{NID_secp384r1, 192, TLS_GROUP_CURVE_PRIME, 0x0018}, /* secp384r1 (24) */
|
||||
{NID_secp521r1, 256, TLS_GROUP_CURVE_PRIME, 0x0019}, /* secp521r1 (25) */
|
||||
{NID_brainpoolP256r1, 128, TLS_GROUP_CURVE_PRIME, 0x001A}, /* brainpoolP256r1 (26) */
|
||||
{NID_brainpoolP384r1, 192, TLS_GROUP_CURVE_PRIME, 0x001B}, /* brainpoolP384r1 (27) */
|
||||
{NID_brainpoolP512r1, 256, TLS_GROUP_CURVE_PRIME, 0x001C}, /* brainpool512r1 (28) */
|
||||
{EVP_PKEY_X25519, 128, TLS_GROUP_CURVE_CUSTOM, 0x001D}, /* X25519 (29) */
|
||||
{EVP_PKEY_X448, 224, TLS_GROUP_CURVE_CUSTOM, 0x001E}, /* X448 (30) */
|
||||
{NID_sect163k1, "EC", 80, TLS_GROUP_CURVE_CHAR2, 0x0001}, /* sect163k1 (1) */
|
||||
{NID_sect163r1, "EC", 80, TLS_GROUP_CURVE_CHAR2, 0x0002}, /* sect163r1 (2) */
|
||||
{NID_sect163r2, "EC", 80, TLS_GROUP_CURVE_CHAR2, 0x0003}, /* sect163r2 (3) */
|
||||
{NID_sect193r1, "EC", 80, TLS_GROUP_CURVE_CHAR2, 0x0004}, /* sect193r1 (4) */
|
||||
{NID_sect193r2, "EC", 80, TLS_GROUP_CURVE_CHAR2, 0x0005}, /* sect193r2 (5) */
|
||||
{NID_sect233k1, "EC", 112, TLS_GROUP_CURVE_CHAR2, 0x0006}, /* sect233k1 (6) */
|
||||
{NID_sect233r1, "EC", 112, TLS_GROUP_CURVE_CHAR2, 0x0007}, /* sect233r1 (7) */
|
||||
{NID_sect239k1, "EC", 112, TLS_GROUP_CURVE_CHAR2, 0x0008}, /* sect239k1 (8) */
|
||||
{NID_sect283k1, "EC", 128, TLS_GROUP_CURVE_CHAR2, 0x0009}, /* sect283k1 (9) */
|
||||
{NID_sect283r1, "EC", 128, TLS_GROUP_CURVE_CHAR2, 0x000A}, /* sect283r1 (10) */
|
||||
{NID_sect409k1, "EC", 192, TLS_GROUP_CURVE_CHAR2, 0x000B}, /* sect409k1 (11) */
|
||||
{NID_sect409r1, "EC", 192, TLS_GROUP_CURVE_CHAR2, 0x000C}, /* sect409r1 (12) */
|
||||
{NID_sect571k1, "EC", 256, TLS_GROUP_CURVE_CHAR2, 0x000D}, /* sect571k1 (13) */
|
||||
{NID_sect571r1, "EC", 256, TLS_GROUP_CURVE_CHAR2, 0x000E}, /* sect571r1 (14) */
|
||||
{NID_secp160k1, "EC", 80, TLS_GROUP_CURVE_PRIME, 0x000F}, /* secp160k1 (15) */
|
||||
{NID_secp160r1, "EC", 80, TLS_GROUP_CURVE_PRIME, 0x0010}, /* secp160r1 (16) */
|
||||
{NID_secp160r2, "EC", 80, TLS_GROUP_CURVE_PRIME, 0x0011}, /* secp160r2 (17) */
|
||||
{NID_secp192k1, "EC", 80, TLS_GROUP_CURVE_PRIME, 0x0012}, /* secp192k1 (18) */
|
||||
{NID_X9_62_prime192v1, "EC", 80, TLS_GROUP_CURVE_PRIME, 0x0013}, /* secp192r1 (19) */
|
||||
{NID_secp224k1, "EC", 112, TLS_GROUP_CURVE_PRIME, 0x0014}, /* secp224k1 (20) */
|
||||
{NID_secp224r1, "EC", 112, TLS_GROUP_CURVE_PRIME, 0x0015}, /* secp224r1 (21) */
|
||||
{NID_secp256k1, "EC", 128, TLS_GROUP_CURVE_PRIME, 0x0016}, /* secp256k1 (22) */
|
||||
{NID_X9_62_prime256v1, "EC", 128, TLS_GROUP_CURVE_PRIME, 0x0017}, /* secp256r1 (23) */
|
||||
{NID_secp384r1, "EC", 192, TLS_GROUP_CURVE_PRIME, 0x0018}, /* secp384r1 (24) */
|
||||
{NID_secp521r1, "EC", 256, TLS_GROUP_CURVE_PRIME, 0x0019}, /* secp521r1 (25) */
|
||||
{NID_brainpoolP256r1, "EC", 128, TLS_GROUP_CURVE_PRIME, 0x001A}, /* brainpoolP256r1 (26) */
|
||||
{NID_brainpoolP384r1, "EC", 192, TLS_GROUP_CURVE_PRIME, 0x001B}, /* brainpoolP384r1 (27) */
|
||||
{NID_brainpoolP512r1, "EC", 256, TLS_GROUP_CURVE_PRIME, 0x001C}, /* brainpool512r1 (28) */
|
||||
{EVP_PKEY_X25519, "X25519", 128, TLS_GROUP_CURVE_CUSTOM, 0x001D}, /* X25519 (29) */
|
||||
{EVP_PKEY_X448, "X448", 224, TLS_GROUP_CURVE_CUSTOM, 0x001E}, /* X448 (30) */
|
||||
# endif /* OPENSSL_NO_EC */
|
||||
# ifndef OPENSSL_NO_GOST
|
||||
{NID_id_tc26_gost_3410_2012_256_paramSetA, "GOST_2012_256", 112, TLS_GROUP_CURVE_PRIME, 0x0022}, /* GC256A (34) */
|
||||
{NID_id_tc26_gost_3410_2012_256_paramSetB, "GOST_2012_256", 112, TLS_GROUP_CURVE_PRIME, 0x0023}, /* GC256B (35) */
|
||||
{NID_id_tc26_gost_3410_2012_256_paramSetC, "GOST_2012_256", 112, TLS_GROUP_CURVE_PRIME, 0x0024}, /* GC256C (36) */
|
||||
{NID_id_tc26_gost_3410_2012_256_paramSetD, "GOST_2012_256", 112, TLS_GROUP_CURVE_PRIME, 0x0025}, /* GC256D (37) */
|
||||
{NID_id_tc26_gost_3410_2012_512_paramSetA, "GOST_2012_512", 112, TLS_GROUP_CURVE_PRIME, 0x0026}, /* GC512A (38) */
|
||||
{NID_id_tc26_gost_3410_2012_512_paramSetB, "GOST_2012_512", 112, TLS_GROUP_CURVE_PRIME, 0x0027}, /* GC512B (39) */
|
||||
{NID_id_tc26_gost_3410_2012_512_paramSetC, "GOST_2012_512", 112, TLS_GROUP_CURVE_PRIME, 0x0028}, /* GC512C (40) */
|
||||
# endif /* OPENSSL_NO_GOST */
|
||||
# ifndef OPENSSL_NO_DH
|
||||
/* Security bit values for FFDHE groups are updated as per RFC 7919 */
|
||||
{NID_ffdhe2048, 103, TLS_GROUP_FFDHE_FOR_TLS1_3, 0x0100}, /* ffdhe2048 (0x0100) */
|
||||
{NID_ffdhe3072, 125, TLS_GROUP_FFDHE_FOR_TLS1_3, 0x0101}, /* ffdhe3072 (0x0101) */
|
||||
{NID_ffdhe4096, 150, TLS_GROUP_FFDHE_FOR_TLS1_3, 0x0102}, /* ffdhe4096 (0x0102) */
|
||||
{NID_ffdhe6144, 175, TLS_GROUP_FFDHE_FOR_TLS1_3, 0x0103}, /* ffdhe6144 (0x0103) */
|
||||
{NID_ffdhe8192, 192, TLS_GROUP_FFDHE_FOR_TLS1_3, 0x0104}, /* ffdhe8192 (0x0104) */
|
||||
{NID_ffdhe2048, "DH", 103, TLS_GROUP_FFDHE_FOR_TLS1_3, 0x0100}, /* ffdhe2048 (0x0100) */
|
||||
{NID_ffdhe3072, "DH", 125, TLS_GROUP_FFDHE_FOR_TLS1_3, 0x0101}, /* ffdhe3072 (0x0101) */
|
||||
{NID_ffdhe4096, "DH", 150, TLS_GROUP_FFDHE_FOR_TLS1_3, 0x0102}, /* ffdhe4096 (0x0102) */
|
||||
{NID_ffdhe6144, "DH", 175, TLS_GROUP_FFDHE_FOR_TLS1_3, 0x0103}, /* ffdhe6144 (0x0103) */
|
||||
{NID_ffdhe8192, "DH", 192, TLS_GROUP_FFDHE_FOR_TLS1_3, 0x0104}, /* ffdhe8192 (0x0104) */
|
||||
# endif /* OPENSSL_NO_DH */
|
||||
};
|
||||
#endif
|
||||
@@ -202,6 +215,15 @@ static const uint16_t supported_groups_default[] = {
|
||||
25, /* secp521r1 (25) */
|
||||
24, /* secp384r1 (24) */
|
||||
# endif
|
||||
# ifndef OPENSSL_NO_GOST
|
||||
34, /* GC256A (34) */
|
||||
35, /* GC256B (35) */
|
||||
36, /* GC256C (36) */
|
||||
37, /* GC256D (37) */
|
||||
38, /* GC512A (38) */
|
||||
39, /* GC512B (39) */
|
||||
40, /* GC512C (40) */
|
||||
# endif
|
||||
# ifndef OPENSSL_NO_DH
|
||||
0x100, /* ffdhe2048 (0x100) */
|
||||
0x101, /* ffdhe3072 (0x101) */
|
||||
@@ -752,6 +774,8 @@ static const uint16_t tls12_sigalgs[] = {
|
||||
TLSEXT_SIGALG_dsa_sha512,
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_GOST
|
||||
TLSEXT_SIGALG_gostr34102012_256_intrinsic,
|
||||
TLSEXT_SIGALG_gostr34102012_512_intrinsic,
|
||||
TLSEXT_SIGALG_gostr34102012_256_gostr34112012_256,
|
||||
TLSEXT_SIGALG_gostr34102012_512_gostr34112012_512,
|
||||
TLSEXT_SIGALG_gostr34102001_gostr3411,
|
||||
@@ -840,6 +864,14 @@ static const SIGALG_LOOKUP sigalg_lookup_tbl[] = {
|
||||
NID_dsaWithSHA1, NID_undef},
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_GOST
|
||||
{NULL, TLSEXT_SIGALG_gostr34102012_256_intrinsic,
|
||||
NID_id_GostR3411_2012_256, SSL_MD_GOST12_256_IDX,
|
||||
NID_id_GostR3410_2012_256, SSL_PKEY_GOST12_256,
|
||||
NID_undef, NID_undef},
|
||||
{NULL, TLSEXT_SIGALG_gostr34102012_512_intrinsic,
|
||||
NID_id_GostR3411_2012_512, SSL_MD_GOST12_512_IDX,
|
||||
NID_id_GostR3410_2012_512, SSL_PKEY_GOST12_512,
|
||||
NID_undef, NID_undef},
|
||||
{NULL, TLSEXT_SIGALG_gostr34102012_256_gostr34112012_256,
|
||||
NID_id_GostR3411_2012_256, SSL_MD_GOST12_256_IDX,
|
||||
NID_id_GostR3410_2012_256, SSL_PKEY_GOST12_256,
|
||||
@@ -872,8 +904,8 @@ static const uint16_t tls_default_sigalg[] = {
|
||||
TLSEXT_SIGALG_dsa_sha1, /* SSL_PKEY_DSA_SIGN */
|
||||
TLSEXT_SIGALG_ecdsa_sha1, /* SSL_PKEY_ECC */
|
||||
TLSEXT_SIGALG_gostr34102001_gostr3411, /* SSL_PKEY_GOST01 */
|
||||
TLSEXT_SIGALG_gostr34102012_256_gostr34112012_256, /* SSL_PKEY_GOST12_256 */
|
||||
TLSEXT_SIGALG_gostr34102012_512_gostr34112012_512, /* SSL_PKEY_GOST12_512 */
|
||||
TLSEXT_SIGALG_gostr34102012_256_intrinsic, /* SSL_PKEY_GOST12_256 */
|
||||
TLSEXT_SIGALG_gostr34102012_512_intrinsic, /* SSL_PKEY_GOST12_512 */
|
||||
0, /* SSL_PKEY_ED25519 */
|
||||
0, /* SSL_PKEY_ED448 */
|
||||
};
|
||||
@@ -2225,7 +2257,7 @@ static int tls1_check_sig_alg(SSL *s, X509 *x, int default_nid)
|
||||
sigalg = use_pc_sigalgs
|
||||
? tls1_lookup_sigalg(s->s3.tmp.peer_cert_sigalgs[i])
|
||||
: s->shared_sigalgs[i];
|
||||
if (sig_nid == sigalg->sigandhash)
|
||||
if (sigalg != NULL && sig_nid == sigalg->sigandhash)
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
|
||||
@@ -522,6 +522,13 @@ static const ssl_trace_tbl ssl_groups_tbl[] = {
|
||||
{28, "brainpoolP512r1"},
|
||||
{29, "ecdh_x25519"},
|
||||
{30, "ecdh_x448"},
|
||||
{34, "GC256A"},
|
||||
{35, "GC256B"},
|
||||
{36, "GC256C"},
|
||||
{37, "GC256D"},
|
||||
{38, "GC512A"},
|
||||
{39, "GC512B"},
|
||||
{40, "GC512C"},
|
||||
{256, "ffdhe2048"},
|
||||
{257, "ffdhe3072"},
|
||||
{258, "ffdhe4096"},
|
||||
@@ -569,6 +576,8 @@ static const ssl_trace_tbl ssl_sigalg_tbl[] = {
|
||||
{TLSEXT_SIGALG_dsa_sha512, "dsa_sha512"},
|
||||
{TLSEXT_SIGALG_dsa_sha224, "dsa_sha224"},
|
||||
{TLSEXT_SIGALG_dsa_sha1, "dsa_sha1"},
|
||||
{TLSEXT_SIGALG_gostr34102012_256_intrinsic, "gost2012_256"},
|
||||
{TLSEXT_SIGALG_gostr34102012_512_intrinsic, "gost2012_512"},
|
||||
{TLSEXT_SIGALG_gostr34102012_256_gostr34112012_256, "gost2012_256"},
|
||||
{TLSEXT_SIGALG_gostr34102012_512_gostr34112012_512, "gost2012_512"},
|
||||
{TLSEXT_SIGALG_gostr34102001_gostr3411, "gost2001_gost94"},
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2004-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2004-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright (c) 2004, EdelKey Project. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
|
||||
Reference in New Issue
Block a user