summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2015-01-27 22:05:31 +0100
committerChristian Grothoff <christian@grothoff.org>2015-01-27 22:05:31 +0100
commit162af316d39f1bf526e3dc63e67dd6ae6f7be91b (patch)
tree1675c0c5626e374a32dc36e81ab328d18b5f5b11 /src
parent27a72fdafe67bcba304e274e839a2780009bd8da (diff)
downloadexchange-162af316d39f1bf526e3dc63e67dd6ae6f7be91b.tar.gz
exchange-162af316d39f1bf526e3dc63e67dd6ae6f7be91b.tar.bz2
exchange-162af316d39f1bf526e3dc63e67dd6ae6f7be91b.zip
cleaning up types used some more: also use a new struct for the transfer key secret
Diffstat (limited to 'src')
-rw-r--r--src/include/taler_util.h25
-rw-r--r--src/mint/taler-mint-httpd_db.c4
-rw-r--r--src/util/crypto.c14
3 files changed, 28 insertions, 15 deletions
diff --git a/src/include/taler_util.h b/src/include/taler_util.h
index 19e6bacf1..2c5faaa52 100644
--- a/src/include/taler_util.h
+++ b/src/include/taler_util.h
@@ -241,6 +241,20 @@ TALER_data_to_string_alloc (const void *buf,
/* ****************** Refresh crypto primitives ************* */
/**
+ * Secret used to decrypt the key to decrypt link secrets.
+ */
+struct TALER_TransferSecret
+{
+ /**
+ * Secret used to encrypt/decrypt the `struct TALER_LinkSecret`.
+ * Must be (currently) a hash as this is what
+ * #GNUNET_CRYPTO_ecc_ecdh() returns to us.
+ */
+ struct GNUNET_HashCode key;
+};
+
+
+/**
* Secret used to decrypt refresh links.
*/
struct TALER_LinkSecret
@@ -312,15 +326,14 @@ struct TALER_RefreshLinkDecrypted
* Use the @a trans_sec (from ECDHE) to decrypt the @a secret_enc
* to obtain the @a secret to decrypt the linkage data.
*
- * @param secret_enc encrypted secret (FIXME: use different type!)
- * @param trans_sec transfer secret (FIXME: use different type?)
+ * @param secret_enc encrypted secret
+ * @param trans_sec transfer secret
* @param secret shared secret for refresh link decryption
- * (FIXME: use different type?)
* @return #GNUNET_OK on success
*/
int
TALER_transfer_decrypt (const struct TALER_EncryptedLinkSecret *secret_enc,
- const struct GNUNET_HashCode *trans_sec,
+ const struct TALER_TransferSecret *trans_sec,
struct TALER_LinkSecret *secret);
@@ -329,13 +342,13 @@ TALER_transfer_decrypt (const struct TALER_EncryptedLinkSecret *secret_enc,
* to obtain the @a secret_enc.
*
* @param secret shared secret for refresh link decryption
- * @param trans_sec transfer secret (FIXME: use different type?)
+ * @param trans_sec transfer secret
* @param secret_enc[out] encrypted secret
* @return #GNUNET_OK on success
*/
int
TALER_transfer_encrypt (const struct TALER_LinkSecret *secret,
- const struct GNUNET_HashCode *trans_sec,
+ const struct TALER_TransferSecret *trans_sec,
struct TALER_EncryptedLinkSecret *secret_enc);
diff --git a/src/mint/taler-mint-httpd_db.c b/src/mint/taler-mint-httpd_db.c
index 8f7553896..baf5d12aa 100644
--- a/src/mint/taler-mint-httpd_db.c
+++ b/src/mint/taler-mint-httpd_db.c
@@ -918,7 +918,7 @@ TALER_MINT_db_execute_refresh_reveal (struct MHD_Connection *connection,
{
struct RefreshCommitLink commit_link;
struct GNUNET_CRYPTO_EcdsaPublicKey coin_pub;
- struct GNUNET_HashCode transfer_secret;
+ struct TALER_TransferSecret transfer_secret;
struct TALER_LinkSecret shared_secret;
res = TALER_MINT_DB_get_refresh_commit_link (db_conn,
@@ -946,7 +946,7 @@ TALER_MINT_db_execute_refresh_reveal (struct MHD_Connection *connection,
if (GNUNET_OK !=
GNUNET_CRYPTO_ecc_ecdh ((const struct GNUNET_CRYPTO_EcdhePrivateKey *) &transfer_privs[i+off][j],
(const struct GNUNET_CRYPTO_EcdhePublicKey *) &coin_pub,
- &transfer_secret))
+ &transfer_secret.key))
{
GNUNET_break (0);
// FIXME: return 'internal error'?
diff --git a/src/util/crypto.c b/src/util/crypto.c
index 65c586d75..184662987 100644
--- a/src/util/crypto.c
+++ b/src/util/crypto.c
@@ -102,7 +102,7 @@ derive_refresh_key (const struct TALER_LinkSecret *secret,
* @param[out] skey set to session key
*/
static void
-derive_transfer_key (const struct GNUNET_HashCode *secret,
+derive_transfer_key (const struct TALER_TransferSecret *secret,
struct GNUNET_CRYPTO_SymmetricInitializationVector *iv,
struct GNUNET_CRYPTO_SymmetricSessionKey *skey)
{
@@ -112,12 +112,12 @@ derive_transfer_key (const struct GNUNET_HashCode *secret,
GNUNET_assert (GNUNET_YES ==
GNUNET_CRYPTO_kdf (skey, sizeof (struct GNUNET_CRYPTO_SymmetricSessionKey),
ctx_key, strlen (ctx_key),
- secret, sizeof (struct GNUNET_HashCode),
+ secret, sizeof (struct TALER_TransferSecret),
NULL, 0));
GNUNET_assert (GNUNET_YES ==
GNUNET_CRYPTO_kdf (iv, sizeof (struct GNUNET_CRYPTO_SymmetricInitializationVector),
ctx_iv, strlen (ctx_iv),
- secret, sizeof (struct GNUNET_HashCode),
+ secret, sizeof (struct TALER_TransferSecret),
NULL, 0));
}
@@ -127,13 +127,13 @@ derive_transfer_key (const struct GNUNET_HashCode *secret,
* to obtain the @a secret to decrypt the linkage data.
*
* @param secret_enc encrypted secret
- * @param trans_sec transfer secret (FIXME: use different type?)
+ * @param trans_sec transfer secret
* @param secret shared secret for refresh link decryption
* @return #GNUNET_OK on success
*/
int
TALER_transfer_decrypt (const struct TALER_EncryptedLinkSecret *secret_enc,
- const struct GNUNET_HashCode *trans_sec,
+ const struct TALER_TransferSecret *trans_sec,
struct TALER_LinkSecret *secret)
{
struct GNUNET_CRYPTO_SymmetricInitializationVector iv;
@@ -155,13 +155,13 @@ TALER_transfer_decrypt (const struct TALER_EncryptedLinkSecret *secret_enc,
* to obtain the @a secret_enc.
*
* @param secret shared secret for refresh link decryption
- * @param trans_sec transfer secret (FIXME: use different type?)
+ * @param trans_sec transfer secret
* @param secret_enc[out] encrypted secret
* @return #GNUNET_OK on success
*/
int
TALER_transfer_encrypt (const struct TALER_LinkSecret *secret,
- const struct GNUNET_HashCode *trans_sec,
+ const struct TALER_TransferSecret *trans_sec,
struct TALER_EncryptedLinkSecret *secret_enc)
{
struct GNUNET_CRYPTO_SymmetricInitializationVector iv;