summaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-11-01 23:49:13 +0100
committerChristian Grothoff <christian@grothoff.org>2021-11-01 23:49:13 +0100
commit1408e1587b57903d817e93cdafc2de3156af9e43 (patch)
treecc5b64a89e5dff9a64d8641733c9c4874fd5b5e4 /src/util
parent9358b886f1249333a5049dab2b4e17fadc0213e0 (diff)
downloadexchange-1408e1587b57903d817e93cdafc2de3156af9e43.tar.gz
exchange-1408e1587b57903d817e93cdafc2de3156af9e43.tar.bz2
exchange-1408e1587b57903d817e93cdafc2de3156af9e43.zip
introduce invalid key type
Diffstat (limited to 'src/util')
-rw-r--r--src/util/denom.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/util/denom.c b/src/util/denom.c
index e623a6354..15ba1c1ae 100644
--- a/src/util/denom.c
+++ b/src/util/denom.c
@@ -94,6 +94,9 @@ TALER_denom_pub_verify (const struct TALER_DenominationPublicKey *denom_pub,
}
switch (denom_pub->cipher)
{
+ case TALER_DENOMINATION_INVALID:
+ GNUNET_break (0);
+ return GNUNET_NO;
case TALER_DENOMINATION_RSA:
if (GNUNET_OK !=
GNUNET_CRYPTO_rsa_verify (&c_hash->hash,
@@ -117,12 +120,15 @@ TALER_denom_pub_free (struct TALER_DenominationPublicKey *denom_pub)
{
switch (denom_pub->cipher)
{
+ case TALER_DENOMINATION_INVALID:
+ return;
case TALER_DENOMINATION_RSA:
if (NULL != denom_pub->details.rsa_public_key)
{
GNUNET_CRYPTO_rsa_public_key_free (denom_pub->details.rsa_public_key);
denom_pub->details.rsa_public_key = NULL;
}
+ denom_pub->cipher = TALER_DENOMINATION_INVALID;
return;
// TODO: add case for Clause-Schnorr
default:
@@ -136,12 +142,15 @@ TALER_denom_priv_free (struct TALER_DenominationPrivateKey *denom_priv)
{
switch (denom_priv->cipher)
{
+ case TALER_DENOMINATION_INVALID:
+ return;
case TALER_DENOMINATION_RSA:
if (NULL != denom_priv->details.rsa_private_key)
{
GNUNET_CRYPTO_rsa_private_key_free (denom_priv->details.rsa_private_key);
denom_priv->details.rsa_private_key = NULL;
}
+ denom_priv->cipher = TALER_DENOMINATION_INVALID;
return;
// TODO: add case for Clause-Schnorr
default:
@@ -155,12 +164,15 @@ TALER_denom_sig_free (struct TALER_DenominationSignature *denom_sig)
{
switch (denom_sig->cipher)
{
+ case TALER_DENOMINATION_INVALID:
+ return;
case TALER_DENOMINATION_RSA:
if (NULL != denom_sig->details.rsa_signature)
{
GNUNET_CRYPTO_rsa_signature_free (denom_sig->details.rsa_signature);
denom_sig->details.rsa_signature = NULL;
}
+ denom_sig->cipher = TALER_DENOMINATION_INVALID;
return;
// TODO: add case for Clause-Schnorr
default:
@@ -182,6 +194,7 @@ TALER_blinded_denom_sig_free (
denom_sig->details.blinded_rsa_signature);
denom_sig->details.blinded_rsa_signature = NULL;
}
+ denom_sig->cipher = TALER_DENOMINATION_INVALID;
return;
// TODO: add case for Clause-Schnorr
default:
@@ -223,6 +236,8 @@ TALER_denom_sig_deep_copy (struct TALER_DenominationSignature *denom_dst,
*denom_dst = *denom_src; /* shallow copy */
switch (denom_src->cipher)
{
+ case TALER_DENOMINATION_INVALID:
+ return;
case TALER_DENOMINATION_RSA:
denom_dst->details.rsa_signature
= GNUNET_CRYPTO_rsa_signature_dup (
@@ -243,6 +258,8 @@ TALER_blinded_denom_sig_deep_copy (
*denom_dst = *denom_src; /* shallow copy */
switch (denom_src->cipher)
{
+ case TALER_DENOMINATION_INVALID:
+ return;
case TALER_DENOMINATION_RSA:
denom_dst->details.blinded_rsa_signature
= GNUNET_CRYPTO_rsa_signature_dup (
@@ -265,6 +282,8 @@ TALER_denom_pub_cmp (const struct TALER_DenominationPublicKey *denom1,
return (denom1->age_mask > denom2->age_mask) ? 1 : -1;
switch (denom1->cipher)
{
+ case TALER_DENOMINATION_INVALID:
+ return 0;
case TALER_DENOMINATION_RSA:
return GNUNET_CRYPTO_rsa_public_key_cmp (denom1->details.rsa_public_key,
denom2->details.rsa_public_key);
@@ -284,6 +303,8 @@ TALER_denom_sig_cmp (const struct TALER_DenominationSignature *sig1,
return (sig1->cipher > sig2->cipher) ? 1 : -1;
switch (sig1->cipher)
{
+ case TALER_DENOMINATION_INVALID:
+ return 0;
case TALER_DENOMINATION_RSA:
return GNUNET_CRYPTO_rsa_signature_cmp (sig1->details.rsa_signature,
sig2->details.rsa_signature);
@@ -304,6 +325,8 @@ TALER_blinded_denom_sig_cmp (
return (sig1->cipher > sig2->cipher) ? 1 : -1;
switch (sig1->cipher)
{
+ case TALER_DENOMINATION_INVALID:
+ return 0;
case TALER_DENOMINATION_RSA:
return GNUNET_CRYPTO_rsa_signature_cmp (sig1->details.blinded_rsa_signature,
sig2->details.blinded_rsa_signature);