resume.c | resume.c | |||
---|---|---|---|---|
skipping to change at line 124 | skipping to change at line 124 | |||
global_init(); | global_init(); | |||
gnutls_anon_allocate_client_credentials(&anoncred); | gnutls_anon_allocate_client_credentials(&anoncred); | |||
for (t = 0; t < SESSIONS; t++) { | for (t = 0; t < SESSIONS; t++) { | |||
int sd = sds[t]; | int sd = sds[t]; | |||
/* Initialize TLS session | /* Initialize TLS session | |||
*/ | */ | |||
gnutls_init(&session, | gnutls_init(&session, | |||
GNUTLS_CLIENT | GNUTLS_NO_EXTENSIONS); | GNUTLS_CLIENT); | |||
/* Use default priorities */ | /* Use default priorities */ | |||
gnutls_priority_set_direct(session, | if (params->enable_session_ticket_client) { | |||
"NONE:+VERS-TLS-ALL:+CIPHER-ALL:+ | gnutls_priority_set_direct(session, | |||
MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-DH", | "NONE:+VERS-TLS-ALL:+CIPH | |||
NULL); | ER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-DH", | |||
NULL); | ||||
} else { | ||||
gnutls_priority_set_direct(session, | ||||
"NONE:+VERS-TLS-ALL:+CIPH | ||||
ER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-DH:%NO_TICKETS", | ||||
NULL); | ||||
} | ||||
/* put the anonymous credentials to the current session | /* put the anonymous credentials to the current session | |||
*/ | */ | |||
gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred); | gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred); | |||
if (params->enable_session_ticket_client) | ||||
gnutls_session_ticket_enable_client(session); | ||||
if (t > 0) { | if (t > 0) { | |||
/* if this is not the first time we connect */ | /* if this is not the first time we connect */ | |||
gnutls_session_set_data(session, session_data.data, | gnutls_session_set_data(session, session_data.data, | |||
session_data.size); | session_data.size); | |||
} | } | |||
gnutls_transport_set_int(session, sd); | gnutls_transport_set_int(session, sd); | |||
/* Perform the TLS handshake | /* Perform the TLS handshake | |||
*/ | */ | |||
skipping to change at line 164 | skipping to change at line 167 | |||
fail("client: Handshake failed\n"); | fail("client: Handshake failed\n"); | |||
gnutls_perror(ret); | gnutls_perror(ret); | |||
goto end; | goto end; | |||
} else { | } else { | |||
if (debug) | if (debug) | |||
success | success | |||
("client: Handshake was completed\n"); | ("client: Handshake was completed\n"); | |||
} | } | |||
if (t == 0) { /* the first time we connect */ | if (t == 0) { /* the first time we connect */ | |||
/* check whether using NO_EXTENSIONS had any effect | ||||
*/ | ||||
ret = gnutls_session_ext_master_secret_status(sessio | ||||
n); | ||||
if (ret != 0) { | ||||
fail("Extended master secret should have not | ||||
been negotiated by default (ret: %d)\n", ret); | ||||
} | ||||
/* get the session data size */ | /* get the session data size */ | |||
ret = | ret = | |||
gnutls_session_get_data2(session, | gnutls_session_get_data2(session, | |||
&session_data); | &session_data); | |||
if (ret < 0) | if (ret < 0) | |||
fail("Getting resume data failed\n"); | fail("Getting resume data failed\n"); | |||
} else { /* the second time we connect */ | } else { /* the second time we connect */ | |||
/* check if we actually resumed the previous session */ | /* check if we actually resumed the previous session */ | |||
if (gnutls_session_is_resumed(session) != 0) { | if (gnutls_session_is_resumed(session) != 0) { | |||
skipping to change at line 488 | skipping to change at line 485 | |||
free(cache_db); | free(cache_db); | |||
cache_db = NULL; | cache_db = NULL; | |||
return; | return; | |||
} | } | |||
static int | static int | |||
wrap_db_store(void *dbf, gnutls_datum_t key, gnutls_datum_t data) | wrap_db_store(void *dbf, gnutls_datum_t key, gnutls_datum_t data) | |||
{ | { | |||
time_t t, now = time(0); | time_t t, now = time(0); | |||
#ifdef DEBUG_CACHE | ||||
if (debug) { | if (debug) { | |||
unsigned int i; | unsigned int i; | |||
fprintf(stderr, "resume db storing (%d-%d): ", key.size, | fprintf(stderr, "resume db storing (%d-%d): ", key.size, | |||
data.size); | data.size); | |||
for (i = 0; i < key.size; i++) { | for (i = 0; i < key.size; i++) { | |||
fprintf(stderr, "%02x", key.data[i] & 0xFF); | fprintf(stderr, "%02x", key.data[i] & 0xFF); | |||
} | } | |||
fprintf(stderr, "\n"); | fprintf(stderr, "\n"); | |||
fprintf(stderr, "data: "); | fprintf(stderr, "data: "); | |||
for (i = 0; i < data.size; i++) { | for (i = 0; i < data.size; i++) { | |||
fprintf(stderr, "%02x", data.data[i] & 0xFF); | fprintf(stderr, "%02x", data.data[i] & 0xFF); | |||
} | } | |||
fprintf(stderr, "\n"); | fprintf(stderr, "\n"); | |||
} | } | |||
#endif | ||||
/* check the correctness of gnutls_db_check_entry_time() */ | /* check the correctness of gnutls_db_check_entry_time() */ | |||
t = gnutls_db_check_entry_time(&data); | t = gnutls_db_check_entry_time(&data); | |||
if (t < now - 10 || t > now + 10) { | if (t < now - 10 || t > now + 10) { | |||
fail("Time returned by gnutls_db_check_entry_time is bogus\n "); | fail("Time returned by gnutls_db_check_entry_time is bogus\n "); | |||
exit(1); | exit(1); | |||
} | } | |||
if (cache_db == NULL) | if (cache_db == NULL) | |||
return -1; | return -1; | |||
skipping to change at line 568 | skipping to change at line 567 | |||
res.size = cache_db[i].session_data_size; | res.size = cache_db[i].session_data_size; | |||
res.data = gnutls_malloc(res.size); | res.data = gnutls_malloc(res.size); | |||
if (res.data == NULL) | if (res.data == NULL) | |||
return res; | return res; | |||
memcpy(res.data, cache_db[i].session_data, | memcpy(res.data, cache_db[i].session_data, | |||
res.size); | res.size); | |||
#ifdef DEBUG_CACHE | ||||
if (debug) { | if (debug) { | |||
unsigned int j; | unsigned int j; | |||
printf("data:\n"); | printf("data:\n"); | |||
for (j = 0; j < res.size; j++) { | for (j = 0; j < res.size; j++) { | |||
printf("%02x ", | printf("%02x ", | |||
res.data[j] & 0xFF); | res.data[j] & 0xFF); | |||
if ((j + 1) % 16 == 0) | if ((j + 1) % 16 == 0) | |||
printf("\n"); | printf("\n"); | |||
} | } | |||
printf("\n"); | printf("\n"); | |||
} | } | |||
#endif | ||||
return res; | return res; | |||
} | } | |||
} | } | |||
if (debug) | if (debug) | |||
success("resume db fetch... NOT FOUND\n"); | success("resume db fetch... NOT FOUND\n"); | |||
return res; | return res; | |||
} | } | |||
static int wrap_db_delete(void *dbf, gnutls_datum_t key) | static int wrap_db_delete(void *dbf, gnutls_datum_t key) | |||
End of changes. 8 change blocks. | ||||
18 lines changed or deleted | 16 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |