66
66
gen_psk_client_kx (gnutls_session_t session, opaque ** data)
69
69
opaque *tmp_data = NULL;
70
70
int data_size, tmp_data_size;
71
71
gnutls_psk_client_credentials_t cred;
72
gnutls_datum_t username, key;
73
74
cred = (gnutls_psk_client_credentials_t)
74
75
_gnutls_get_cred (session->key, GNUTLS_CRD_PSK, NULL);
79
return GNUTLS_E_INSUFFICIENT_CREDENTIALS;
82
if (cred->username.data == NULL || cred->key.data == NULL)
85
return GNUTLS_E_INSUFFICIENT_CREDENTIALS;
78
return gnutls_assert_val(GNUTLS_E_INSUFFICIENT_CREDENTIALS);
81
ret = _gnutls_find_psk_key( session, cred, &username, &key, &free);
83
return gnutls_assert_val(ret);
88
85
/* The PSK key is set in there */
89
ret = _gnutls_gen_dh_common_client_kx (session, &tmp_data);
86
ret = _gnutls_gen_dh_common_client_kx_int (session, &tmp_data, &key);
96
93
tmp_data_size = ret;
97
data_size = tmp_data_size + cred->username.size + 2;
94
data_size = tmp_data_size + username.size + 2;
99
96
(*data) = gnutls_malloc (data_size);
100
97
if ((*data) == NULL)
103
100
ret = GNUTLS_E_MEMORY_ERROR;
107
_gnutls_write_datum16 (*data, cred->username);
108
memcpy (&(*data)[cred->username.size + 2], tmp_data, tmp_data_size);
104
_gnutls_write_datum16 (*data, username);
105
memcpy (&(*data)[username.size + 2], tmp_data, tmp_data_size);
113
110
gnutls_free (tmp_data);
113
_gnutls_free_datum(&username);
114
_gnutls_free_datum(&key);
148
151
_gnutls_auth_info_set (session, GNUTLS_CRD_PSK,
149
sizeof (psk_auth_info_st), 1)) < 0)
152
sizeof (psk_auth_info_st), 1)) < 0)
151
154
gnutls_assert ();
190
193
_gnutls_auth_info_set (session, GNUTLS_CRD_PSK,
191
sizeof (psk_auth_info_st), 1)) < 0)
194
sizeof (psk_auth_info_st), 1)) < 0)
193
196
gnutls_assert ();
245
248
/* set auth_info */
247
250
_gnutls_auth_info_set (session, GNUTLS_CRD_PSK,
248
sizeof (psk_auth_info_st), 1)) < 0)
251
sizeof (psk_auth_info_st), 1)) < 0)
250
253
gnutls_assert ();