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
70
trunk/3rdparty/openssl-1.1-fit/ssl/tls13_enc.c
vendored
70
trunk/3rdparty/openssl-1.1-fit/ssl/tls13_enc.c
vendored
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2016-2020 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,7 +8,7 @@
|
|||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include "ssl_locl.h"
|
||||
#include "ssl_local.h"
|
||||
#include "internal/cryptlib.h"
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/kdf.h>
|
||||
|
@ -30,7 +30,11 @@ int tls13_hkdf_expand(SSL *s, const EVP_MD *md, const unsigned char *secret,
|
|||
const unsigned char *data, size_t datalen,
|
||||
unsigned char *out, size_t outlen, int fatal)
|
||||
{
|
||||
#ifdef CHARSET_EBCDIC
|
||||
static const unsigned char label_prefix[] = { 0x74, 0x6C, 0x73, 0x31, 0x33, 0x20, 0x00 };
|
||||
#else
|
||||
static const unsigned char label_prefix[] = "tls13 ";
|
||||
#endif
|
||||
EVP_PKEY_CTX *pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_HKDF, NULL);
|
||||
int ret;
|
||||
size_t hkdflabellen;
|
||||
|
@ -40,7 +44,7 @@ int tls13_hkdf_expand(SSL *s, const EVP_MD *md, const unsigned char *secret,
|
|||
* prefix and label + bytes for the label itself + 1 byte length of hash
|
||||
* + bytes for the hash itself
|
||||
*/
|
||||
unsigned char hkdflabel[sizeof(uint16_t) + sizeof(uint8_t) +
|
||||
unsigned char hkdflabel[sizeof(uint16_t) + sizeof(uint8_t)
|
||||
+ (sizeof(label_prefix) - 1) + TLS13_MAX_LABEL_LEN
|
||||
+ 1 + EVP_MAX_MD_SIZE];
|
||||
WPACKET pkt;
|
||||
|
@ -112,7 +116,11 @@ int tls13_hkdf_expand(SSL *s, const EVP_MD *md, const unsigned char *secret,
|
|||
int tls13_derive_key(SSL *s, const EVP_MD *md, const unsigned char *secret,
|
||||
unsigned char *key, size_t keylen)
|
||||
{
|
||||
static const unsigned char keylabel[] = "key";
|
||||
#ifdef CHARSET_EBCDIC
|
||||
static const unsigned char keylabel[] ={ 0x6B, 0x65, 0x79, 0x00 };
|
||||
#else
|
||||
static const unsigned char keylabel[] = "key";
|
||||
#endif
|
||||
|
||||
return tls13_hkdf_expand(s, md, secret, keylabel, sizeof(keylabel) - 1,
|
||||
NULL, 0, key, keylen, 1);
|
||||
|
@ -125,7 +133,11 @@ int tls13_derive_key(SSL *s, const EVP_MD *md, const unsigned char *secret,
|
|||
int tls13_derive_iv(SSL *s, const EVP_MD *md, const unsigned char *secret,
|
||||
unsigned char *iv, size_t ivlen)
|
||||
{
|
||||
static const unsigned char ivlabel[] = "iv";
|
||||
#ifdef CHARSET_EBCDIC
|
||||
static const unsigned char ivlabel[] = { 0x69, 0x76, 0x00 };
|
||||
#else
|
||||
static const unsigned char ivlabel[] = "iv";
|
||||
#endif
|
||||
|
||||
return tls13_hkdf_expand(s, md, secret, ivlabel, sizeof(ivlabel) - 1,
|
||||
NULL, 0, iv, ivlen, 1);
|
||||
|
@ -135,7 +147,11 @@ int tls13_derive_finishedkey(SSL *s, const EVP_MD *md,
|
|||
const unsigned char *secret,
|
||||
unsigned char *fin, size_t finlen)
|
||||
{
|
||||
static const unsigned char finishedlabel[] = "finished";
|
||||
#ifdef CHARSET_EBCDIC
|
||||
static const unsigned char finishedlabel[] = { 0x66, 0x69, 0x6E, 0x69, 0x73, 0x68, 0x65, 0x64, 0x00 };
|
||||
#else
|
||||
static const unsigned char finishedlabel[] = "finished";
|
||||
#endif
|
||||
|
||||
return tls13_hkdf_expand(s, md, secret, finishedlabel,
|
||||
sizeof(finishedlabel) - 1, NULL, 0, fin, finlen, 1);
|
||||
|
@ -156,7 +172,11 @@ int tls13_generate_secret(SSL *s, const EVP_MD *md,
|
|||
int mdleni;
|
||||
int ret;
|
||||
EVP_PKEY_CTX *pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_HKDF, NULL);
|
||||
#ifdef CHARSET_EBCDIC
|
||||
static const char derived_secret_label[] = { 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x00 };
|
||||
#else
|
||||
static const char derived_secret_label[] = "derived";
|
||||
#endif
|
||||
unsigned char preextractsec[EVP_MAX_MD_SIZE];
|
||||
|
||||
if (pctx == NULL) {
|
||||
|
@ -370,11 +390,18 @@ static int derive_secret_key_and_iv(SSL *s, int sending, const EVP_MD *md,
|
|||
uint32_t algenc;
|
||||
|
||||
ivlen = EVP_CCM_TLS_IV_LEN;
|
||||
if (s->s3->tmp.new_cipher == NULL) {
|
||||
if (s->s3->tmp.new_cipher != NULL) {
|
||||
algenc = s->s3->tmp.new_cipher->algorithm_enc;
|
||||
} else if (s->session->cipher != NULL) {
|
||||
/* We've not selected a cipher yet - we must be doing early data */
|
||||
algenc = s->session->cipher->algorithm_enc;
|
||||
} else if (s->psksession != NULL && s->psksession->cipher != NULL) {
|
||||
/* We must be doing early data with out-of-band PSK */
|
||||
algenc = s->psksession->cipher->algorithm_enc;
|
||||
} else {
|
||||
algenc = s->s3->tmp.new_cipher->algorithm_enc;
|
||||
SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_DERIVE_SECRET_KEY_AND_IV,
|
||||
ERR_R_EVP_LIB);
|
||||
goto err;
|
||||
}
|
||||
if (algenc & (SSL_AES128CCM8 | SSL_AES256CCM8))
|
||||
taglen = EVP_CCM8_TLS_TAG_LEN;
|
||||
|
@ -409,6 +436,16 @@ static int derive_secret_key_and_iv(SSL *s, int sending, const EVP_MD *md,
|
|||
|
||||
int tls13_change_cipher_state(SSL *s, int which)
|
||||
{
|
||||
#ifdef CHARSET_EBCDIC
|
||||
static const unsigned char client_early_traffic[] = {0x63, 0x20, 0x65, 0x20, /*traffic*/0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x00};
|
||||
static const unsigned char client_handshake_traffic[] = {0x63, 0x20, 0x68, 0x73, 0x20, /*traffic*/0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x00};
|
||||
static const unsigned char client_application_traffic[] = {0x63, 0x20, 0x61, 0x70, 0x20, /*traffic*/0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x00};
|
||||
static const unsigned char server_handshake_traffic[] = {0x73, 0x20, 0x68, 0x73, 0x20, /*traffic*/0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x00};
|
||||
static const unsigned char server_application_traffic[] = {0x73, 0x20, 0x61, 0x70, 0x20, /*traffic*/0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x00};
|
||||
static const unsigned char exporter_master_secret[] = {0x65, 0x78, 0x70, 0x20, /* master*/ 0x6D, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00};
|
||||
static const unsigned char resumption_master_secret[] = {0x72, 0x65, 0x73, 0x20, /* master*/ 0x6D, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00};
|
||||
static const unsigned char early_exporter_master_secret[] = {0x65, 0x20, 0x65, 0x78, 0x70, 0x20, /* master*/ 0x6D, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00};
|
||||
#else
|
||||
static const unsigned char client_early_traffic[] = "c e traffic";
|
||||
static const unsigned char client_handshake_traffic[] = "c hs traffic";
|
||||
static const unsigned char client_application_traffic[] = "c ap traffic";
|
||||
|
@ -417,6 +454,7 @@ int tls13_change_cipher_state(SSL *s, int which)
|
|||
static const unsigned char exporter_master_secret[] = "exp master";
|
||||
static const unsigned char resumption_master_secret[] = "res master";
|
||||
static const unsigned char early_exporter_master_secret[] = "e exp master";
|
||||
#endif
|
||||
unsigned char *iv;
|
||||
unsigned char secret[EVP_MAX_MD_SIZE];
|
||||
unsigned char hashval[EVP_MAX_MD_SIZE];
|
||||
|
@ -684,7 +722,11 @@ int tls13_change_cipher_state(SSL *s, int which)
|
|||
|
||||
int tls13_update_key(SSL *s, int sending)
|
||||
{
|
||||
static const unsigned char application_traffic[] = "traffic upd";
|
||||
#ifdef CHARSET_EBCDIC
|
||||
static const unsigned char application_traffic[] = { 0x74, 0x72 ,0x61 ,0x66 ,0x66 ,0x69 ,0x63 ,0x20 ,0x75 ,0x70 ,0x64, 0x00};
|
||||
#else
|
||||
static const unsigned char application_traffic[] = "traffic upd";
|
||||
#endif
|
||||
const EVP_MD *md = ssl_handshake_md(s);
|
||||
size_t hashlen = EVP_MD_size(md);
|
||||
unsigned char *insecret, *iv;
|
||||
|
@ -741,7 +783,11 @@ int tls13_export_keying_material(SSL *s, unsigned char *out, size_t olen,
|
|||
size_t contextlen, int use_context)
|
||||
{
|
||||
unsigned char exportsecret[EVP_MAX_MD_SIZE];
|
||||
#ifdef CHARSET_EBCDIC
|
||||
static const unsigned char exporterlabel[] = {0x65, 0x78, 0x70, 0x6F, 0x72, 0x74, 0x65, 0x72, 0x00};
|
||||
#else
|
||||
static const unsigned char exporterlabel[] = "exporter";
|
||||
#endif
|
||||
unsigned char hash[EVP_MAX_MD_SIZE], data[EVP_MAX_MD_SIZE];
|
||||
const EVP_MD *md = ssl_handshake_md(s);
|
||||
EVP_MD_CTX *ctx = EVP_MD_CTX_new();
|
||||
|
@ -778,7 +824,11 @@ int tls13_export_keying_material_early(SSL *s, unsigned char *out, size_t olen,
|
|||
const unsigned char *context,
|
||||
size_t contextlen)
|
||||
{
|
||||
static const unsigned char exporterlabel[] = "exporter";
|
||||
#ifdef CHARSET_EBCDIC
|
||||
static const unsigned char exporterlabel[] = {0x65, 0x78, 0x70, 0x6F, 0x72, 0x74, 0x65, 0x72, 0x00};
|
||||
#else
|
||||
static const unsigned char exporterlabel[] = "exporter";
|
||||
#endif
|
||||
unsigned char exportsecret[EVP_MAX_MD_SIZE];
|
||||
unsigned char hash[EVP_MAX_MD_SIZE], data[EVP_MAX_MD_SIZE];
|
||||
const EVP_MD *md;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue