mirror of
				https://github.com/ossrs/srs.git
				synced 2025-03-09 15:49:59 +00:00 
			
		
		
		
	AppleM1: Update openssl to v1.1.1l
This commit is contained in:
		
							parent
							
								
									1fe12b8e8c
								
							
						
					
					
						commit
						b787656eea
					
				
					 990 changed files with 13406 additions and 18710 deletions
				
			
		| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
/*
 | 
			
		||||
 * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
 | 
			
		||||
 * Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the OpenSSL license (the "License").  You may not use
 | 
			
		||||
 * this file except in compliance with the License.  You can obtain a copy
 | 
			
		||||
| 
						 | 
				
			
			@ -8,8 +8,8 @@
 | 
			
		|||
 */
 | 
			
		||||
 | 
			
		||||
#include <openssl/ocsp.h>
 | 
			
		||||
#include "../ssl_locl.h"
 | 
			
		||||
#include "statem_locl.h"
 | 
			
		||||
#include "../ssl_local.h"
 | 
			
		||||
#include "statem_local.h"
 | 
			
		||||
#include "internal/cryptlib.h"
 | 
			
		||||
 | 
			
		||||
#define COOKIE_STATE_FORMAT_VERSION     0
 | 
			
		||||
| 
						 | 
				
			
			@ -127,6 +127,10 @@ int tls_parse_ctos_server_name(SSL *s, PACKET *pkt, unsigned int context,
 | 
			
		|||
        return 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * In TLSv1.2 and below the SNI is associated with the session. In TLSv1.3
 | 
			
		||||
     * we always use the SNI value from the handshake.
 | 
			
		||||
     */
 | 
			
		||||
    if (!s->hit || SSL_IS_TLS13(s)) {
 | 
			
		||||
        if (PACKET_remaining(&hostname) > TLSEXT_MAXLEN_host_name) {
 | 
			
		||||
            SSLfatal(s, SSL_AD_UNRECOGNIZED_NAME,
 | 
			
		||||
| 
						 | 
				
			
			@ -155,8 +159,12 @@ int tls_parse_ctos_server_name(SSL *s, PACKET *pkt, unsigned int context,
 | 
			
		|||
        }
 | 
			
		||||
 | 
			
		||||
        s->servername_done = 1;
 | 
			
		||||
    }
 | 
			
		||||
    if (s->hit) {
 | 
			
		||||
    } else {
 | 
			
		||||
        /*
 | 
			
		||||
         * In TLSv1.2 and below we should check if the SNI is consistent between
 | 
			
		||||
         * the initial handshake and the resumption. In TLSv1.3 SNI is not
 | 
			
		||||
         * associated with the session.
 | 
			
		||||
         */
 | 
			
		||||
        /*
 | 
			
		||||
         * TODO(openssl-team): if the SNI doesn't match, we MUST
 | 
			
		||||
         * fall back to a full handshake.
 | 
			
		||||
| 
						 | 
				
			
			@ -164,9 +172,6 @@ int tls_parse_ctos_server_name(SSL *s, PACKET *pkt, unsigned int context,
 | 
			
		|||
        s->servername_done = (s->session->ext.hostname != NULL)
 | 
			
		||||
            && PACKET_equal(&hostname, s->session->ext.hostname,
 | 
			
		||||
                            strlen(s->session->ext.hostname));
 | 
			
		||||
 | 
			
		||||
        if (!s->servername_done && s->session->ext.hostname != NULL)
 | 
			
		||||
            s->ext.early_data_ok = 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return 1;
 | 
			
		||||
| 
						 | 
				
			
			@ -254,8 +259,8 @@ int tls_parse_ctos_ec_pt_formats(SSL *s, PACKET *pkt, unsigned int context,
 | 
			
		|||
 | 
			
		||||
    if (!s->hit) {
 | 
			
		||||
        if (!PACKET_memdup(&ec_point_format_list,
 | 
			
		||||
                           &s->session->ext.ecpointformats,
 | 
			
		||||
                           &s->session->ext.ecpointformats_len)) {
 | 
			
		||||
                           &s->ext.peer_ecpointformats,
 | 
			
		||||
                           &s->ext.peer_ecpointformats_len)) {
 | 
			
		||||
            SSLfatal(s, SSL_AD_INTERNAL_ERROR,
 | 
			
		||||
                     SSL_F_TLS_PARSE_CTOS_EC_PT_FORMATS, ERR_R_INTERNAL_ERROR);
 | 
			
		||||
            return 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -962,12 +967,12 @@ int tls_parse_ctos_supported_groups(SSL *s, PACKET *pkt, unsigned int context,
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    if (!s->hit || SSL_IS_TLS13(s)) {
 | 
			
		||||
        OPENSSL_free(s->session->ext.supportedgroups);
 | 
			
		||||
        s->session->ext.supportedgroups = NULL;
 | 
			
		||||
        s->session->ext.supportedgroups_len = 0;
 | 
			
		||||
        OPENSSL_free(s->ext.peer_supportedgroups);
 | 
			
		||||
        s->ext.peer_supportedgroups = NULL;
 | 
			
		||||
        s->ext.peer_supportedgroups_len = 0;
 | 
			
		||||
        if (!tls1_save_u16(&supported_groups_list,
 | 
			
		||||
                           &s->session->ext.supportedgroups,
 | 
			
		||||
                           &s->session->ext.supportedgroups_len)) {
 | 
			
		||||
                           &s->ext.peer_supportedgroups,
 | 
			
		||||
                           &s->ext.peer_supportedgroups_len)) {
 | 
			
		||||
            SSLfatal(s, SSL_AD_INTERNAL_ERROR,
 | 
			
		||||
                     SSL_F_TLS_PARSE_CTOS_SUPPORTED_GROUPS,
 | 
			
		||||
                     ERR_R_INTERNAL_ERROR);
 | 
			
		||||
| 
						 | 
				
			
			@ -1146,7 +1151,7 @@ int tls_parse_ctos_psk(SSL *s, PACKET *pkt, unsigned int context, X509 *x,
 | 
			
		|||
            if (sesstmp == NULL) {
 | 
			
		||||
                SSLfatal(s, SSL_AD_INTERNAL_ERROR,
 | 
			
		||||
                         SSL_F_TLS_PARSE_CTOS_PSK, ERR_R_INTERNAL_ERROR);
 | 
			
		||||
                return 0;
 | 
			
		||||
                goto err;
 | 
			
		||||
            }
 | 
			
		||||
            SSL_SESSION_free(sess);
 | 
			
		||||
            sess = sesstmp;
 | 
			
		||||
| 
						 | 
				
			
			@ -1274,7 +1279,7 @@ int tls_parse_ctos_psk(SSL *s, PACKET *pkt, unsigned int context, X509 *x,
 | 
			
		|||
        goto err;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    sess->ext.tick_identity = id;
 | 
			
		||||
    s->ext.tick_identity = id;
 | 
			
		||||
 | 
			
		||||
    SSL_SESSION_free(s->session);
 | 
			
		||||
    s->session = sess;
 | 
			
		||||
| 
						 | 
				
			
			@ -1330,8 +1335,14 @@ EXT_RETURN tls_construct_stoc_server_name(SSL *s, WPACKET *pkt,
 | 
			
		|||
                                          unsigned int context, X509 *x,
 | 
			
		||||
                                          size_t chainidx)
 | 
			
		||||
{
 | 
			
		||||
    if (s->hit || s->servername_done != 1
 | 
			
		||||
            || s->ext.hostname == NULL)
 | 
			
		||||
    if (s->servername_done != 1)
 | 
			
		||||
        return EXT_RETURN_NOT_SENT;
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * Prior to TLSv1.3 we ignore any SNI in the current handshake if resuming.
 | 
			
		||||
     * We just use the servername from the initial handshake.
 | 
			
		||||
     */
 | 
			
		||||
    if (s->hit && !SSL_IS_TLS13(s))
 | 
			
		||||
        return EXT_RETURN_NOT_SENT;
 | 
			
		||||
 | 
			
		||||
    if (!WPACKET_put_bytes_u16(pkt, TLSEXT_TYPE_server_name)
 | 
			
		||||
| 
						 | 
				
			
			@ -1376,7 +1387,7 @@ EXT_RETURN tls_construct_stoc_ec_pt_formats(SSL *s, WPACKET *pkt,
 | 
			
		|||
    unsigned long alg_k = s->s3->tmp.new_cipher->algorithm_mkey;
 | 
			
		||||
    unsigned long alg_a = s->s3->tmp.new_cipher->algorithm_auth;
 | 
			
		||||
    int using_ecc = ((alg_k & SSL_kECDHE) || (alg_a & SSL_aECDSA))
 | 
			
		||||
                    && (s->session->ext.ecpointformats != NULL);
 | 
			
		||||
                    && (s->ext.peer_ecpointformats != NULL);
 | 
			
		||||
    const unsigned char *plist;
 | 
			
		||||
    size_t plistlen;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1487,6 +1498,10 @@ EXT_RETURN tls_construct_stoc_status_request(SSL *s, WPACKET *pkt,
 | 
			
		|||
                                             unsigned int context, X509 *x,
 | 
			
		||||
                                             size_t chainidx)
 | 
			
		||||
{
 | 
			
		||||
    /* We don't currently support this extension inside a CertificateRequest */
 | 
			
		||||
    if (context == SSL_EXT_TLS1_3_CERTIFICATE_REQUEST)
 | 
			
		||||
        return EXT_RETURN_NOT_SENT;
 | 
			
		||||
 | 
			
		||||
    if (!s->ext.status_expected)
 | 
			
		||||
        return EXT_RETURN_NOT_SENT;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1699,6 +1714,13 @@ EXT_RETURN tls_construct_stoc_key_share(SSL *s, WPACKET *pkt,
 | 
			
		|||
        }
 | 
			
		||||
        return EXT_RETURN_NOT_SENT;
 | 
			
		||||
    }
 | 
			
		||||
    if (s->hit && (s->ext.psk_kex_mode & TLSEXT_KEX_MODE_FLAG_KE_DHE) == 0) {
 | 
			
		||||
        /*
 | 
			
		||||
         * PSK ('hit') and explicitly not doing DHE (if the client sent the
 | 
			
		||||
         * DHE option we always take it); don't send key share.
 | 
			
		||||
         */
 | 
			
		||||
        return EXT_RETURN_NOT_SENT;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (!WPACKET_put_bytes_u16(pkt, TLSEXT_TYPE_key_share)
 | 
			
		||||
            || !WPACKET_start_sub_packet_u16(pkt)
 | 
			
		||||
| 
						 | 
				
			
			@ -1948,7 +1970,7 @@ EXT_RETURN tls_construct_stoc_psk(SSL *s, WPACKET *pkt, unsigned int context,
 | 
			
		|||
 | 
			
		||||
    if (!WPACKET_put_bytes_u16(pkt, TLSEXT_TYPE_psk)
 | 
			
		||||
            || !WPACKET_start_sub_packet_u16(pkt)
 | 
			
		||||
            || !WPACKET_put_bytes_u16(pkt, s->session->ext.tick_identity)
 | 
			
		||||
            || !WPACKET_put_bytes_u16(pkt, s->ext.tick_identity)
 | 
			
		||||
            || !WPACKET_close(pkt)) {
 | 
			
		||||
        SSLfatal(s, SSL_AD_INTERNAL_ERROR,
 | 
			
		||||
                 SSL_F_TLS_CONSTRUCT_STOC_PSK, ERR_R_INTERNAL_ERROR);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue