diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libssl/s3_lib.c | 9 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_cert.c | 10 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_lib.c | 6 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_local.h | 6 |
4 files changed, 17 insertions, 14 deletions
diff --git a/src/lib/libssl/s3_lib.c b/src/lib/libssl/s3_lib.c index 4229b2e9e3..37ca7bd113 100644 --- a/src/lib/libssl/s3_lib.c +++ b/src/lib/libssl/s3_lib.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: s3_lib.c,v 1.243 2023/05/16 14:10:43 jcs Exp $ */ | 1 | /* $OpenBSD: s3_lib.c,v 1.244 2023/05/26 13:44:05 tb Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -1570,6 +1570,7 @@ ssl3_free(SSL *s) | |||
| 1570 | freezero(s->s3->hs.sigalgs, s->s3->hs.sigalgs_len); | 1570 | freezero(s->s3->hs.sigalgs, s->s3->hs.sigalgs_len); |
| 1571 | sk_X509_pop_free(s->s3->hs.peer_certs, X509_free); | 1571 | sk_X509_pop_free(s->s3->hs.peer_certs, X509_free); |
| 1572 | sk_X509_pop_free(s->s3->hs.peer_certs_no_leaf, X509_free); | 1572 | sk_X509_pop_free(s->s3->hs.peer_certs_no_leaf, X509_free); |
| 1573 | sk_X509_pop_free(s->s3->hs.verified_chain, X509_free); | ||
| 1573 | tls_key_share_free(s->s3->hs.key_share); | 1574 | tls_key_share_free(s->s3->hs.key_share); |
| 1574 | 1575 | ||
| 1575 | tls13_secrets_destroy(s->s3->hs.tls13.secrets); | 1576 | tls13_secrets_destroy(s->s3->hs.tls13.secrets); |
| @@ -1579,8 +1580,6 @@ ssl3_free(SSL *s) | |||
| 1579 | tls_buffer_free(s->s3->hs.tls13.quic_read_buffer); | 1580 | tls_buffer_free(s->s3->hs.tls13.quic_read_buffer); |
| 1580 | 1581 | ||
| 1581 | sk_X509_NAME_pop_free(s->s3->hs.tls12.ca_names, X509_NAME_free); | 1582 | sk_X509_NAME_pop_free(s->s3->hs.tls12.ca_names, X509_NAME_free); |
| 1582 | sk_X509_pop_free(s->verified_chain, X509_free); | ||
| 1583 | s->verified_chain = NULL; | ||
| 1584 | 1583 | ||
| 1585 | tls1_transcript_free(s); | 1584 | tls1_transcript_free(s); |
| 1586 | tls1_transcript_hash_free(s); | 1585 | tls1_transcript_hash_free(s); |
| @@ -1603,8 +1602,6 @@ ssl3_clear(SSL *s) | |||
| 1603 | 1602 | ||
| 1604 | tls1_cleanup_key_block(s); | 1603 | tls1_cleanup_key_block(s); |
| 1605 | sk_X509_NAME_pop_free(s->s3->hs.tls12.ca_names, X509_NAME_free); | 1604 | sk_X509_NAME_pop_free(s->s3->hs.tls12.ca_names, X509_NAME_free); |
| 1606 | sk_X509_pop_free(s->verified_chain, X509_free); | ||
| 1607 | s->verified_chain = NULL; | ||
| 1608 | 1605 | ||
| 1609 | tls_buffer_free(s->s3->alert_fragment); | 1606 | tls_buffer_free(s->s3->alert_fragment); |
| 1610 | s->s3->alert_fragment = NULL; | 1607 | s->s3->alert_fragment = NULL; |
| @@ -1619,6 +1616,8 @@ ssl3_clear(SSL *s) | |||
| 1619 | s->s3->hs.peer_certs = NULL; | 1616 | s->s3->hs.peer_certs = NULL; |
| 1620 | sk_X509_pop_free(s->s3->hs.peer_certs_no_leaf, X509_free); | 1617 | sk_X509_pop_free(s->s3->hs.peer_certs_no_leaf, X509_free); |
| 1621 | s->s3->hs.peer_certs_no_leaf = NULL; | 1618 | s->s3->hs.peer_certs_no_leaf = NULL; |
| 1619 | sk_X509_pop_free(s->s3->hs.verified_chain, X509_free); | ||
| 1620 | s->s3->hs.verified_chain = NULL; | ||
| 1622 | 1621 | ||
| 1623 | tls_key_share_free(s->s3->hs.key_share); | 1622 | tls_key_share_free(s->s3->hs.key_share); |
| 1624 | s->s3->hs.key_share = NULL; | 1623 | s->s3->hs.key_share = NULL; |
diff --git a/src/lib/libssl/ssl_cert.c b/src/lib/libssl/ssl_cert.c index 4fe805212b..8a333b4278 100644 --- a/src/lib/libssl/ssl_cert.c +++ b/src/lib/libssl/ssl_cert.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_cert.c,v 1.105 2022/11/26 16:08:55 tb Exp $ */ | 1 | /* $OpenBSD: ssl_cert.c,v 1.106 2023/05/26 13:44:05 tb Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -440,11 +440,11 @@ ssl_verify_cert_chain(SSL *s, STACK_OF(X509) *certs) | |||
| 440 | ret = X509_verify_cert(ctx); | 440 | ret = X509_verify_cert(ctx); |
| 441 | 441 | ||
| 442 | s->verify_result = X509_STORE_CTX_get_error(ctx); | 442 | s->verify_result = X509_STORE_CTX_get_error(ctx); |
| 443 | sk_X509_pop_free(s->verified_chain, X509_free); | 443 | sk_X509_pop_free(s->s3->hs.verified_chain, X509_free); |
| 444 | s->verified_chain = NULL; | 444 | s->s3->hs.verified_chain = NULL; |
| 445 | if (X509_STORE_CTX_get0_chain(ctx) != NULL) { | 445 | if (X509_STORE_CTX_get0_chain(ctx) != NULL) { |
| 446 | s->verified_chain = X509_STORE_CTX_get1_chain(ctx); | 446 | s->s3->hs.verified_chain = X509_STORE_CTX_get1_chain(ctx); |
| 447 | if (s->verified_chain == NULL) { | 447 | if (s->s3->hs.verified_chain == NULL) { |
| 448 | SSLerrorx(ERR_R_MALLOC_FAILURE); | 448 | SSLerrorx(ERR_R_MALLOC_FAILURE); |
| 449 | ret = 0; | 449 | ret = 0; |
| 450 | } | 450 | } |
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c index 68e60a5481..f6c9406139 100644 --- a/src/lib/libssl/ssl_lib.c +++ b/src/lib/libssl/ssl_lib.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_lib.c,v 1.309 2023/04/23 18:51:53 tb Exp $ */ | 1 | /* $OpenBSD: ssl_lib.c,v 1.310 2023/05/26 13:44:05 tb Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -900,7 +900,9 @@ SSL_get_peer_cert_chain(const SSL *s) | |||
| 900 | STACK_OF(X509) * | 900 | STACK_OF(X509) * |
| 901 | SSL_get0_verified_chain(const SSL *s) | 901 | SSL_get0_verified_chain(const SSL *s) |
| 902 | { | 902 | { |
| 903 | return s->verified_chain; | 903 | if (s->s3 == NULL) |
| 904 | return NULL; | ||
| 905 | return s->s3->hs.verified_chain; | ||
| 904 | } | 906 | } |
| 905 | 907 | ||
| 906 | /* | 908 | /* |
diff --git a/src/lib/libssl/ssl_local.h b/src/lib/libssl/ssl_local.h index 876a5e4657..cb38e5f91c 100644 --- a/src/lib/libssl/ssl_local.h +++ b/src/lib/libssl/ssl_local.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_local.h,v 1.5 2023/04/25 07:48:15 tb Exp $ */ | 1 | /* $OpenBSD: ssl_local.h,v 1.6 2023/05/26 13:44:05 tb Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -651,6 +651,9 @@ typedef struct ssl_handshake_st { | |||
| 651 | STACK_OF(X509) *peer_certs; | 651 | STACK_OF(X509) *peer_certs; |
| 652 | STACK_OF(X509) *peer_certs_no_leaf; | 652 | STACK_OF(X509) *peer_certs_no_leaf; |
| 653 | 653 | ||
| 654 | /* Certificate chain resulting from X.509 verification. */ | ||
| 655 | STACK_OF(X509) *verified_chain; | ||
| 656 | |||
| 654 | SSL_HANDSHAKE_TLS12 tls12; | 657 | SSL_HANDSHAKE_TLS12 tls12; |
| 655 | SSL_HANDSHAKE_TLS13 tls13; | 658 | SSL_HANDSHAKE_TLS13 tls13; |
| 656 | } SSL_HANDSHAKE; | 659 | } SSL_HANDSHAKE; |
| @@ -1130,7 +1133,6 @@ struct ssl_st { | |||
| 1130 | int empty_record_count; | 1133 | int empty_record_count; |
| 1131 | 1134 | ||
| 1132 | size_t num_tickets; /* Unused, for OpenSSL compatibility */ | 1135 | size_t num_tickets; /* Unused, for OpenSSL compatibility */ |
| 1133 | STACK_OF(X509) *verified_chain; | ||
| 1134 | }; | 1136 | }; |
| 1135 | 1137 | ||
| 1136 | typedef struct ssl3_record_internal_st { | 1138 | typedef struct ssl3_record_internal_st { |
