skeleton logic for POS confirmation

This commit is contained in:
Christian Grothoff 2023-02-21 12:57:33 +01:00
parent b663c8a3c1
commit 95bd24916e
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC
3 changed files with 64 additions and 0 deletions

View File

@ -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.
*/

View File

@ -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 \

View File

@ -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;
}