summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/taler_mint_service.h58
-rw-r--r--src/include/taler_mintdb_lib.h20
-rw-r--r--src/include/taler_mintdb_plugin.h4
-rw-r--r--src/include/taler_signatures.h49
4 files changed, 101 insertions, 30 deletions
diff --git a/src/include/taler_mint_service.h b/src/include/taler_mint_service.h
index 7822d6200..c9dbfb874 100644
--- a/src/include/taler_mint_service.h
+++ b/src/include/taler_mint_service.h
@@ -118,28 +118,6 @@ enum TALER_MINT_Option
/**
- * Information we get from the mint about auditors.
- */
-struct TALER_MINT_AuditorInformation
-{
- /**
- * Public key of the auditing institution.
- */
- struct TALER_AuditorPublicKeyP auditor_pub;
-
- /**
- * URL of the auditing institution. The application must check that
- * this is an acceptable auditor for its purpose and also verify
- * that the @a auditor_pub matches the auditor's public key given at
- * that website. We expect that in practice software is going to
- * often ship with an initial list of accepted auditors, just like
- * browsers ship with a CA root store.
- */
- const char *auditor_url;
-};
-
-
-/**
* @brief Mint's signature key
*/
struct TALER_MINT_SigningPublicKey
@@ -210,6 +188,42 @@ struct TALER_MINT_DenomPublicKey
/**
+ * Information we get from the mint about auditors.
+ */
+struct TALER_MINT_AuditorInformation
+{
+ /**
+ * Public key of the auditing institution.
+ */
+ struct TALER_AuditorPublicKeyP auditor_pub;
+
+ /**
+ * URL of the auditing institution. The application must check that
+ * this is an acceptable auditor for its purpose and also verify
+ * that the @a auditor_pub matches the auditor's public key given at
+ * that website. We expect that in practice software is going to
+ * often ship with an initial list of accepted auditors, just like
+ * browsers ship with a CA root store.
+ */
+ const char *auditor_url;
+
+ /**
+ * Number of denomination keys audited by this auditor.
+ */
+ unsigned int num_denom_keys;
+
+ /**
+ * Array of length @a denom_keys with the denomination
+ * keys audited by this auditor. Note that the array
+ * elements point to the same locations as the entries
+ * in the key's main `denom_keys` array.
+ */
+ struct TALER_MINT_DenomPublicKey *const*denom_keys;
+};
+
+
+
+/**
* Information about keys from the mint.
*/
struct TALER_MINT_Keys
diff --git a/src/include/taler_mintdb_lib.h b/src/include/taler_mintdb_lib.h
index 739194a40..24f677617 100644
--- a/src/include/taler_mintdb_lib.h
+++ b/src/include/taler_mintdb_lib.h
@@ -60,6 +60,24 @@ struct TALER_MINTDB_PrivateSigningKeyInformationP
};
+/**
+ * Information about a denomination key.
+ */
+struct TALER_MINTDB_DenominationKeyInformationP
+{
+
+ /**
+ * Signature over this struct to affirm the validity of the key.
+ */
+ struct TALER_MasterSignatureP signature;
+
+ /**
+ * Signed properties of the denomination key.
+ */
+ struct TALER_DenominationKeyValidityPS properties;
+};
+
+
GNUNET_NETWORK_STRUCT_END
@@ -85,7 +103,7 @@ struct TALER_MINTDB_DenominationKeyIssueInformation
/**
* Signed public information about a denomination key.
*/
- struct TALER_DenominationKeyValidityPS issue;
+ struct TALER_MINTDB_DenominationKeyInformationP issue;
};
diff --git a/src/include/taler_mintdb_plugin.h b/src/include/taler_mintdb_plugin.h
index af5f2c196..21d83d9d8 100644
--- a/src/include/taler_mintdb_plugin.h
+++ b/src/include/taler_mintdb_plugin.h
@@ -697,7 +697,7 @@ struct TALER_MINTDB_Plugin
(*insert_denomination_info) (void *cls,
struct TALER_MINTDB_Session *session,
const struct TALER_DenominationPublicKey *denom_pub,
- const struct TALER_DenominationKeyValidityPS *issue);
+ const struct TALER_MINTDB_DenominationKeyInformationP *issue);
/**
@@ -713,7 +713,7 @@ struct TALER_MINTDB_Plugin
(*get_denomination_info) (void *cls,
struct TALER_MINTDB_Session *session,
const struct TALER_DenominationPublicKey *denom_pub,
- struct TALER_DenominationKeyValidityPS *issue);
+ struct TALER_MINTDB_DenominationKeyInformationP *issue);
/**
diff --git a/src/include/taler_signatures.h b/src/include/taler_signatures.h
index 70fc1c0ad..4d7e83ec5 100644
--- a/src/include/taler_signatures.h
+++ b/src/include/taler_signatures.h
@@ -89,6 +89,17 @@
#define TALER_SIGNATURE_MINT_KEY_SET 1035
+/*********************/
+/* Wallet signatures */
+/*********************/
+
+/**
+ * Signature where the auditor confirms that he is
+ * aware of certain denomination keys from the mint.
+ */
+#define TALER_SIGNATURE_AUDITOR_MINT_KEYS 1064
+
+
/***********************/
/* Merchant signatures */
/***********************/
@@ -123,11 +134,11 @@
*/
#define TALER_SIGNATURE_WALLET_COIN_MELT 1202
+
/*******************/
/* Test signatures */
/*******************/
-
/**
* EdDSA test signature.
*/
@@ -512,10 +523,6 @@ struct TALER_MintKeySetPS
*/
struct TALER_DenominationKeyValidityPS
{
- /**
- * Signature over this struct to affirm the validity of the key.
- */
- struct TALER_MasterSignatureP signature;
/**
* Purpose is #TALER_SIGNATURE_MASTER_DENOMINATION_KEY_VALIDITY.
@@ -599,6 +606,38 @@ struct TALER_DenominationKeyValidityPS
};
+
+/**
+ * @brief Information signed by an auditor affirming
+ * the master public key and the denomination keys
+ * of a mint.
+ */
+struct TALER_MintKeyValidityPS
+{
+
+ /**
+ * Purpose is #TALER_SIGNATURE_AUDITOR_MINT_KEYS.
+ */
+ struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
+
+ /**
+ * The long-term offline master key of the mint, affirmed by the
+ * auditor.
+ */
+ struct TALER_MasterPublicKeyP master;
+
+ /**
+ * Array of hash(es) of the mint's denomination keys.
+ * Specifically, this is the hash over the
+ * `struct TALER_DenominationKeyValidityPS`, not just
+ * the public key (as the auditor needs to check against
+ * the correct valuations and fee structure).
+ */
+ /* struct GNUNET_HashCode h_dks; */
+
+};
+
+
GNUNET_NETWORK_STRUCT_END
#endif