diff options
Diffstat (limited to 'lib/ext/pre_shared_key.c')
-rw-r--r-- | lib/ext/pre_shared_key.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/ext/pre_shared_key.c b/lib/ext/pre_shared_key.c index b12d853af8..dc56d1dc49 100644 --- a/lib/ext/pre_shared_key.c +++ b/lib/ext/pre_shared_key.c @@ -201,8 +201,7 @@ client_send_params(gnutls_session_t session, unsigned next_idx; const mac_entry_st *prf_res = NULL; const mac_entry_st *prf_psk = NULL; - time_t cur_time; - int ticket_age; + time_t cur_time, ticket_age; uint32_t ob_ticket_age; int free_username = 0; psk_auth_info_t info = NULL; @@ -340,6 +339,13 @@ client_send_params(gnutls_session_t session, binders_len += 1 + _gnutls_mac_get_algo_len(prf_psk); } + /* if no tickets or identities to be sent */ + if (psk_id_len == 0) { + /* reset extensions buffer */ + extdata->length = spos; + return 0; + } + _gnutls_write_uint16(psk_id_len, &extdata->data[spos]); binders_pos = extdata->length-spos; @@ -470,7 +476,7 @@ static int server_recv_params(gnutls_session_t session, struct psk_st psk; psk_auth_info_t info; tls13_ticket_t ticket_data; - int ticket_age; + time_t ticket_age; bool resuming; ret = _gnutls13_psk_ext_parser_init(&psk_parser, data, len); |