LCOV - code coverage report
Current view: top level - util - kyc_signatures.c (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 11 11
Test Date: 2026-01-28 06:10:56 Functions: 100.0 % 2 2

            Line data    Source code
       1              : /*
       2              :   This file is part of TALER
       3              :   Copyright (C) 2024 Taler Systems SA
       4              : 
       5              :   TALER is free software; you can redistribute it and/or modify it under the
       6              :   terms of the GNU General Public License as published by the Free Software
       7              :   Foundation; either version 3, or (at your option) any later version.
       8              : 
       9              :   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
      10              :   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
      11              :   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
      12              : 
      13              :   You should have received a copy of the GNU General Public License along with
      14              :   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
      15              : */
      16              : /**
      17              :  * @file kyc_signatures.c
      18              :  * @brief Utility functions for KYC account holders
      19              :  * @author Christian Grothoff
      20              :  */
      21              : #include "taler/platform.h"
      22              : #include "taler/taler_util.h"
      23              : #include "taler/taler_signatures.h"
      24              : 
      25              : 
      26              : GNUNET_NETWORK_STRUCT_BEGIN
      27              : 
      28              : /**
      29              :  * @brief Format used to generate the signature on a
      30              :  * KYC authorization.
      31              :  */
      32              : struct TALER_KycQueryPS
      33              : {
      34              :   /**
      35              :    * Purpose must be #TALER_SIGNATURE_KYC_AUTH.
      36              :    * Used for an EdDSA signature with the `union TALER_AccountPublicKeyP`.
      37              :    */
      38              :   struct GNUNET_CRYPTO_SignaturePurpose purpose;
      39              : 
      40              : };
      41              : 
      42              : GNUNET_NETWORK_STRUCT_END
      43              : 
      44              : 
      45              : void
      46           14 : TALER_account_kyc_auth_sign (
      47              :   const union TALER_AccountPrivateKeyP *account_priv,
      48              :   union TALER_AccountSignatureP *account_sig)
      49              : {
      50           14 :   struct TALER_KycQueryPS aq = {
      51           14 :     .purpose.purpose = htonl (TALER_SIGNATURE_KYC_AUTH),
      52           14 :     .purpose.size = htonl (sizeof (aq))
      53              :   };
      54              : 
      55           14 :   GNUNET_CRYPTO_eddsa_sign (
      56              :     &account_priv->reserve_priv.eddsa_priv,
      57              :     &aq,
      58              :     &account_sig->reserve_sig.eddsa_signature);
      59           14 : }
      60              : 
      61              : 
      62              : enum GNUNET_GenericReturnValue
      63           14 : TALER_account_kyc_auth_verify (
      64              :   const union TALER_AccountPublicKeyP *account_pub,
      65              :   const union TALER_AccountSignatureP *account_sig)
      66              : {
      67           14 :   struct TALER_KycQueryPS aq = {
      68           14 :     .purpose.purpose = htonl (TALER_SIGNATURE_KYC_AUTH),
      69           14 :     .purpose.size = htonl (sizeof (aq))
      70              :   };
      71              : 
      72           14 :   return GNUNET_CRYPTO_eddsa_verify (
      73              :     TALER_SIGNATURE_KYC_AUTH,
      74              :     &aq,
      75              :     &account_sig->reserve_sig.eddsa_signature,
      76              :     &account_pub->reserve_pub.eddsa_pub);
      77              : }
      78              : 
      79              : 
      80              : /* end of kyc_signatures.c */
        

Generated by: LCOV version 2.0-1