aboutsummaryrefslogtreecommitdiff
path: root/src/util
Commit message (Collapse)AuthorAge
* -fix 0-terminationChristian Grothoff2016-07-08
|
* -avoid calling memcpy() with NULL argument, even if len is 0Christian Grothoff2016-07-08
|
* -lower log levelChristian Grothoff2016-07-08
|
* -indentChristian Grothoff2016-07-08
|
* add GNUNET_MQ_set_handlers_closure APIChristian Grothoff2016-07-08
|
* misc fixesChristian Grothoff2016-07-06
|
* fix dlog API for mteichChristian Grothoff2016-07-06
|
* -fix build issuesChristian Grothoff2016-07-06
|
* -fix misc issuesChristian Grothoff2016-07-06
|
* update remaining tests to use new MQ APIChristian Grothoff2016-07-05
|
* update tests to use new MQ APIChristian Grothoff2016-07-05
|
* update tests to use new MQ APIChristian Grothoff2016-07-05
|
* -disconnects DO happenChristian Grothoff2016-06-29
|
* -only trigger check config if we actually need itChristian Grothoff2016-06-28
|
* typoMarcello Stanisci2016-06-28
|
* -convert resolver_api to MQChristian Grothoff2016-06-27
|
* -doxygen, error messagesChristian Grothoff2016-06-27
|
* add function to obtain mq lengthChristian Grothoff2016-06-27
|
* fix potential NPE on shutdownChristian Grothoff2016-06-27
|
* add GNUNET_MQ_send_copyChristian Grothoff2016-06-25
|
* -fix #4582Christian Grothoff2016-06-25
|
* update peerinfo API to use MQChristian Grothoff2016-06-24
|
* -fix statistics termination issueChristian Grothoff2016-06-22
|
* avoid excessive logging in config parsingChristian Grothoff2016-06-20
|
* -fix off-by-1Christian Grothoff2016-06-20
|
* avoid deprecated API, use new connecT APIChristian Grothoff2016-06-19
|
* proper shutdownChristian Grothoff2016-06-19
|
* redefine GNUNET_MQ_queue_for_connection_client to capture client handleChristian Grothoff2016-06-19
|
* partial refactoring, will cause FTBFS, to be completed ASAPChristian Grothoff2016-06-18
|
* Fix perf_crypto_rsa.c after various changesJeff Burdges2016-06-14
| | | | | | Not perfect, but some functionality is nolonger exposed.
* fix memroy leakChristian Grothoff2016-06-11
|
* Rework the error handling for gcd(r,n) != 1 so the Taler wallet can see errors.Jeff Burdges2016-06-08
|
* Abstract out previous GCD(m,n)=1 commit into a single functionJeff Burdges2016-06-07
| | | | | | This should make it easier to report properly in the wallet.
* Verify that GCD(m,n) != 1 when n is an RSA modulusJeff Burdges2016-06-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Much thanks to CodesInChaos <codesinchaos@gmail.com> from the cryptography@metzdowd.com list for observing this flaw! On Tue, 2016-06-07 at 13:39 +0200, CodesInChaos wrote: > How do you handle the case where GCD(m, n) != 1 where m is the message > (i.e. the full domain hash) and n the modulus? Do you reject that > message and generate a new one? If I understand the attack you have in mind, it goes roughly : First, an evil exchange creates a 2048 bit RSA key pq, but issues n = p q r_1 r_2 ... r_k as say a 4096 bit RSA key where r_i is a smallish but preferably not so obvious primes, like not 2, 3, or 5. Next, our evil exchange detects and records when the various r_i appear during blinding and spending. As m is 4096 bits, then some always do since we took the r_i smallish. Each appearing r_i factor leaks I think several bits about the customer's identity. If enough coins are involved in a transaction, especially say through repeated transactions, then the customer will quickly be deanonymized. I could've fixed this in crypto_kdf.c but I descided it was specific to RSA, so I did it when calling the KDF. It should be abstracted into a common routine probably. Also fixes a pair of memory leaks.
* refactoring my APIChristian Grothoff2016-06-03
|
* fix #4545: create directory for log file if it does not existChristian Grothoff2016-06-01
|
* Testcases for KDF mod nJeff Burdges2016-05-30
| | | | | | Currently just that the result is smaller than n, maybe should do more.
* Use a uniform random number mod an RSA composites for bothJeff Burdges2016-05-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the blinding factor and the full domain hash. This resolves an attack against the blinding factor in Taler: There was a call to GNUNET_CRYPTO_kdf in bkey = rsa_blinding_key_derive (len, bks); that gives exactly len bits where len = GNUNET_CRYPTO_rsa_public_key_len (pkey); Now r = 2^(len-1)/pkey.n is the probability that a set high bit being okay, meaning bkey < pkey.n. It follows that (1-r)/2 of the time bkey > pkey.n making the effective bkey be bkey mod pkey.n = bkey - pkey.n so the effective bkey has its high bit set with probability r/2. We expect r to be close to 1/2 if the exchange is honest, but the exchange can choose r otherwise. In blind signing, the exchange sees B = bkey * S mod pkey.n On deposit, the exchange sees S so they can compute bkey' = B/S mod pkey.n for all B they recorded to see if bkey' has it's high bit set. Also, note the exchange can compute 1/S efficiently since they know the factors of pkey.n. I suppose that happens with probability r/(1+r) if its the wrong B, not completely sure. If otoh we've the right B, then we've the probability r/2 of a set high bit in the effective bkey. Interestingly, r^2-r has a maximum at the default r=1/2 anyways, giving the wrong and right probabilities 1/3 and 1/4, respectively. I fear this gives the exchange a meaningful fraction of a bit of information per coin involved in the transaction. It sounds damaging if numerous coins were involved. And it could run across transactions in some scenarios. I suspect we need a more uniform deterministic pseudo-random number generator for blinding factors. Just fyi, our old call to gcry_mpi_randomize had this same problem. I do not believe this caused a problem for the full domain hash, but we can fix it easily enough anyways.
* sketch envisioned APIChristian Grothoff2016-05-26
|
* fixing #4483: optimize blinding key storage/transmissionChristian Grothoff2016-05-24
|
* rename.sh GNUNET_CRYPTO_rsa_BlindingKey to GNUNET_CRYPTO_RsaBlindingKey ↵Christian Grothoff2016-05-19
| | | | following naming conventions
* rps.conf is generated from rps.conf.inChristian Grothoff2016-05-15
|
* fix ftbfsChristian Grothoff2016-05-06
|
* fixing compiler warningsChristian Grothoff2016-05-06
|
* add -w option to gnunet-configChristian Grothoff2016-05-05
|
* implementing new scheduler shutdown semanticsChristian Grothoff2016-04-30
|
* removing dead codeChristian Grothoff2016-04-25
|
* Allow GNUNET_BASE_CONFIG to be customized.Florian Dold2016-04-22
| | | | | Needed for GNU Taler.
* fix ftbfsChristian Grothoff2016-04-16
|
* support overriding GNUNET_DEFAULT_USER_CONFIG_FILEChristian Grothoff2016-04-16
|