Skip to content

Commit 64bd0c6

Browse files
committed
introduce pka_key_free()
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
1 parent 8fa3795 commit 64bd0c6

File tree

3 files changed

+39
-34
lines changed

3 files changed

+39
-34
lines changed

src/headers/tomcrypt_pk.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -524,6 +524,7 @@ typedef struct {
524524
enum ltc_pka_id id;
525525
} ltc_pka_key;
526526

527+
void pka_key_free(ltc_pka_key *key);
527528

528529
#ifdef LTC_DER
529530
/* DER handling */

src/pk/pka_key_free.c

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/* LibTomCrypt, modular cryptographic library -- Tom St Denis */
2+
/* SPDX-License-Identifier: Unlicense */
3+
#include "tomcrypt_private.h"
4+
5+
void pka_key_free(ltc_pka_key *key)
6+
{
7+
LTC_ARGCHKVD(key != NULL);
8+
switch (key->id) {
9+
case LTC_PKA_DH:
10+
#if defined(LTC_MDH)
11+
dh_free(&key->u.dh);
12+
#endif
13+
break;
14+
case LTC_PKA_DSA:
15+
#if defined(LTC_MDSA)
16+
dsa_free(&key->u.dsa);
17+
#endif
18+
break;
19+
case LTC_PKA_RSA:
20+
#if defined(LTC_MRSA)
21+
rsa_free(&key->u.rsa);
22+
#endif
23+
break;
24+
case LTC_PKA_EC:
25+
#if defined(LTC_MECC)
26+
ecc_free(&key->u.ecc);
27+
#endif
28+
break;
29+
default:
30+
break;
31+
}
32+
}

tests/pem_test.c

Lines changed: 6 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -95,34 +95,6 @@ static int s_pem_decode_f(FILE *f, void *key)
9595
return s_key_cmp(key);
9696
}
9797

98-
static void s_pem_free_key(ltc_pka_key *key)
99-
{
100-
switch (key->id) {
101-
case LTC_PKA_DH:
102-
#if defined(LTC_MDH)
103-
dh_free(&key->u.dh);
104-
#endif
105-
break;
106-
case LTC_PKA_DSA:
107-
#if defined(LTC_MDSA)
108-
dsa_free(&key->u.dsa);
109-
#endif
110-
break;
111-
case LTC_PKA_RSA:
112-
#if defined(LTC_MRSA)
113-
rsa_free(&key->u.rsa);
114-
#endif
115-
break;
116-
case LTC_PKA_EC:
117-
#if defined(LTC_MECC)
118-
ecc_free(&key->u.ecc);
119-
#endif
120-
break;
121-
default:
122-
break;
123-
}
124-
}
125-
12698
int pem_test(void)
12799
{
128100
ltc_pka_key key;
@@ -140,13 +112,13 @@ int pem_test(void)
140112
#endif
141113

142114

143-
DO(test_process_dir("tests/pem", &key, s_pem_decode, NULL, (dir_cleanup_cb)s_pem_free_key, "pem_test"));
144-
DO(test_process_dir("tests/pem", &key, NULL, s_pem_decode_f, (dir_cleanup_cb)s_pem_free_key, "pem_test_filehandle"));
145-
DO(test_process_dir("tests/pem-ecc-pkcs8", &key, s_pem_decode, NULL, (dir_cleanup_cb)s_pem_free_key, "pem_test+ecc"));
146-
DO(test_process_dir("tests/pem-ecc-pkcs8", &key, NULL, s_pem_decode_f, (dir_cleanup_cb)s_pem_free_key, "pem_test_filehandle+ecc"));
115+
DO(test_process_dir("tests/pem", &key, s_pem_decode, NULL, (dir_cleanup_cb)pka_key_free, "pem_test"));
116+
DO(test_process_dir("tests/pem", &key, NULL, s_pem_decode_f, (dir_cleanup_cb)pka_key_free, "pem_test_filehandle"));
117+
DO(test_process_dir("tests/pem-ecc-pkcs8", &key, s_pem_decode, NULL, (dir_cleanup_cb)pka_key_free, "pem_test+ecc"));
118+
DO(test_process_dir("tests/pem-ecc-pkcs8", &key, NULL, s_pem_decode_f, (dir_cleanup_cb)pka_key_free, "pem_test_filehandle+ecc"));
147119
#ifdef LTC_SSH
148-
DO(test_process_dir("tests/ssh", &key, s_pem_decode_ssh, NULL, (dir_cleanup_cb)s_pem_free_key, "pem_test+ssh"));
149-
DO(test_process_dir("tests/ssh", &key, NULL, s_pem_decode_ssh_f, (dir_cleanup_cb)s_pem_free_key, "pem_test_filehandle+ssh"));
120+
DO(test_process_dir("tests/ssh", &key, s_pem_decode_ssh, NULL, (dir_cleanup_cb)pka_key_free, "pem_test+ssh"));
121+
DO(test_process_dir("tests/ssh", &key, NULL, s_pem_decode_ssh_f, (dir_cleanup_cb)pka_key_free, "pem_test_filehandle+ssh"));
150122
#endif
151123

152124
#if defined(LTC_MDSA)

0 commit comments

Comments
 (0)