diff options
author | Schanzenbach, Martin <mschanzenbach@posteo.de> | 2019-10-03 18:55:47 +0200 |
---|---|---|
committer | Schanzenbach, Martin <mschanzenbach@posteo.de> | 2019-10-03 18:55:47 +0200 |
commit | 8988b34f6df3e8e4f374b36d05c68272cdc2f504 (patch) | |
tree | ce9d192bab3a1b3826c7451095e3c3271c459009 /src | |
parent | dd298ca059ed935560cccfa020127c93b4d3f823 (diff) |
GNS: preparing protocol change in GNS for v12
Diffstat (limited to 'src')
-rw-r--r-- | src/gnsrecord/gnsrecord_crypto.c | 20 |
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", |