diff options
| author | Markus Teich <markus.teich@stusta.mhn.de> | 2016-08-03 12:26:27 +0200 | 
|---|---|---|
| committer | Markus Teich <markus.teich@stusta.mhn.de> | 2016-08-03 12:26:27 +0200 | 
| commit | 3dea4b69f58a1545068bf56824787f6316ad5b95 (patch) | |
| tree | 64f13d1858e6bb56265643babaa76c64232bbeb1 | |
| parent | fd52f708ddb8a985d785fac9c51c8da3fe2ff937 (diff) | |
switch to hashing from gnunetutil
| -rw-r--r-- | crypto.c | 58 | ||||
| -rw-r--r-- | crypto.h | 9 | 
2 files changed, 12 insertions, 55 deletions
| @@ -93,22 +93,6 @@ brandt_crypto_init (struct GNUNET_CRYPTO_EccDlogContext *dlogctx)  } -/* --- HASHING --- */ - -/** - * Hash block of given size. - * - * @param block the data to #brandt_hash, length is given as a second argument - * @param size the length of the data to #brandt_hash in @a block - * @param ret pointer to where to write the hashcode - */ -void -brandt_hash (const void *block, size_t size, struct brandt_hash_code *ret) -{ -	gcry_md_hash_buffer (GCRY_MD_SHA512, ret, block, size); -} - -  /* --- EC --- */  /** @@ -1512,10 +1496,9 @@ smc_zkp_dl (gcry_mpi_point_t v,              struct proof_dl  *proof)  {  	struct zkp_challenge_dl challenge; -	struct brandt_hash_code challhash;  	gcry_mpi_point_t        a = gcry_mpi_point_new (0);  	gcry_mpi_t              r = gcry_mpi_new (256); -	gcry_mpi_t              c = gcry_mpi_new (256); +	gcry_mpi_t              c;  	gcry_mpi_t              z = gcry_mpi_new (256);  	/* v = xg */ @@ -1528,9 +1511,7 @@ smc_zkp_dl (gcry_mpi_point_t v,  	ec_point_serialize (&challenge.g, ec_gen);  	ec_point_serialize (&challenge.v, v);  	ec_point_serialize (&challenge.a, a); -	brandt_hash (&challenge, sizeof (struct zkp_challenge_dl), &challhash); -	mpi_parse (c, (struct ec_mpi *)&challhash); -	gcry_mpi_mod (c, c, ec_n); +	GNUNET_CRYPTO_kdf_mod_mpi (&c, ec_n, NULL, 0, &challenge, sizeof (challenge), "libbrandt zkp dl");  	/* r = z + cx */  	gcry_mpi_mulm (r, c, x, ec_n); @@ -1560,10 +1541,9 @@ smc_zkp_dl_check (const gcry_mpi_point_t v,  {  	int                     ret;  	struct zkp_challenge_dl challenge; -	struct brandt_hash_code challhash;  	gcry_mpi_point_t        a = gcry_mpi_point_new (0);  	gcry_mpi_t              r = gcry_mpi_new (256); -	gcry_mpi_t              c = gcry_mpi_new (256); +	gcry_mpi_t              c;  	gcry_mpi_point_t        left = gcry_mpi_point_new (0);  	gcry_mpi_point_t        right = gcry_mpi_point_new (0); @@ -1574,9 +1554,7 @@ smc_zkp_dl_check (const gcry_mpi_point_t v,  	ec_point_serialize (&challenge.g, ec_gen);  	ec_point_serialize (&challenge.v, v);  	ec_point_serialize (&challenge.a, a); -	brandt_hash (&challenge, sizeof (struct zkp_challenge_dl), &challhash); -	mpi_parse (c, (struct ec_mpi *)&challhash); -	gcry_mpi_mod (c, c, ec_n); +	GNUNET_CRYPTO_kdf_mod_mpi (&c, ec_n, NULL, 0, &challenge, sizeof (challenge), "libbrandt zkp dl");  	/* rg =? a + cv */  	gcry_mpi_ec_mul (left, r, ec_gen, ec_ctx); @@ -1619,14 +1597,13 @@ smc_zkp_2dle (gcry_mpi_point_t       v,                struct proof_2dle      *proof)  {  	struct zkp_challenge_2dle challenge; -	struct brandt_hash_code   challhash;  	gcry_mpi_point_t          rv;  	gcry_mpi_point_t          rw;  	gcry_mpi_t                rx;  	gcry_mpi_point_t          a = gcry_mpi_point_new (0);  	gcry_mpi_point_t          b = gcry_mpi_point_new (0);  	gcry_mpi_t                r = gcry_mpi_new (256); -	gcry_mpi_t                c = gcry_mpi_new (256); +	gcry_mpi_t                c;  	gcry_mpi_t                z = gcry_mpi_new (256);  	rv = (NULL == v) ? gcry_mpi_point_new (0) : v; @@ -1655,9 +1632,7 @@ smc_zkp_2dle (gcry_mpi_point_t       v,  	ec_point_serialize (&challenge.w, rw);  	ec_point_serialize (&challenge.a, a);  	ec_point_serialize (&challenge.b, b); -	brandt_hash (&challenge, sizeof (struct zkp_challenge_dl), &challhash); -	mpi_parse (c, (struct ec_mpi *)&challhash); -	gcry_mpi_mod (c, c, ec_n); +	GNUNET_CRYPTO_kdf_mod_mpi (&c, ec_n, NULL, 0, &challenge, sizeof (challenge), "libbrandt zkp 2dle");  	/* r = z + cx */  	gcry_mpi_mulm (r, c, rx, ec_n); @@ -1701,11 +1676,10 @@ smc_zkp_2dle_check (const gcry_mpi_point_t  v,  {  	int                       ret;  	struct zkp_challenge_2dle challenge; -	struct brandt_hash_code   challhash;  	gcry_mpi_point_t          a = gcry_mpi_point_new (0);  	gcry_mpi_point_t          b = gcry_mpi_point_new (0);  	gcry_mpi_t                r = gcry_mpi_new (256); -	gcry_mpi_t                c = gcry_mpi_new (256); +	gcry_mpi_t                c;  	gcry_mpi_point_t          left = gcry_mpi_point_new (0);  	gcry_mpi_point_t          right = gcry_mpi_point_new (0); @@ -1720,9 +1694,7 @@ smc_zkp_2dle_check (const gcry_mpi_point_t  v,  	ec_point_serialize (&challenge.w, w);  	ec_point_serialize (&challenge.a, a);  	ec_point_serialize (&challenge.b, b); -	brandt_hash (&challenge, sizeof (struct zkp_challenge_dl), &challhash); -	mpi_parse (c, (struct ec_mpi *)&challhash); -	gcry_mpi_mod (c, c, ec_n); +	GNUNET_CRYPTO_kdf_mod_mpi (&c, ec_n, NULL, 0, &challenge, sizeof (challenge), "libbrandt zkp 2dle");  	/* r*g1 =? a + cv */  	gcry_mpi_ec_mul (left, r, g1, ec_ctx); @@ -1775,7 +1747,6 @@ smc_zkp_0og (int                    m_is_gen,               struct proof_0og       *proof)  {  	struct zkp_challenge_0og challenge; -	struct brandt_hash_code  challhash;  	gcry_mpi_point_t         a1 = gcry_mpi_point_new (0);  	gcry_mpi_point_t         a2 = gcry_mpi_point_new (0);  	gcry_mpi_point_t         b1 = gcry_mpi_point_new (0); @@ -1784,7 +1755,7 @@ smc_zkp_0og (int                    m_is_gen,  	gcry_mpi_t               d2 = gcry_mpi_new (256);  	gcry_mpi_t               r1 = gcry_mpi_new (256);  	gcry_mpi_t               r2 = gcry_mpi_new (256); -	gcry_mpi_t               c = gcry_mpi_new (256); +	gcry_mpi_t               c;  	gcry_mpi_t               rr;  	gcry_mpi_t               w = gcry_mpi_new (256); @@ -1854,9 +1825,7 @@ smc_zkp_0og (int                    m_is_gen,  	ec_point_serialize (&challenge.a2, a2);  	ec_point_serialize (&challenge.b1, b1);  	ec_point_serialize (&challenge.b2, b2); -	brandt_hash (&challenge, sizeof (struct zkp_challenge_dl), &challhash); -	mpi_parse (c, (struct ec_mpi *)&challhash); -	gcry_mpi_mod (c, c, ec_n); +	GNUNET_CRYPTO_kdf_mod_mpi (&c, ec_n, NULL, 0, &challenge, sizeof (challenge), "libbrandt zkp 0og");  	if (!m_is_gen)  	{   /* m == 0 */ @@ -1919,7 +1888,6 @@ smc_zkp_0og_check (const gcry_mpi_point_t y,  {  	int                      ret;  	struct zkp_challenge_0og challenge; -	struct brandt_hash_code  challhash;  	gcry_mpi_point_t         a1 = gcry_mpi_point_new (0);  	gcry_mpi_point_t         a2 = gcry_mpi_point_new (0);  	gcry_mpi_point_t         b1 = gcry_mpi_point_new (0); @@ -1928,7 +1896,7 @@ smc_zkp_0og_check (const gcry_mpi_point_t y,  	gcry_mpi_t               d2 = gcry_mpi_new (256);  	gcry_mpi_t               r1 = gcry_mpi_new (256);  	gcry_mpi_t               r2 = gcry_mpi_new (256); -	gcry_mpi_t               c = gcry_mpi_new (256); +	gcry_mpi_t               c;  	gcry_mpi_t               sum = gcry_mpi_new (256);  	gcry_mpi_point_t         right = gcry_mpi_point_new (0);  	gcry_mpi_point_t         tmp = gcry_mpi_point_new (0); @@ -1950,9 +1918,7 @@ smc_zkp_0og_check (const gcry_mpi_point_t y,  	ec_point_serialize (&challenge.a2, a2);  	ec_point_serialize (&challenge.b1, b1);  	ec_point_serialize (&challenge.b2, b2); -	brandt_hash (&challenge, sizeof (struct zkp_challenge_dl), &challhash); -	mpi_parse (c, (struct ec_mpi *)&challhash); -	gcry_mpi_mod (c, c, ec_n); +	GNUNET_CRYPTO_kdf_mod_mpi (&c, ec_n, NULL, 0, &challenge, sizeof (challenge), "libbrandt zkp 0og");  	/* c == d1 + d2 */  	gcry_mpi_addm (sum, d1, d2, ec_n); @@ -34,15 +34,6 @@  void brandt_crypto_init (struct GNUNET_CRYPTO_EccDlogContext *dlogctx); -/* --- HASHING --- */ - -struct brandt_hash_code { -	uint32_t bits[512 / 8 / sizeof (uint32_t)];   /* = 16 */ -}; - -void brandt_hash (const void *block, size_t size, struct brandt_hash_code *ret); - -  /* --- EC --- */  /* used for serialized mpis and serialized curve points (they are the same size | 
