diff options
| author | Christian Grothoff <christian@grothoff.org> | 2022-09-27 16:10:00 +0200 | 
|---|---|---|
| committer | Christian Grothoff <christian@grothoff.org> | 2022-09-27 16:10:00 +0200 | 
| commit | 2635f2e0b8246a08e3456ced3068fe161b07a87b (patch) | |
| tree | cd99a0e65554d45de27cf5b12ab912ca032c54f1 /src/include | |
| parent | 33680940fe7df8261880fa1d7f164c8b02a33aed (diff) | |
implement exchange_api_reserves_attest.c
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/taler_crypto_lib.h | 64 | ||||
| -rw-r--r-- | src/include/taler_exchange_service.h | 24 | 
2 files changed, 86 insertions, 2 deletions
| diff --git a/src/include/taler_crypto_lib.h b/src/include/taler_crypto_lib.h index 4ad9eed0..b5ae2083 100644 --- a/src/include/taler_crypto_lib.h +++ b/src/include/taler_crypto_lib.h @@ -3201,7 +3201,13 @@ TALER_wallet_account_setup_verify (  /** - * FIXME. + * Sign request to the exchange to confirm certain + * @a details about the owner of a reserve. + * + * @param request_timestamp when was the request created + * @param details which attributes are requested + * @param reserve_priv private key of the reserve + * @param[out] reserve_sig where to store the signature   */  void  TALER_wallet_reserve_attest_request_sign ( @@ -3212,7 +3218,14 @@ TALER_wallet_reserve_attest_request_sign (  /** - * FIXME. + * Verify request to the exchange to confirm certain + * @a details about the owner of a reserve. + * + * @param request_timestamp when was the request created + * @param details which attributes are requested + * @param reserve_priv private key of the reserve + * @param reserve_sig where to store the signature + * @return #GNUNET_OK if the signature is valid   */  enum GNUNET_GenericReturnValue  TALER_wallet_reserve_attest_request_verify ( @@ -4251,6 +4264,53 @@ TALER_exchange_online_reserve_closed_verify (  /** + * Create signature by exchange affirming that a reserve + * has had certain attributes verified via KYC. + * + * @param scb function to call to create the signature + * @param attest_timestamp our time + * @param expiration_time when does the KYC data expire + * @param reserve_pub for which reserve are attributes attested + * @param attributes JSON object with attributes being attested to + * @param[out] pub where to write the public key + * @param[out] sig where to write the signature + * @return #TALER_EC_NONE on success + */ +enum TALER_ErrorCode +TALER_exchange_online_reserve_attest_details_sign ( +  TALER_ExchangeSignCallback scb, +  struct GNUNET_TIME_Timestamp attest_timestamp, +  struct GNUNET_TIME_Timestamp expiration_time, +  const struct TALER_ReservePublicKeyP *reserve_pub, +  const json_t *attributes, +  struct TALER_ExchangePublicKeyP *pub, +  struct TALER_ExchangeSignatureP *sig); + + +/** + * Verify signature by exchange affirming that a reserve + * has had certain attributes verified via KYC. + * + * @param scb function to call to create the signature + * @param attest_timestamp our time + * @param expiration_time when does the KYC data expire + * @param reserve_pub for which reserve are attributes attested + * @param attributes JSON object with attributes being attested to + * @param pub exchange public key + * @param sig exchange signature to verify + * @return #GNUNET_OK if the signature is valid + */ +enum GNUNET_GenericReturnValue +TALER_exchange_online_reserve_attest_details_verify ( +  struct GNUNET_TIME_Timestamp attest_timestamp, +  struct GNUNET_TIME_Timestamp expiration_time, +  const struct TALER_ReservePublicKeyP *reserve_pub, +  const json_t *attributes, +  struct TALER_ExchangePublicKeyP *pub, +  struct TALER_ExchangeSignatureP *sig); + + +/**   * Create signature by exchange affirming that a purse was created.   *   * @param scb function to call to create the signature diff --git a/src/include/taler_exchange_service.h b/src/include/taler_exchange_service.h index 7949dbbf..2abd6b2a 100644 --- a/src/include/taler_exchange_service.h +++ b/src/include/taler_exchange_service.h @@ -5451,6 +5451,30 @@ struct TALER_EXCHANGE_ReservePostAttestResult       */      struct      { +      /** +       * Time when the exchange made the signature. +       */ +      struct GNUNET_TIME_Timestamp exchange_time; + +      /** +       * Current expiration time of the reserve. +       */ +      struct GNUNET_TIME_Timestamp expiration_time; + +      /** +       * Signature by the exchange affirming the attributes. +       */ +      struct TALER_ExchangeSignatureP exchange_sig; + +      /** +       * Online signing key used by the exchange. +       */ +      struct TALER_ExchangePublicKeyP exchange_pub; + +      /** +       * Attributes being confirmed by the exchange. +       */ +      const json_t *attributes;      } ok; | 
