2025-02-20 06:23:40 -05:00

46 lines
857 B
C

/* LibTomCrypt, modular cryptographic library -- Tom St Denis */
/* SPDX-License-Identifier: Unlicense */
#include "tomcrypt_private.h"
void pka_key_destroy(ltc_pka_key **key)
{
LTC_ARGCHKVD(key != NULL);
if (!*key)
return;
pka_key_free(*key);
zeromem(*key, sizeof(**key));
XFREE(*key);
*key = NULL;
}
void pka_key_free(ltc_pka_key *key)
{
LTC_ARGCHKVD(key != NULL);
switch (key->id) {
case LTC_PKA_DH:
#if defined(LTC_MDH)
dh_free(&key->u.dh);
#endif
break;
case LTC_PKA_DSA:
#if defined(LTC_MDSA)
dsa_free(&key->u.dsa);
#endif
break;
case LTC_PKA_RSA:
#if defined(LTC_MRSA)
rsa_free(&key->u.rsa);
#endif
break;
case LTC_PKA_EC:
#if defined(LTC_MECC)
ecc_free(&key->u.ecc);
#endif
break;
default:
break;
}
}