summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/include/taler_crypto_lib.h24
-rw-r--r--src/util/Makefile.am1
-rw-r--r--src/util/crypto_confirmation.c39
3 files changed, 64 insertions, 0 deletions
diff --git a/src/include/taler_crypto_lib.h b/src/include/taler_crypto_lib.h
index 20ffaf0cd..1a3b40e4d 100644
--- a/src/include/taler_crypto_lib.h
+++ b/src/include/taler_crypto_lib.h
@@ -573,6 +573,20 @@ enum TALER_AmlDecisionState
/**
+ * Possible algorithms for confirmation code generation.
+ */
+enum TALER_MerchantConfirmationAlgorithm
+{
+
+ /**
+ * No purchase confirmation.
+ */
+ TALER_MCA_NONE = 0
+
+};
+
+
+/**
* @brief Type of blinding keys for Taler.
* must be 32 bytes (DB)
*/
@@ -915,6 +929,16 @@ GNUNET_NETWORK_STRUCT_END
/**
+ * FIXME.
+ */
+char *
+TALER_build_pos_confirmation (const char *pos_key,
+ enum TALER_MerchantConfirmationAlgorithm pos_alg,
+ const struct TALER_Amount *total,
+ struct GNUNET_TIME_Timestamp ts);
+
+
+/**
* Set of the fees applying to a denomination.
*/
struct TALER_DenomFeeSet
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
index 656da7c49..115ea5055 100644
--- a/src/util/Makefile.am
+++ b/src/util/Makefile.am
@@ -81,6 +81,7 @@ libtalerutil_la_SOURCES = \
auditor_signatures.c \
config.c \
crypto.c \
+ crypto_confirmation.c \
crypto_contract.c \
crypto_helper_common.c crypto_helper_common.h \
crypto_helper_rsa.c \
diff --git a/src/util/crypto_confirmation.c b/src/util/crypto_confirmation.c
new file mode 100644
index 000000000..61a73f4c2
--- /dev/null
+++ b/src/util/crypto_confirmation.c
@@ -0,0 +1,39 @@
+/*
+ This file is part of TALER
+ Copyright (C) 2023 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 util/crypto_confirmation.c
+ * @brief confirmation computation
+ * @author Christian Grothoff
+ */
+#include "platform.h"
+#include "taler_util.h"
+#include <gcrypt.h>
+
+
+char *
+TALER_build_pos_confirmation (const char *pos_key,
+ enum TALER_MerchantConfirmationAlgorithm pos_alg,
+ const struct TALER_Amount *total,
+ struct GNUNET_TIME_Timestamp ts)
+{
+ switch (pos_alg)
+ {
+ case TALER_MCA_NONE:
+ return NULL;
+ }
+ GNUNET_break (0); // FIXME: not implemented
+ return NULL;
+}