summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2015-07-06 10:16:49 +0200
committerChristian Grothoff <christian@grothoff.org>2015-07-06 10:16:49 +0200
commit2e7b28765ea2871df03353681f0680c53ec3ebef (patch)
tree3895a042cc0e54ed325bdefe643b2a66413e75d1 /src/include
parent7ad57d7a6708eb451395a78b4c88797844d78d62 (diff)
downloadexchange-2e7b28765ea2871df03353681f0680c53ec3ebef.tar.gz
exchange-2e7b28765ea2871df03353681f0680c53ec3ebef.tar.bz2
exchange-2e7b28765ea2871df03353681f0680c53ec3ebef.zip
simplifying use of struct TALER_DenominationKeyValidityPS by removing signature
Diffstat (limited to 'src/include')
-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.h48
3 files changed, 64 insertions, 8 deletions
diff --git a/src/include/taler_mintdb_lib.h b/src/include/taler_mintdb_lib.h
index 739194a4..24f67761 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 af5f2c19..21d83d9d 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 70fc1c0a..eebddd2d 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,37 @@ struct TALER_DenominationKeyValidityPS
};
+
+/**
+ * @brief Information about a denomination key. Denomination keys
+ * are used to sign coins of a certain value into existence.
+ */
+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