From b23f9b78a4220fda5ee8e1c4fc1bbae83dedeb39 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sun, 17 Jan 2021 20:07:55 +0100 Subject: rename taler-helper-crypto-* to taler-exchange-secmod-* --- src/util/taler-exchange-secmod-eddsa.h | 202 +++++++++++++++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 src/util/taler-exchange-secmod-eddsa.h (limited to 'src/util/taler-exchange-secmod-eddsa.h') diff --git a/src/util/taler-exchange-secmod-eddsa.h b/src/util/taler-exchange-secmod-eddsa.h new file mode 100644 index 000000000..39054c414 --- /dev/null +++ b/src/util/taler-exchange-secmod-eddsa.h @@ -0,0 +1,202 @@ +/* + This file is part of TALER + Copyright (C) 2020 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/taler-exchange-secmod-eddsa.h + * @brief IPC messages for the EDDSA crypto helper. + * @author Christian Grothoff + */ +#ifndef TALER_EXCHANGE_SECMOD_EDDSA_H +#define TALER_EXCHANGE_SECMOD_EDDSA_H + +#define TALER_HELPER_EDDSA_MT_PURGE 11 +#define TALER_HELPER_EDDSA_MT_AVAIL 12 + +#define TALER_HELPER_EDDSA_MT_REQ_INIT 14 +#define TALER_HELPER_EDDSA_MT_REQ_SIGN 15 +#define TALER_HELPER_EDDSA_MT_REQ_REVOKE 16 + +#define TALER_HELPER_EDDSA_MT_RES_SIGNATURE 17 +#define TALER_HELPER_EDDSA_MT_RES_SIGN_FAILURE 18 + +#define TALER_HELPER_EDDSA_SYNCED 19 + + +GNUNET_NETWORK_STRUCT_BEGIN + +/** + * Message sent if a key is available. + */ +struct TALER_CRYPTO_EddsaKeyAvailableNotification +{ + /** + * Type is #TALER_HELPER_EDDSA_MT_AVAIL + */ + struct GNUNET_MessageHeader header; + + /** + * For now, always zero. + */ + uint32_t reserved; + + /** + * When does the key become available? + */ + struct GNUNET_TIME_AbsoluteNBO anchor_time; + + /** + * How long is the key available after @e anchor_time? + */ + struct GNUNET_TIME_RelativeNBO duration; + + /** + * Public key used to generate the @e sicm_sig. + */ + struct TALER_SecurityModulePublicKeyP secm_pub; + + /** + * Signature affirming the announcement, of + * purpose #TALER_SIGNATURE_SM_SIGNING_KEY. + */ + struct TALER_SecurityModuleSignatureP secm_sig; + + /** + * The public key. + */ + struct TALER_ExchangePublicKeyP exchange_pub; + +}; + + +/** + * Message sent if a key was purged. + */ +struct TALER_CRYPTO_EddsaKeyPurgeNotification +{ + /** + * Type is #TALER_HELPER_EDDSA_MT_PURGE. + */ + struct GNUNET_MessageHeader header; + + /** + * For now, always zero. + */ + uint32_t reserved; + + /** + * The public key. + */ + struct TALER_ExchangePublicKeyP exchange_pub; + +}; + + +/** + * Message sent if a signature is requested. + */ +struct TALER_CRYPTO_EddsaSignRequest +{ + /** + * Type is #TALER_HELPER_EDDSA_MT_REQ_SIGN. + */ + struct GNUNET_MessageHeader header; + + /** + * For now, always zero. + */ + uint32_t reserved; + + /** + * What should be signed over. + */ + struct GNUNET_CRYPTO_EccSignaturePurpose purpose; + + /* followed by rest of data to sign */ +}; + + +/** + * Message sent if a key was revoked. + */ +struct TALER_CRYPTO_EddsaRevokeRequest +{ + /** + * Type is #TALER_HELPER_EDDSA_MT_REQ_REVOKE. + */ + struct GNUNET_MessageHeader header; + + /** + * For now, always zero. + */ + uint32_t reserved; + + /** + * The public key to revoke. + */ + struct TALER_ExchangePublicKeyP exchange_pub; + +}; + + +/** + * Message sent if a signature was successfully computed. + */ +struct TALER_CRYPTO_EddsaSignResponse +{ + /** + * Type is #TALER_HELPER_EDDSA_MT_RES_SIGNATURE. + */ + struct GNUNET_MessageHeader header; + + /** + * For now, always zero. + */ + uint32_t reserved; + + /** + * The public key used for the signature. + */ + struct TALER_ExchangePublicKeyP exchange_pub; + + /** + * The public key to use for the signature. + */ + struct TALER_ExchangeSignatureP exchange_sig; + +}; + + +/** + * Message sent if signing failed. + */ +struct TALER_CRYPTO_EddsaSignFailure +{ + /** + * Type is #TALER_HELPER_EDDSA_MT_RES_SIGN_FAILURE. + */ + struct GNUNET_MessageHeader header; + + /** + * If available, Taler error code. In NBO. + */ + uint32_t ec; + +}; + + +GNUNET_NETWORK_STRUCT_END + + +#endif -- cgit v1.2.3