Import OpenSSL 1.1.1f
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2019 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 OpenSSL license (the "License"). You may not use
|
||||
@@ -11,8 +11,8 @@
|
||||
#include <limits.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include "../ssl_locl.h"
|
||||
#include "statem_locl.h"
|
||||
#include "../ssl_local.h"
|
||||
#include "statem_local.h"
|
||||
#include "internal/cryptlib.h"
|
||||
#include <openssl/buffer.h>
|
||||
#include <openssl/objects.h>
|
||||
@@ -169,17 +169,17 @@ static int get_cert_verify_tbs_data(SSL *s, unsigned char *tls13tbs,
|
||||
void **hdata, size_t *hdatalen)
|
||||
{
|
||||
#ifdef CHARSET_EBCDIC
|
||||
static const char *servercontext = { 0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e,
|
||||
static const char servercontext[] = { 0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e,
|
||||
0x33, 0x2c, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x65,
|
||||
0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72,
|
||||
0x69, 0x66, 0x79, 0x00 };
|
||||
static const char *clientcontext = { 0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e,
|
||||
static const char clientcontext[] = { 0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e,
|
||||
0x33, 0x2c, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x43, 0x65,
|
||||
0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72,
|
||||
0x69, 0x66, 0x79, 0x00 };
|
||||
#else
|
||||
static const char *servercontext = "TLS 1.3, server CertificateVerify";
|
||||
static const char *clientcontext = "TLS 1.3, client CertificateVerify";
|
||||
static const char servercontext[] = "TLS 1.3, server CertificateVerify";
|
||||
static const char clientcontext[] = "TLS 1.3, client CertificateVerify";
|
||||
#endif
|
||||
if (SSL_IS_TLS13(s)) {
|
||||
size_t hashlen;
|
||||
@@ -844,9 +844,11 @@ MSG_PROCESS_RETURN tls_process_finished(SSL *s, PACKET *pkt)
|
||||
return MSG_PROCESS_ERROR;
|
||||
}
|
||||
} else {
|
||||
/* TLS 1.3 gets the secret size from the handshake md */
|
||||
size_t dummy;
|
||||
if (!s->method->ssl3_enc->generate_master_secret(s,
|
||||
s->master_secret, s->handshake_secret, 0,
|
||||
&s->session->master_key_length)) {
|
||||
&dummy)) {
|
||||
/* SSLfatal() already called */
|
||||
return MSG_PROCESS_ERROR;
|
||||
}
|
||||
@@ -1033,14 +1035,25 @@ WORK_STATE tls_finish_handshake(SSL *s, WORK_STATE wst, int clearbufs, int stop)
|
||||
int cleanuphand = s->statem.cleanuphand;
|
||||
|
||||
if (clearbufs) {
|
||||
if (!SSL_IS_DTLS(s)) {
|
||||
if (!SSL_IS_DTLS(s)
|
||||
#ifndef OPENSSL_NO_SCTP
|
||||
/*
|
||||
* We don't do this in DTLS because we may still need the init_buf
|
||||
* RFC6083: SCTP provides a reliable and in-sequence transport service for DTLS
|
||||
* messages that require it. Therefore, DTLS procedures for retransmissions
|
||||
* MUST NOT be used.
|
||||
* Hence the init_buf can be cleared when DTLS over SCTP as transport is used.
|
||||
*/
|
||||
|| BIO_dgram_is_sctp(SSL_get_wbio(s))
|
||||
#endif
|
||||
) {
|
||||
/*
|
||||
* We don't do this in DTLS over UDP because we may still need the init_buf
|
||||
* in case there are any unexpected retransmits
|
||||
*/
|
||||
BUF_MEM_free(s->init_buf);
|
||||
s->init_buf = NULL;
|
||||
}
|
||||
|
||||
if (!ssl_free_wbio_buffer(s)) {
|
||||
SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS_FINISH_HANDSHAKE,
|
||||
ERR_R_INTERNAL_ERROR);
|
||||
|
||||
Reference in New Issue
Block a user