diff options
author | Christian Grothoff <christian@grothoff.org> | 2018-04-24 23:28:24 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2018-04-24 23:28:24 +0200 |
commit | bdbb7c684f2c9711989d2543ecc08a95be23e6c4 (patch) | |
tree | 28c453ab36c79aa5058ec64f4b42889216098c5a /src/gnsrecord | |
parent | 72b802f9173bdd0f5d6830c56d7c51c3349073fe (diff) |
code cleanup, more diagnostics, more statistics
Diffstat (limited to 'src/gnsrecord')
-rw-r--r-- | src/gnsrecord/gnsrecord_crypto.c | 66 |
1 files changed, 41 insertions, 25 deletions
diff --git a/src/gnsrecord/gnsrecord_crypto.c b/src/gnsrecord/gnsrecord_crypto.c index 0fab97f066..dd628ea767 100644 --- a/src/gnsrecord/gnsrecord_crypto.c +++ b/src/gnsrecord/gnsrecord_crypto.c @@ -85,7 +85,8 @@ GNUNET_GNSRECORD_block_create (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key, const struct GNUNET_GNSRECORD_Data *rd, unsigned int rd_count) { - size_t payload_len = GNUNET_GNSRECORD_records_get_size (rd_count, rd); + size_t payload_len = GNUNET_GNSRECORD_records_get_size (rd_count, + rd); char payload[sizeof (uint32_t) + payload_len]; struct GNUNET_GNSRECORD_Block *block; struct GNUNET_CRYPTO_EcdsaPublicKey pkey; @@ -94,14 +95,13 @@ GNUNET_GNSRECORD_block_create (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key, struct GNUNET_CRYPTO_SymmetricSessionKey skey; struct GNUNET_GNSRECORD_Data rdc[rd_count]; uint32_t rd_count_nbo; - unsigned int i; struct GNUNET_TIME_Absolute now; if (payload_len > GNUNET_GNSRECORD_MAX_BLOCK_SIZE) return NULL; /* convert relative to absolute times */ now = GNUNET_TIME_absolute_get (); - for (i=0;i<rd_count;i++) + for (unsigned int i=0;i<rd_count;i++) { rdc[i] = rd[i]; if (0 != (rd[i].flags & GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION)) @@ -116,13 +116,19 @@ GNUNET_GNSRECORD_block_create (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key, } /* serialize */ rd_count_nbo = htonl (rd_count); - GNUNET_memcpy (payload, &rd_count_nbo, sizeof (uint32_t)); + GNUNET_memcpy (payload, + &rd_count_nbo, + sizeof (uint32_t)); GNUNET_assert (payload_len == - GNUNET_GNSRECORD_records_serialize (rd_count, rdc, - payload_len, &payload[sizeof (uint32_t)])); + GNUNET_GNSRECORD_records_serialize (rd_count, + rdc, + payload_len, + &payload[sizeof (uint32_t)])); block = GNUNET_malloc (sizeof (struct GNUNET_GNSRECORD_Block) + - sizeof (uint32_t) + payload_len); - block->purpose.size = htonl (sizeof (uint32_t) + payload_len + + sizeof (uint32_t) + + payload_len); + block->purpose.size = htonl (sizeof (uint32_t) + + payload_len + sizeof (struct GNUNET_CRYPTO_EccSignaturePurpose) + sizeof (struct GNUNET_TIME_AbsoluteNBO)); block->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_GNS_RECORD_SIGN); @@ -132,18 +138,23 @@ GNUNET_GNSRECORD_block_create (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key, label, "gns"); GNUNET_CRYPTO_ecdsa_key_get_public (dkey, - &block->derived_key); + &block->derived_key); GNUNET_CRYPTO_ecdsa_key_get_public (key, - &pkey); - derive_block_aes_key (&iv, &skey, label, &pkey); + &pkey); + derive_block_aes_key (&iv, + &skey, + label, + &pkey); GNUNET_break (payload_len + sizeof (uint32_t) == - GNUNET_CRYPTO_symmetric_encrypt (payload, payload_len + sizeof (uint32_t), - &skey, &iv, + GNUNET_CRYPTO_symmetric_encrypt (payload, + payload_len + sizeof (uint32_t), + &skey, + &iv, &block[1])); if (GNUNET_OK != GNUNET_CRYPTO_ecdsa_sign (dkey, - &block->purpose, - &block->signature)) + &block->purpose, + &block->signature)) { GNUNET_break (0); GNUNET_free (dkey); @@ -166,9 +177,9 @@ int GNUNET_GNSRECORD_block_verify (const struct GNUNET_GNSRECORD_Block *block) { return GNUNET_CRYPTO_ecdsa_verify (GNUNET_SIGNATURE_PURPOSE_GNS_RECORD_SIGN, - &block->purpose, - &block->signature, - &block->derived_key); + &block->purpose, + &block->signature, + &block->derived_key); } @@ -224,9 +235,7 @@ GNUNET_GNSRECORD_block_decrypt (const struct GNUNET_GNSRECORD_Block *block, } { struct GNUNET_GNSRECORD_Data rd[rd_count]; - unsigned int i; unsigned int j; - unsigned int k; struct GNUNET_TIME_Absolute now; if (GNUNET_OK != @@ -241,7 +250,7 @@ GNUNET_GNSRECORD_block_decrypt (const struct GNUNET_GNSRECORD_Block *block, /* hide expired records */ now = GNUNET_TIME_absolute_get (); j = 0; - for (i=0;i<rd_count;i++) + for (unsigned int i=0;i<rd_count;i++) { if (0 != (rd[i].flags & GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION)) { @@ -254,7 +263,7 @@ GNUNET_GNSRECORD_block_decrypt (const struct GNUNET_GNSRECORD_Block *block, { int include_record = GNUNET_YES; /* Shadow record, figure out if we have a not expired active record */ - for (k=0;k<rd_count;k++) + for (unsigned int k=0;k<rd_count;k++) { if (k == i) continue; @@ -283,7 +292,9 @@ GNUNET_GNSRECORD_block_decrypt (const struct GNUNET_GNSRECORD_Block *block, } rd_count = j; if (NULL != proc) - proc (proc_cls, rd_count, (0 != rd_count) ? rd : NULL); + proc (proc_cls, + rd_count, + (0 != rd_count) ? rd : NULL); } } return GNUNET_OK; @@ -323,8 +334,13 @@ GNUNET_GNSRECORD_query_from_public_key (const struct GNUNET_CRYPTO_EcdsaPublicKe { struct GNUNET_CRYPTO_EcdsaPublicKey pd; - GNUNET_CRYPTO_ecdsa_public_key_derive (pub, label, "gns", &pd); - GNUNET_CRYPTO_hash (&pd, sizeof (pd), query); + GNUNET_CRYPTO_ecdsa_public_key_derive (pub, + label, + "gns", + &pd); + GNUNET_CRYPTO_hash (&pd, + sizeof (pd), + query); } |