From c2017c2ba13736ee1fe4dc9d811d49bee1641ca3 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Tue, 8 Sep 2009 08:10:18 +0000 Subject: fixes --- src/datastore/perf_datastore_api.c | 1 + src/fs/Makefile.am | 4 +- src/fs/test_fs_collection.c | 11 +++-- src/fs/test_fs_directory.c | 24 ++++------- src/hostlist/test_gnunet_daemon_hostlist.c | 4 +- src/include/gnunet_crypto_lib.h | 67 ++++++++++++++++++------------ src/testing/test_testing.c | 2 +- src/util/crypto_aes.c | 13 +++--- src/util/crypto_crc.c | 6 +-- src/util/crypto_hash.c | 51 ++++++++++++----------- src/util/crypto_random.c | 26 ++++++------ src/util/crypto_rsa.c | 7 ++-- src/util/test_container_bloomfilter.c | 2 +- src/util/test_crypto_hash.c | 4 +- src/util/test_crypto_ksk.c | 2 +- src/util/test_pseudonym.c | 4 +- 16 files changed, 124 insertions(+), 104 deletions(-) diff --git a/src/datastore/perf_datastore_api.c b/src/datastore/perf_datastore_api.c index 0df55f878..626fbcf73 100644 --- a/src/datastore/perf_datastore_api.c +++ b/src/datastore/perf_datastore_api.c @@ -389,6 +389,7 @@ main (int argc, char *argv[]) #if REPORT_ID fprintf (stderr, "\n"); #endif + GNUNET_DISK_directory_remove ("/tmp/test-gnunetd-datastore"); return ret; } diff --git a/src/fs/Makefile.am b/src/fs/Makefile.am index f2bcab615..abc3d989b 100644 --- a/src/fs/Makefile.am +++ b/src/fs/Makefile.am @@ -107,7 +107,9 @@ check_PROGRAMS = \ test_fs_getopt \ test_fs_uri -TESTS = $(check_PROGRAMS) +TESTS = test_fs_uri + +# $(check_PROGRAMS) test_fs_collection_SOURCES = \ test_fs_collection.c diff --git a/src/fs/test_fs_collection.c b/src/fs/test_fs_collection.c index 6857dfc25..dc93bbfb5 100644 --- a/src/fs/test_fs_collection.c +++ b/src/fs/test_fs_collection.c @@ -52,7 +52,9 @@ task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) cfg, "test-fs-collection", &progress_cb, - NULL); + NULL, + GNUNET_FS_FLAGS_NONE, + GNUNET_FS_OPTIONS_END); GNUNET_assert (NULL != fsh); GNUNET_FS_collection_stop (fsh); GNUNET_assert (NULL == GNUNET_FS_collection_get (fsh)); @@ -76,7 +78,9 @@ task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) cfg, "test-fs-collection", &progress_cb, - NULL); + NULL, + GNUNET_FS_FLAGS_NONE, + GNUNET_FS_OPTIONS_END); have = GNUNET_FS_collection_get (fsh); GNUNET_assert (NULL != have); GNUNET_FS_namespace_delete (have, GNUNET_NO); @@ -101,7 +105,8 @@ main (int argc, char *argv[]) NULL); GNUNET_CRYPTO_random_disable_entropy_gathering (); cfg = GNUNET_CONFIGURATION_create (); - if (GNUNET_SYSERR == GNUNET_CONFIGURATION_parse (cfg, "test_fs_collection_data.conf")) + if (GNUNET_SYSERR == GNUNET_CONFIGURATION_parse (cfg, + "test_fs_collection_data.conf")) { GNUNET_CONFIGURATION_destroy (cfg); return -1; diff --git a/src/fs/test_fs_directory.c b/src/fs/test_fs_directory.c index 22dfa22cf..9d0101078 100644 --- a/src/fs/test_fs_directory.c +++ b/src/fs/test_fs_directory.c @@ -67,8 +67,9 @@ processor (void *cls, static int testDirectory (unsigned int i) { + struct GNUNET_FS_DirectoryBuilder *db; char *data; - unsigned long long dlen; + size_t dlen; struct GNUNET_FS_Uri **uris; struct GNUNET_CONTAINER_MetaData **mds; struct GNUNET_CONTAINER_MetaData *meta; @@ -96,7 +97,7 @@ testDirectory (unsigned int i) } GNUNET_snprintf (uri, sizeof(uri), - "gnunet://ecrs/chk/C282GG70GKK41O4551011DO413KFBVTVMQG1OG30I0K4045N0G41HAPB82G680A02JRVVFO8URVRU2F159011DO41000000022RG820.RNVVVVOOLCLK065B5D04HTNVNSIB2AI022RG8200HSLK1CO1000ATQ98824DMA2032LIMG50CG0K057NVUVG200000H000004400000.%u", + "gnunet://fs/chk/C282GG70GKK41O4551011DO413KFBVTVMQG1OG30I0K4045N0G41HAPB82G680A02JRVVFO8URVRU2F159011DO41000000022RG820.RNVVVVOOLCLK065B5D04HTNVNSIB2AI022RG8200HSLK1CO1000ATQ98824DMA2032LIMG50CG0K057NVUVG200000H000004400000.%u", p); uris[p] = GNUNET_FS_uri_parse (uri, &emsg); if (uris[p] == NULL) @@ -115,19 +116,12 @@ testDirectory (unsigned int i) meta = GNUNET_CONTAINER_meta_data_create (); GNUNET_CONTAINER_meta_data_insert (meta, EXTRACTOR_TITLE, "A title"); GNUNET_CONTAINER_meta_data_insert (meta, EXTRACTOR_AUTHOR, "An author"); - if (GNUNET_OK != - GNUNET_FS_directory_create (&dlen, &data, i, uris, mds, meta)) - { - GNUNET_CONTAINER_meta_data_destroy (meta); - for (p = 0; p < i; p++) - { - GNUNET_CONTAINER_meta_data_destroy (mds[p]); - GNUNET_FS_uri_destroy (uris[p]); - } - GNUNET_free (uris); - GNUNET_free (mds); - ABORT (); - } + db = GNUNET_FS_directory_builder_create (meta); + for (p=0;p= 0; + for (i = (sizeof (GNUNET_HashCode) / sizeof (uint32_t)) - 1; i >= 0; i--) - result->bits[i] = rand (); + result->bits[i] = GNUNET_CRYPTO_random_u32 (mode, (uint32_t)-1); } void GNUNET_CRYPTO_hash_difference (const GNUNET_HashCode * a, - const GNUNET_HashCode * b, - GNUNET_HashCode * result) + const GNUNET_HashCode * b, + GNUNET_HashCode * result) { int i; for (i = (sizeof (GNUNET_HashCode) / sizeof (unsigned int)) - 1; i >= 0; @@ -681,8 +682,8 @@ GNUNET_CRYPTO_hash_difference (const GNUNET_HashCode * a, void GNUNET_CRYPTO_hash_sum (const GNUNET_HashCode * a, - const GNUNET_HashCode * delta, - GNUNET_HashCode * result) + const GNUNET_HashCode * delta, + GNUNET_HashCode * result) { int i; for (i = (sizeof (GNUNET_HashCode) / sizeof (unsigned int)) - 1; i >= 0; @@ -692,7 +693,7 @@ GNUNET_CRYPTO_hash_sum (const GNUNET_HashCode * a, void GNUNET_CRYPTO_hash_xor (const GNUNET_HashCode * a, - const GNUNET_HashCode * b, GNUNET_HashCode * result) + const GNUNET_HashCode * b, GNUNET_HashCode * result) { int i; for (i = (sizeof (GNUNET_HashCode) / sizeof (unsigned int)) - 1; i >= 0; @@ -705,18 +706,18 @@ GNUNET_CRYPTO_hash_xor (const GNUNET_HashCode * a, */ void GNUNET_CRYPTO_hash_to_aes_key (const GNUNET_HashCode * hc, - struct GNUNET_CRYPTO_AesSessionKey *skey, - struct GNUNET_CRYPTO_AesInitializationVector - *iv) + struct GNUNET_CRYPTO_AesSessionKey *skey, + struct GNUNET_CRYPTO_AesInitializationVector + *iv) { GNUNET_assert (sizeof (GNUNET_HashCode) >= - GNUNET_CRYPTO_AES_KEY_LENGTH + - sizeof (struct GNUNET_CRYPTO_AesInitializationVector)); + GNUNET_CRYPTO_AES_KEY_LENGTH + + sizeof (struct GNUNET_CRYPTO_AesInitializationVector)); memcpy (skey, hc, GNUNET_CRYPTO_AES_KEY_LENGTH); skey->crc32 = htonl (GNUNET_CRYPTO_crc32_n (skey, GNUNET_CRYPTO_AES_KEY_LENGTH)); memcpy (iv, &((char *) hc)[GNUNET_CRYPTO_AES_KEY_LENGTH], - sizeof (struct GNUNET_CRYPTO_AesInitializationVector)); + sizeof (struct GNUNET_CRYPTO_AesInitializationVector)); } /** @@ -739,21 +740,21 @@ GNUNET_CRYPTO_hash_get_bit (const GNUNET_HashCode * code, unsigned int bit) */ int GNUNET_CRYPTO_hash_cmp (const GNUNET_HashCode * h1, - const GNUNET_HashCode * h2) + const GNUNET_HashCode * h2) { unsigned int *i1; unsigned int *i2; int i; - + i1 = (unsigned int *) h1; i2 = (unsigned int *) h2; for (i = (sizeof (GNUNET_HashCode) / sizeof (unsigned int)) - 1; i >= 0; i--) { if (i1[i] > i2[i]) - return 1; + return 1; if (i1[i] < i2[i]) - return -1; + return -1; } return 0; } @@ -765,23 +766,23 @@ GNUNET_CRYPTO_hash_cmp (const GNUNET_HashCode * h1, */ int GNUNET_CRYPTO_hash_xorcmp (const GNUNET_HashCode * h1, - const GNUNET_HashCode * h2, - const GNUNET_HashCode * target) + const GNUNET_HashCode * h2, + const GNUNET_HashCode * target) { int i; unsigned int d1; unsigned int d2; - + for (i = sizeof (GNUNET_HashCode) / sizeof (unsigned int) - 1; i >= 0; i--) { d1 = ((unsigned int *) h1)[i] ^ ((unsigned int *) target)[i]; d2 = ((unsigned int *) h2)[i] ^ ((unsigned int *) target)[i]; if (d1 > d2) - return 1; + return 1; else if (d1 < d2) - return -1; + return -1; } return 0; } -/* end of hashing.c */ +/* end of crypto_hash.c */ diff --git a/src/util/crypto_random.c b/src/util/crypto_random.c index 3f7ac4dd3..0ad1364cb 100644 --- a/src/util/crypto_random.c +++ b/src/util/crypto_random.c @@ -32,13 +32,14 @@ /** * @return a random value in the interval [0,i[. */ -unsigned int -GNUNET_CRYPTO_random_u32 (enum GNUNET_CRYPTO_Quality mode, unsigned int i) +uint32_t +GNUNET_CRYPTO_random_u32 (enum GNUNET_CRYPTO_Quality mode, + uint32_t i) { #ifdef gcry_fast_random_poll static unsigned int invokeCount; #endif - unsigned int ret; + uint32_t ret; GNUNET_assert (i > 0); @@ -49,11 +50,9 @@ GNUNET_CRYPTO_random_u32 (enum GNUNET_CRYPTO_Quality mode, unsigned int i) if ((invokeCount++ % 256) == 0) gcry_fast_random_poll (); #endif - ret = rand (); /* in case gcry_randomize fails, - we at least get a pseudo- - random number this way */ gcry_randomize ((unsigned char *) &ret, - sizeof (unsigned int), GCRY_STRONG_RANDOM); + sizeof (uint32_t), + GCRY_STRONG_RANDOM); return ret % i; } else @@ -80,10 +79,10 @@ GNUNET_CRYPTO_random_permute (enum GNUNET_CRYPTO_Quality mode, unsigned int n) unsigned int *ret; unsigned int i; unsigned int tmp; - unsigned int x; + uint32_t x; GNUNET_assert (n > 0); - ret = GNUNET_malloc (n * sizeof (int)); + ret = GNUNET_malloc (n * sizeof (unsigned int)); for (i = 0; i < n; i++) ret[i] = i; for (i = 0; i < n; i++) @@ -99,17 +98,18 @@ GNUNET_CRYPTO_random_permute (enum GNUNET_CRYPTO_Quality mode, unsigned int n) /** * Random on unsigned 64-bit values. */ -unsigned long long +uint64_t GNUNET_CRYPTO_random_u64 (enum GNUNET_CRYPTO_Quality mode, - unsigned long long u) + uint64_t u) { - unsigned long long ret; + uint64_t ret; GNUNET_assert (u > 0); if (mode == GNUNET_CRYPTO_QUALITY_STRONG) { gcry_randomize ((unsigned char *) &ret, - sizeof (unsigned long long), GCRY_STRONG_RANDOM); + sizeof (uint64_t), + GCRY_STRONG_RANDOM); return ret % u; } else diff --git a/src/util/crypto_rsa.c b/src/util/crypto_rsa.c index edf1b2bdf..bb14f36c9 100644 --- a/src/util/crypto_rsa.c +++ b/src/util/crypto_rsa.c @@ -751,7 +751,7 @@ GNUNET_CRYPTO_rsa_key_create_from_file (const char *filename) */ int GNUNET_CRYPTO_rsa_encrypt (const void *block, - uint16_t size, + size_t size, const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *publicKey, struct GNUNET_CRYPTO_RsaEncryptedData *target) @@ -799,10 +799,11 @@ GNUNET_CRYPTO_rsa_encrypt (const void *block, * the decrypted block is bigger, an error is returned * @returns the size of the decrypted block, -1 on error */ -int +ssize_t GNUNET_CRYPTO_rsa_decrypt (const struct GNUNET_CRYPTO_RsaPrivateKey *hostkey, const struct GNUNET_CRYPTO_RsaEncryptedData *block, - void *result, uint16_t max) + void *result, + size_t max) { gcry_sexp_t resultsexp; gcry_sexp_t data; diff --git a/src/util/test_container_bloomfilter.c b/src/util/test_container_bloomfilter.c index ccaea45ae..012d3f954 100644 --- a/src/util/test_container_bloomfilter.c +++ b/src/util/test_container_bloomfilter.c @@ -38,7 +38,7 @@ static void nextHC (GNUNET_HashCode * hc) { - GNUNET_CRYPTO_hash_create_random (hc); + GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK, hc); } static int diff --git a/src/util/test_crypto_hash.c b/src/util/test_crypto_hash.c index e10aee9b1..97ef4ec88 100644 --- a/src/util/test_crypto_hash.c +++ b/src/util/test_crypto_hash.c @@ -73,8 +73,8 @@ testArithmetic () struct GNUNET_CRYPTO_AesSessionKey skey; struct GNUNET_CRYPTO_AesInitializationVector iv; - GNUNET_CRYPTO_hash_create_random (&h1); - GNUNET_CRYPTO_hash_create_random (&h2); + GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK, &h1); + GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK, &h2); if (GNUNET_CRYPTO_hash_distance_u32 (&h1, &h2) != GNUNET_CRYPTO_hash_distance_u32 (&h2, &h1)) return 1; diff --git a/src/util/test_crypto_ksk.c b/src/util/test_crypto_ksk.c index 8bcb105ea..943e9792b 100644 --- a/src/util/test_crypto_ksk.c +++ b/src/util/test_crypto_ksk.c @@ -193,7 +193,7 @@ main (int argc, char *argv[]) struct GNUNET_CRYPTO_RsaPrivateKey *hostkey; GNUNET_log_setup ("test-crypto-ksk", "WARNING", NULL); - GNUNET_CRYPTO_hash_create_random (&in); + GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK, &in); hostkey = GNUNET_CRYPTO_rsa_key_create_from_hash (&in); if (hostkey == NULL) { diff --git a/src/util/test_pseudonym.c b/src/util/test_pseudonym.c index d358c8210..daa4c3168 100644 --- a/src/util/test_pseudonym.c +++ b/src/util/test_pseudonym.c @@ -99,7 +99,7 @@ main (int argc, char *argv[]) old = GNUNET_PSEUDONYM_list_all (cfg, NULL, NULL); meta = GNUNET_CONTAINER_meta_data_create (); GNUNET_CONTAINER_meta_data_insert (meta, EXTRACTOR_TITLE, "test"); - GNUNET_CRYPTO_hash_create_random (&id1); + GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK, &id1); GNUNET_PSEUDONYM_add (cfg, &id1, meta); CHECK (notiCount == 1); GNUNET_PSEUDONYM_add (cfg, &id1, meta); @@ -107,7 +107,7 @@ main (int argc, char *argv[]) newVal = GNUNET_PSEUDONYM_list_all (cfg, &iter, &ok); CHECK (old < newVal); old = newVal; - GNUNET_CRYPTO_hash_create_random (&id2); + GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK, &id2); GNUNET_PSEUDONYM_add (cfg, &id2, meta); CHECK (notiCount == 3); newVal = GNUNET_PSEUDONYM_list_all (cfg, &iter, &ok); -- cgit v1.2.3