gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-exchange] 70/130: introduce invalid key type


From: gnunet
Subject: [taler-exchange] 70/130: introduce invalid key type
Date: Wed, 17 Nov 2021 12:25:18 +0100

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository exchange.

commit 1408e1587b57903d817e93cdafc2de3156af9e43
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Mon Nov 1 23:49:13 2021 +0100

    introduce invalid key type
---
 src/exchangedb/exchange-0001.sql |  2 +-
 src/include/taler_crypto_lib.h   |  9 +++++++--
 src/util/denom.c                 | 23 +++++++++++++++++++++++
 3 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/src/exchangedb/exchange-0001.sql b/src/exchangedb/exchange-0001.sql
index 68eb0733..d510af78 100644
--- a/src/exchangedb/exchange-0001.sql
+++ b/src/exchangedb/exchange-0001.sql
@@ -24,7 +24,7 @@ SELECT _v.register_patch('exchange-0001', NULL, NULL);
 CREATE TABLE IF NOT EXISTS denominations
   (denominations_serial BIGSERIAL UNIQUE
   ,denom_pub_hash BYTEA PRIMARY KEY CHECK (LENGTH(denom_pub_hash)=64)
-  ,denom_type INT4 NOT NULL DEFAULT (0)
+  ,denom_type INT4 NOT NULL DEFAULT (1) -- 1 == RSA (for now, remove default 
later!)
   ,age_restrictions INT4 NOT NULL DEFAULT (0)
   ,denom_pub BYTEA NOT NULL
   ,master_sig BYTEA NOT NULL CHECK (LENGTH(master_sig)=64)
diff --git a/src/include/taler_crypto_lib.h b/src/include/taler_crypto_lib.h
index f63b7dca..8871369e 100644
--- a/src/include/taler_crypto_lib.h
+++ b/src/include/taler_crypto_lib.h
@@ -484,15 +484,20 @@ GNUNET_NETWORK_STRUCT_END
 enum TALER_DenominationCipher
 {
 
+  /**
+   * Invalid type of signature.
+   */
+  TALER_DENOMINATION_INVALID = 0,
+
   /**
    * RSA blind signature.
    */
-  TALER_DENOMINATION_RSA = 0,
+  TALER_DENOMINATION_RSA = 1,
 
   /**
    * Clause-Schnorr blind signature.
    */
-  // TALER_DENOMINATION_CS = 1
+  // TALER_DENOMINATION_CS = 2
 };
 
 
diff --git a/src/util/denom.c b/src/util/denom.c
index e623a635..15ba1c1a 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);

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]