gnunet-svn
[Top][All Lists]
Advanced

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

[taler-donau] branch master updated: fix keys hashmap


From: gnunet
Subject: [taler-donau] branch master updated: fix keys hashmap
Date: Fri, 29 Mar 2024 16:37:32 +0100

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

johannes-casaburi pushed a commit to branch master
in repository donau.

The following commit(s) were added to refs/heads/master by this push:
     new 22a490d  fix keys hashmap
22a490d is described below

commit 22a490d729b470c7f30236f80617b9103c656028
Author: Casaburi Johannes <johannes.casaburi@students.bfh.ch>
AuthorDate: Fri Mar 29 16:36:14 2024 +0100

    fix keys hashmap
---
 contrib/gana                 |  2 +-
 src/donau/donau-httpd_keys.c | 60 +++++++++++++++----------------
 src/donau/donau-httpd_keys.h | 86 +++-----------------------------------------
 3 files changed, 34 insertions(+), 114 deletions(-)

diff --git a/contrib/gana b/contrib/gana
index d505fec..ffd02aa 160000
--- a/contrib/gana
+++ b/contrib/gana
@@ -1 +1 @@
-Subproject commit d505fecdf8f1339f4115f10f1ae236da7cfea0ef
+Subproject commit ffd02aa14f5c245b4d2454b2abef9ef43520a5b0
diff --git a/src/donau/donau-httpd_keys.c b/src/donau/donau-httpd_keys.c
index ad9c4ba..4a8275b 100644
--- a/src/donau/donau-httpd_keys.c
+++ b/src/donau/donau-httpd_keys.c
@@ -251,11 +251,6 @@ struct HelperState
    */
   struct TALER_CRYPTO_CsDenominationHelper *csdh;
 
-  /**
-   * Map from H(donation_unit_pub) to `struct DH_DonationUnitKey` entries.
-   */
-  struct GNUNET_CONTAINER_MultiHashMap *donation_unit;
-
   /**
    * Map from H(rsa_pub) to `struct DH_DonationUnitKey` entries.
    */
@@ -1045,7 +1040,8 @@ helper_rsa_cb (
   const struct TALER_SecurityModulePublicKeyP *sm_pub,
   const struct TALER_SecurityModuleSignatureP *sm_sig)
 {
-  struct HelperState *hs = cls;
+  struct DH_KeyStateHandle *ksh = cls;
+  struct HelperState *hs = ksh->helpers;
   struct DH_DonationUnitKey *hd;
   struct TALER_Amount value;
   enum GNUNET_DB_QueryStatus qs;
@@ -1071,12 +1067,13 @@ helper_rsa_cb (
                                                       false));
   hd = GNUNET_CONTAINER_multihashmap_get (hs->rsa_keys,
                                           &h_rsa->hash);
-  // if (NULL != hd)
-  // {
-  //   /* should be just an update (revocation!), so update existing entry */
-  //   hd->validity_duration = validity_duration; hd->lost = false;
-  //   return;
-  // }
+  if (NULL != hd)
+  {
+    /* should be just an update (revocation!), so update existing entry */
+    // hd->validity_duration = validity_duration;
+    hd->lost = false;
+    return;
+  }
   GNUNET_assert (NULL != sm_pub);
   check_donation_unit_rsa_sm_pub (sm_pub);
   hd = GNUNET_new (struct DH_DonationUnitKey);
