Latest update.
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
/*
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
@@ -2338,7 +2342,7 @@ int construct_ca_names(SSL *s, const STACK_OF(X509_NAME) *ca_sk, WPACKET *pkt)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ca_sk != NULL) {
|
||||
if ((ca_sk != NULL) && !(s->options & SSL_OP_DISABLE_TLSEXT_CA_NAMES)) {
|
||||
int i;
|
||||
|
||||
for (i = 0; i < sk_X509_NAME_num(ca_sk); i++) {
|
||||
|
||||
@@ -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 {
|
||||
@@ -437,6 +441,10 @@ static WRITE_TRAN ossl_statem_server13_write_transition(SSL *s)
|
||||
st->hand_state = TLS_ST_SW_CERT_REQ;
|
||||
return WRITE_TRAN_CONTINUE;
|
||||
}
|
||||
if (s->ext.extra_tickets_expected > 0) {
|
||||
st->hand_state = TLS_ST_SW_SESSION_TICKET;
|
||||
return WRITE_TRAN_CONTINUE;
|
||||
}
|
||||
/* Try to read from the client instead */
|
||||
return WRITE_TRAN_FINISHED;
|
||||
|
||||
@@ -527,7 +535,9 @@ static WRITE_TRAN ossl_statem_server13_write_transition(SSL *s)
|
||||
* Following an initial handshake we send the number of tickets we have
|
||||
* been configured for.
|
||||
*/
|
||||
if (s->hit || s->num_tickets <= s->sent_tickets) {
|
||||
if (!SSL_IS_FIRST_HANDSHAKE(s) && s->ext.extra_tickets_expected > 0) {
|
||||
return WRITE_TRAN_CONTINUE;
|
||||
} else if (s->hit || s->num_tickets <= s->sent_tickets) {
|
||||
/* We've written enough tickets out. */
|
||||
st->hand_state = TLS_ST_OK;
|
||||
}
|
||||
@@ -723,7 +733,8 @@ WORK_STATE ossl_statem_server_pre_work(SSL *s, WORK_STATE wst)
|
||||
return WORK_FINISHED_CONTINUE;
|
||||
|
||||
case TLS_ST_SW_SESSION_TICKET:
|
||||
if (SSL_IS_TLS13(s) && s->sent_tickets == 0) {
|
||||
if (SSL_IS_TLS13(s) && s->sent_tickets == 0
|
||||
&& s->ext.extra_tickets_expected == 0) {
|
||||
/*
|
||||
* Actually this is the end of the handshake, but we're going
|
||||
* straight into writing the session ticket out. So we finish off
|
||||
@@ -732,7 +743,8 @@ WORK_STATE ossl_statem_server_pre_work(SSL *s, WORK_STATE wst)
|
||||
* Calls SSLfatal as required.
|
||||
*/
|
||||
return tls_finish_handshake(s, wst, 0, 0);
|
||||
} if (SSL_IS_DTLS(s)) {
|
||||
}
|
||||
if (SSL_IS_DTLS(s)) {
|
||||
/*
|
||||
* We're into the last flight. We don't retransmit the last flight
|
||||
* unless we need to, so we don't use the timer
|
||||
@@ -4157,10 +4169,13 @@ int tls_construct_new_session_ticket(SSL *s, WPACKET *pkt)
|
||||
/*
|
||||
* Increment both |sent_tickets| and |next_ticket_nonce|. |sent_tickets|
|
||||
* gets reset to 0 if we send more tickets following a post-handshake
|
||||
* auth, but |next_ticket_nonce| does not.
|
||||
* auth, but |next_ticket_nonce| does not. If we're sending extra
|
||||
* tickets, decrement the count of pending extra tickets.
|
||||
*/
|
||||
s->sent_tickets++;
|
||||
s->next_ticket_nonce++;
|
||||
if (s->ext.extra_tickets_expected > 0)
|
||||
s->ext.extra_tickets_expected--;
|
||||
ssl_update_cache(s, SSL_SESS_CACHE_SERVER);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user