From 95bd24916ed7baa7a6059c2a788e904bb5166606 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Tue, 21 Feb 2023 12:57:33 +0100 Subject: skeleton logic for POS confirmation --- src/include/taler_crypto_lib.h | 24 ++++++++++++++++++++++++ src/util/Makefile.am | 1 + src/util/crypto_confirmation.c | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 src/util/crypto_confirmation.c 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 @@ -572,6 +572,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) @@ -914,6 +928,16 @@ struct TALER_GlobalFeeSetNBOP 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. */ 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 +*/ +/** + * @file util/crypto_confirmation.c + * @brief confirmation computation + * @author Christian Grothoff + */ +#include "platform.h" +#include "taler_util.h" +#include + + +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; +} -- cgit v1.2.3