diff options
Diffstat (limited to 'lib/auth/dhe_psk.c')
-rw-r--r-- | lib/auth/dhe_psk.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/auth/dhe_psk.c b/lib/auth/dhe_psk.c index 6d66a6bb8b..a98ef9c9ef 100644 --- a/lib/auth/dhe_psk.c +++ b/lib/auth/dhe_psk.c @@ -316,14 +316,13 @@ proc_dhe_psk_client_kx(gnutls_session_t session, uint8_t * data, return GNUTLS_E_ILLEGAL_SRP_USERNAME; } - memcpy(info->username, username.data, username.size); - info->username[username.size] = 0; + _gnutls_copy_psk_username(info, &username); /* Adjust the data */ data += username.size + 2; ret = - _gnutls_psk_pwd_find_entry(session, info->username, &psk_key); + _gnutls_psk_pwd_find_entry(session, info->username, info->username_len, &psk_key); if (ret < 0) return gnutls_assert_val(ret); @@ -383,8 +382,7 @@ proc_ecdhe_psk_client_kx(gnutls_session_t session, uint8_t * data, return GNUTLS_E_ILLEGAL_SRP_USERNAME; } - memcpy(info->username, username.data, username.size); - info->username[username.size] = 0; + _gnutls_copy_psk_username(info, &username); /* Adjust the data */ data += username.size + 2; @@ -392,7 +390,7 @@ proc_ecdhe_psk_client_kx(gnutls_session_t session, uint8_t * data, /* should never fail. It will always return a key even if it is * a random one */ ret = - _gnutls_psk_pwd_find_entry(session, info->username, &psk_key); + _gnutls_psk_pwd_find_entry(session, info->username, info->username_len, &psk_key); if (ret < 0) return gnutls_assert_val(ret); |