diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2015-07-21 08:36:14 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2015-07-21 11:47:35 +0200 |
commit | 84b1f2b39f02c5ba241f50807329b53fdac1a903 (patch) | |
tree | ef6918c8953fdf61a07c3395f0a981cce405069b | |
parent | 608fc7e5136eeaa3d0d7f04047a95b0dc095550f (diff) | |
download | gnutls-84b1f2b39f02c5ba241f50807329b53fdac1a903.tar.gz |
psk: use gnutls_hex_decode2 for key decoding
-rw-r--r-- | lib/auth/psk_passwd.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/lib/auth/psk_passwd.c b/lib/auth/psk_passwd.c index f378770bd7..d593c3c453 100644 --- a/lib/auth/psk_passwd.c +++ b/lib/auth/psk_passwd.c @@ -46,7 +46,7 @@ static int pwd_put_values(gnutls_datum_t * psk, char *str) { char *p; int len, ret; - size_t size; + gnutls_datum_t tmp; p = strchr(str, ':'); if (p == NULL) { @@ -66,21 +66,14 @@ static int pwd_put_values(gnutls_datum_t * psk, char *str) if (p[len - 1] == '\n' || p[len - 1] == ' ') len--; - size = psk->size = len / 2; - psk->data = gnutls_malloc(size); - if (psk->data == NULL) { - gnutls_assert(); - return GNUTLS_E_MEMORY_ERROR; - } - - ret = _gnutls_hex2bin(p, len, psk->data, &size); - psk->size = (unsigned int) size; + tmp.data = (void*)p; + tmp.size = len; + ret = gnutls_hex_decode2(&tmp, psk); if (ret < 0) { gnutls_assert(); return ret; } - return 0; } |