[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-exchange] 06/130: add missing file
From: |
gnunet |
Subject: |
[taler-exchange] 06/130: add missing file |
Date: |
Wed, 17 Nov 2021 12:24:14 +0100 |
This is an automated email from the git hooks/post-receive script.
grothoff pushed a commit to branch master
in repository exchange.
commit 43223899e7bada7f29ced41457211db5e88aea2e
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Fri Oct 22 23:39:19 2021 +0200
add missing file
---
src/util/denom.c | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 115 insertions(+)
diff --git a/src/util/denom.c b/src/util/denom.c
new file mode 100644
index 00000000..32c3469f
--- /dev/null
+++ b/src/util/denom.c
@@ -0,0 +1,115 @@
+/*
+ This file is part of TALER
+ Copyright (C) 2021 Taler Systems SA
+
+ TALER is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ TALER is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+*/
+/**
+ * @file denom.c
+ * @brief denomination utility functions
+ * @author Christian Grothoff
+ */
+#include "platform.h"
+#include "taler_util.h"
+
+
+void
+TALER_denom_pub_hash (const struct TALER_DenominationPublicKey *denom_pub,
+ struct TALER_DenominationHash *denom_hash)
+{
+ uint32_t opt[2] = {
+ htonl (denom_pub->age_mask),
+ htonl ((uint32_t) denom_pub->cipher)
+ };
+
+ struct GNUNET_HashContext *hc;
+ hc = GNUNET_CRYPTO_hash_context_start ();
+ GNUNET_CRYPTO_hash_context_read (hc,
+ opt,
+ sizeof (opt));
+ switch (denom_pub->cipher)
+ {
+ case TALER_DENOMINATION_RSA:
+ {
+ void *buf;
+ size_t blen;
+
+ blen = GNUNET_CRYPTO_rsa_public_key_encode (
+ denom_pub->details.rsa_public_key,
+ &buf);
+ GNUNET_CRYPTO_hash_context_read (hc,
+ buf,
+ blen);
+ GNUNET_free (buf);
+ }
+ break;
+ // TODO: add case for Clause-Schnorr
+ default:
+ GNUNET_assert (0);
+ }
+ GNUNET_CRYPTO_hash_context_finish (hc,
+ &denom_hash->hash);
+}
+
+
+void
+TALER_denom_priv_to_pub (const struct TALER_DenominationPrivateKey *denom_priv,
+ uint32_t age_mask,
+ struct TALER_DenominationPublicKey *denom_pub)
+{
+ switch (denom_priv->cipher)
+ {
+ case TALER_DENOMINATION_RSA:
+ denom_pub->cipher = TALER_DENOMINATION_RSA;
+ denom_pub->age_mask = age_mask;
+ denom_pub->details.rsa_public_key
+ = GNUNET_CRYPTO_rsa_private_key_get_public (
+ denom_priv->details.rsa_private_key);
+ return;
+ // TODO: add case for Clause-Schnorr
+ default:
+ GNUNET_assert (0);
+ }
+}
+
+
+enum GNUNET_GenericReturnValue
+TALER_denom_pub_verify (const struct TALER_DenominationPublicKey *denom_pub,
+ const struct TALER_DenominationSignature *denom_sig,
+ const struct TALER_CoinPubHash *c_hash)
+{
+ if (denom_pub->cipher != denom_sig->cipher)
+ {
+ GNUNET_break (0);
+ return GNUNET_SYSERR;
+ }
+ switch (denom_pub->cipher)
+ {
+ case TALER_DENOMINATION_RSA:
+ if (GNUNET_OK !=
+ GNUNET_CRYPTO_rsa_verify (&c_hash->hash,
+ denom_sig->details.rsa_signature,
+ denom_pub->details.rsa_public_key))
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ "Coin signature is invalid\n");
+ return GNUNET_NO;
+ }
+ return GNUNET_YES;
+ // TODO: add case for Clause-Schnorr
+ default:
+ GNUNET_assert (0);
+ }
+}
+
+
+/* end of denom.c */
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-exchange] branch master updated (07cb6ac2 -> 0f5fc95e), gnunet, 2021/11/17
- [taler-exchange] 03/130: start to work on transformation, gnunet, 2021/11/17
- [taler-exchange] 02/130: brutally fixing types in src/include/, creating plenty of FTBFS issues, gnunet, 2021/11/17
- [taler-exchange] 12/130: -more changes towards fixing FTBFS, gnunet, 2021/11/17
- [taler-exchange] 11/130: -more changes towards fixing FTBFS, gnunet, 2021/11/17
- [taler-exchange] 05/130: fix remaining libtalerutil FTBFS issues, gnunet, 2021/11/17
- [taler-exchange] 01/130: database change -- breaks everything, gnunet, 2021/11/17
- [taler-exchange] 10/130: -more changes towards fixing FTBFS, gnunet, 2021/11/17
- [taler-exchange] 06/130: add missing file,
gnunet <=
- [taler-exchange] 04/130: -fixing more FTBFS, gnunet, 2021/11/17
- [taler-exchange] 09/130: work on FTBFS issues..., gnunet, 2021/11/17
- [taler-exchange] 08/130: -resovling more FTBFS issues, gnunet, 2021/11/17
- [taler-exchange] 60/130: consistently distinguish blinded/unblinded denomination sigs, gnunet, 2021/11/17
- [taler-exchange] 20/130: -fix more FTBFS, gnunet, 2021/11/17
- [taler-exchange] 43/130: address most FIXMEs in pg plugin, gnunet, 2021/11/17
- [taler-exchange] 44/130: address most FIXMEs in pg plugin, gnunet, 2021/11/17
- [taler-exchange] 07/130: fix remaining libtalerutil tests FTBFS issues, gnunet, 2021/11/17
- [taler-exchange] 21/130: -work on FTBFS, gnunet, 2021/11/17
- [taler-exchange] 25/130: -work on fTBFS, gnunet, 2021/11/17