]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
openpgp: use gnutls_hex_decode for keyid decoding
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Tue, 21 Jul 2015 06:35:11 +0000 (08:35 +0200)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Tue, 21 Jul 2015 07:10:29 +0000 (09:10 +0200)
lib/openpgp/gnutls_openpgp.c

index 4c30d7487b69d95c3e2467d58b3aada11bd1fc3e..4c867960dc3c327f264ac1df24d04335b50d5322 100644 (file)
@@ -382,14 +382,20 @@ gnutls_certificate_set_openpgp_key_file(gnutls_certificate_credentials_t
 static int get_keyid(gnutls_openpgp_keyid_t keyid, const char *str)
 {
        size_t keyid_size = GNUTLS_OPENPGP_KEYID_SIZE;
+       size_t len = strlen(str);
+       gnutls_datum_t tmp;
+       int ret;
 
-       if (strlen(str) != 16) {
+       if (len != 16) {
                _gnutls_debug_log
                    ("The OpenPGP subkey ID has to be 16 hexadecimal characters.\n");
                return GNUTLS_E_INVALID_REQUEST;
        }
 
-       if (_gnutls_hex2bin(str, strlen(str), keyid, &keyid_size) < 0) {
+       tmp.data = (void*)str;
+       tmp.size = len;
+       ret = gnutls_hex_decode(&tmp, keyid, &keyid_size);
+       if (ret < 0) {
                _gnutls_debug_log("Error converting hex string: %s.\n",
                                  str);
                return GNUTLS_E_INVALID_REQUEST;