@@ -1107,7 +1104,7 @@ helper_rsa_cb (
   GNUNET_assert (
     GNUNET_OK ==
     GNUNET_CONTAINER_multihashmap_put (
-      hs->donation_unit,
+      ksh->donation_unit_map,
       &hd->h_donation_unit_pub.hash,
       hd,
       GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY));
@@ -1149,7 +1146,8 @@ helper_cs_cb (
   const struct TALER_SecurityModulePublicKeyP *sm_pub,
   const struct TALER_SecurityModuleSignatureP *sm_sig)
 {
-  struct HelperState *hs = cls;
+  struct DH_KeyStateHandle *ksh = cls;
+  struct HelperState *hs = ksh->helpers;
   struct DH_DonationUnitKey *hd;
   struct TALER_Amount value;
   enum GNUNET_DB_QueryStatus qs;
@@ -1212,7 +1210,7 @@ helper_cs_cb (
   GNUNET_assert (
     GNUNET_OK ==
     GNUNET_CONTAINER_multihashmap_put (
-      hs->donation_unit,
+      ksh->donation_unit_map,
       &hd->h_donation_unit_pub.hash,
       hd,
       GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY));
@@ -1252,7 +1250,8 @@ helper_esign_cb (
   const struct TALER_SecurityModulePublicKeyP *sm_pub,
   const struct TALER_SecurityModuleSignatureP *sm_sig)
 {
-  struct HelperState *hs = cls;
+  struct DH_KeyStateHandle *ksh = cls;
+  struct HelperState *hs = ksh->helpers;
   struct SigningKey *hsk;
   struct GNUNET_PeerIdentity pid;
   /* need to "cast" because secmod works with TALER_ExchangePublicKeyP */
@@ -1306,7 +1305,7 @@ helper_esign_cb (
   }
   if (qs < 0)
   {
-    // ...
+    // FIXME
   }
   GNUNET_assert (
     GNUNET_OK ==
@@ -1327,11 +1326,10 @@ helper_esign_cb (
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-setup_key_helpers (struct HelperState *hs)
+setup_key_helpers (struct DH_KeyStateHandle *ksh)
 {
-  hs->donation_unit
-    = GNUNET_CONTAINER_multihashmap_create (1024,
-                                            GNUNET_YES);
+  struct HelperState *hs = ksh->helpers;
+
   hs->rsa_keys
     = GNUNET_CONTAINER_multihashmap_create (1024,
                                             GNUNET_YES);
@@ -1344,7 +1342,7 @@ setup_key_helpers (struct HelperState *hs)
   hs->rsadh = TALER_CRYPTO_helper_rsa_connect (DH_cfg,
                                                "donau",
                                                &helper_rsa_cb,
-                                               hs);
+                                               ksh);
   if (NULL == hs->rsadh)
   {
     destroy_key_helpers (hs);
@@ -1353,7 +1351,7 @@ setup_key_helpers (struct HelperState *hs)
   hs->csdh = TALER_CRYPTO_helper_cs_connect (DH_cfg,
                                              "donau",
                                              &helper_cs_cb,
-                                             hs);
+                                             ksh);
   if (NULL == hs->csdh)
   {
     destroy_key_helpers (hs);
@@ -1362,7 +1360,7 @@ setup_key_helpers (struct HelperState *hs)
   hs->esh = TALER_CRYPTO_helper_esign_connect (DH_cfg,
                                                "donau",
                                                &helper_esign_cb,
-                                               hs);
+                                               ksh);
   if (NULL == hs->esh)
   {
     destroy_key_helpers (hs);
@@ -1486,10 +1484,15 @@ build_key_state (struct HelperState *hs)
   ksh->reload_time = GNUNET_TIME_timestamp_get ();
   /* We must use the key_generation from when we STARTED the process! */
   ksh->key_generation = key_generation;
+  ksh->donation_unit_map = GNUNET_CONTAINER_multihashmap_create (1024,
+                                                                 true);
+  ksh->signkey_map = GNUNET_CONTAINER_multipeermap_create (32,
+                                                           false /* MUST be 
false! */
+                                                           );
   if (NULL == hs)
   {
     ksh->helpers = GNUNET_new (struct HelperState);
-    if (GNUNET_OK != setup_key_helpers (ksh->helpers))
+    if (GNUNET_OK != setup_key_helpers (ksh))
     {
       GNUNET_free (ksh->helpers);
       GNUNET_assert (NULL == ksh->keys_reply);
@@ -1501,11 +1504,6 @@ build_key_state (struct HelperState *hs)
   {
     ksh->helpers = hs;
   }
-  ksh->donation_unit_map = GNUNET_CONTAINER_multihashmap_create (1024,
-                                                                 true);
-  ksh->signkey_map = GNUNET_CONTAINER_multipeermap_create (32,
-                                                           false /* MUST be 
false! */
-                                                           );
 
   /* NOTE: fetches master-signed signkeys, but ALSO those that were revoked! */
   GNUNET_break (GNUNET_OK ==
@@ -1708,7 +1706,7 @@ DH_handler_keys (struct DH_RequestContext *rc,
     GNUNET_assert (NULL != kbc.donation_units);
     GNUNET_assert (NULL != kbc.signkeys);
     GNUNET_assert (NULL != DH_currency);
-    GNUNET_CONTAINER_multihashmap_iterate (ksh->helpers->donation_unit,
+    GNUNET_CONTAINER_multihashmap_iterate (ksh->donation_unit_map,
                                            &insert_donation_unit_cb,
                                            &kbc);
     GNUNET_CONTAINER_multipeermap_iterate (ksh->helpers->esign_keys,
diff --git a/src/donau/donau-httpd_keys.h b/src/donau/donau-httpd_keys.h
index 09de95e..e1bacc8 100644
--- a/src/donau/donau-httpd_keys.h
+++ b/src/donau/donau-httpd_keys.h
@@ -59,90 +59,12 @@ struct DH_DonationUnitKey
    */
   struct TALER_Amount value;
 
-};
-
-/**
- * Information needed to create a blind signature.
- */
-// struct DH_CoinSignData
-// {
-/**
-   * Hash of key to sign with.
-   */
-// const struct TALER_DenominationHashP *h_denom_pub;
-
-/**
-   * Blinded planchet to sign over.
+  /**
+   * Did we lose the private keys?
    */
-// const struct TALER_BlindedPlanchet *bp;
-// };
-
-
-// /**
-//  * Request to sign @a csds.
-//  *
-//  * @param csds array with data to blindly sign (and keys to sign with)
-//  * @param csds_length length of @a csds array
-//  * @param for_melt true if this is for a melt operation
-//  * @param[out] bss array set to the blind signature on success; must be of 
length @a csds_length
-//  * @return #TALER_EC_NONE on success
-//  */
-// enum TALER_ErrorCode
-// TEH_keys_denomination_batch_sign (
-//   unsigned int csds_length,
-//   const struct TEH_CoinSignData csds[static csds_length],
-//   bool for_melt,
-//   struct TALER_BlindedDenominationSignature bss[static csds_length]);
-
-
-// /**
-//  * Information needed to derive the CS r_pub.
-//  */
-// struct TEH_CsDeriveData
-// {
-//   /**
-//    * Hash of key to sign with.
-//    */
-//   const struct TALER_DenominationHashP *h_denom_pub;
-
-//   /**
-//    * Nonce to use.
-//    */
-//   const struct GNUNET_CRYPTO_CsSessionNonce *nonce;
-// };
-
-
-// /**
-//  * Request to derive CS @a r_pub using the denomination and nonce from @a 
cdd.
-//  *
-//  * @param cdd data to compute @a r_pub from
-//  * @param for_melt true if this is for a melt operation
-//  * @param[out] r_pub where to write the result
-//  * @return #TALER_EC_NONE on success
-//  */
-// enum TALER_ErrorCode
-// TEH_keys_denomination_cs_r_pub (
-//   const struct TEH_CsDeriveData *cdd,
-//   bool for_melt,
-//   struct GNUNET_CRYPTO_CSPublicRPairP *r_pub);
-
-// /**
-//  * Request to derive a bunch of CS @a r_pubs using the
-//  * denominations and nonces from @a cdds.
-//  *
-//  * @param cdds array to compute @a r_pubs from
-//  * @param cdds_length length of the @a cdds array
-//  * @param for_melt true if this is for a melt operation
-//  * @param[out] r_pubs array where to write the result; must be of length @a 
cdds_length
-//  * @return #TALER_EC_NONE on success
-//  */
-// enum TALER_ErrorCode
-// TEH_keys_denomination_cs_batch_r_pub (
-//   unsigned int cdds_length,
-//   const struct TEH_CsDeriveData cdds[static cdds_length],
-//   bool for_melt,
-//   struct GNUNET_CRYPTO_CSPublicRPairP r_pubs[static cdds_length]);
+  bool lost;
 
+};
 
 /**
  * Fully clean up keys subsystem.

-- 
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]