summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSchanzenbach, Martin <mschanzenbach@posteo.de>2019-10-03 18:55:47 +0200
committerSchanzenbach, Martin <mschanzenbach@posteo.de>2019-10-03 18:55:47 +0200
commit8988b34f6df3e8e4f374b36d05c68272cdc2f504 (patch)
treece9d192bab3a1b3826c7451095e3c3271c459009 /src
parentdd298ca059ed935560cccfa020127c93b4d3f823 (diff)
GNS: preparing protocol change in GNS for v12
Diffstat (limited to 'src')
-rw-r--r--src/gnsrecord/gnsrecord_crypto.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/gnsrecord/gnsrecord_crypto.c b/src/gnsrecord/gnsrecord_crypto.c
index 6eda1e962..d34be30c4 100644
--- a/src/gnsrecord/gnsrecord_crypto.c
+++ b/src/gnsrecord/gnsrecord_crypto.c
@@ -54,7 +54,23 @@ derive_block_aes_key(struct GNUNET_CRYPTO_SymmetricInitializationVector *iv,
{
static const char ctx_key[] = "gns-aes-ctx-key";
static const char ctx_iv[] = "gns-aes-ctx-iv";
-
+/**
+ * Next time we break protocol (v12) we harmonize the KDF usage in GNS:
+ * We use the strings above as salt and the public key as IKM similar to
+ * how derive_h is done in crypto_ecc.c.
+ */
+#ifdef GNUNET_PROTOCOL_V12
+ GNUNET_CRYPTO_kdf(skey, sizeof(struct GNUNET_CRYPTO_SymmetricSessionKey),
+ ctx_key, strlen(ctx_key),
+ pub, sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey),
+ label, strlen(label),
+ NULL, 0);
+ GNUNET_CRYPTO_kdf(iv, sizeof(struct GNUNET_CRYPTO_SymmetricInitializationVector),
+ ctx_iv, strlen(ctx_iv),
+ pub, sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey),
+ label, strlen(label),
+ NULL, 0);
+#else
GNUNET_CRYPTO_kdf(skey, sizeof(struct GNUNET_CRYPTO_SymmetricSessionKey),
pub, sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey),
label, strlen(label),
@@ -65,6 +81,7 @@ derive_block_aes_key(struct GNUNET_CRYPTO_SymmetricInitializationVector *iv,
label, strlen(label),
ctx_iv, strlen(ctx_iv),
NULL, 0);
+#endif
}
@@ -454,7 +471,6 @@ GNUNET_GNSRECORD_query_from_public_key(const struct GNUNET_CRYPTO_EcdsaPublicKey
struct GNUNET_HashCode *query)
{
struct GNUNET_CRYPTO_EcdsaPublicKey pd;
-
GNUNET_CRYPTO_ecdsa_public_key_derive(pub,
label,
"gns",