#define HSK_CRT_REQ_SENT (1<<5)
#define HSK_CRT_REQ_GOT_SIG_ALGO (1<<6)
#define HSK_KEY_UPDATE_ASKED (1<<7) /* flag is not used during handshake */
+#define HSK_FALSE_START_USED (1<<8) /* TLS1.2 only */
unsigned hsk_flags;
time_t last_key_update;
char saved_username[MAX_USERNAME_SIZE+1];
bool saved_username_set;
- bool false_start_used; /* non-zero if false start was used for appdata */
-
/* Needed for TCP Fast Open (TFO), set by gnutls_transport_set_fastopen() */
tfo_st tfo;
case STATE17:
STATE = STATE17;
if (session->internals.resumed == RESUME_FALSE && (session->internals.flags & GNUTLS_ENABLE_FALSE_START) && can_send_false_start(session)) {
- session->internals.false_start_used = 1;
+ session->internals.hsk_flags |= HSK_FALSE_START_USED;
session->internals.recv_state = RECV_STATE_FALSE_START;
/* complete this phase of the handshake. We
* should be called again by gnutls_record_recv()
gnutls_assert();
return 0;
- } else {
- session->internals.false_start_used = 0;
}
/* fall through */
case STATE18:
flags |= GNUTLS_SFLAGS_HB_LOCAL_SEND;
if (gnutls_heartbeat_allowed(session, GNUTLS_HB_PEER_ALLOWED_TO_SEND))
flags |= GNUTLS_SFLAGS_HB_PEER_SEND;
- if (session->internals.false_start_used)
+ if (session->internals.hsk_flags & HSK_FALSE_START_USED)
flags |= GNUTLS_SFLAGS_FALSE_START;
if (session->internals.used_ffdhe)
flags |= GNUTLS_SFLAGS_RFC7919;