aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* -log more detailsChristian Grothoff2022-05-18
|
* fix scheduler bug with same-priority immediately-ready tasks possibly ↵Christian Grothoff2022-05-17
| | | | hogging the scheduler
* DHT: Move block type definitions to GANAMartin Schanzenbach2022-05-09
|
* FCFSD: Allow configuration of relative expiration time of added recordsMartin Schanzenbach2022-05-09
|
* -fix unchecked remove calls in messenger ego storeTheJackiMonster2022-05-05
| | | | Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
* -nicer loggingChristian Grothoff2022-04-30
|
* -oops, fix wrong size of unreduced scalarFlorian Dold2022-04-27
|
* -only need to copy 32 bytesFlorian Dold2022-04-26
|
* gnunet-crypto-tvg: edx25519 test vectorsFlorian Dold2022-04-26
|
* edx25519: use SHA512/256 instead of SHA256Florian Dold2022-04-26
|
* - added missing GNUNET_SERVICE_client_continuet3sserakt2022-04-26
|
* - added debug informationt3sserakt2022-04-25
|
* -code cleanup: remove duplicated commentsChristian Grothoff2022-04-25
|
* -simplify mqChristian Grothoff2022-04-25
|
* -added name for deletion message kindTheJackiMonster2022-04-24
| | | | Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
* edx25519: KDF callFlorian Dold2022-04-19
|
* edx25519: use libsodium, tweak KDF callFlorian Dold2022-04-19
|
* -libgnunetpq needs version bumpChristian Grothoff2022-04-08
|
* -fix messenger renamingTheJackiMonster2022-04-05
| | | | Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
* add flag to return 'not present' status from GNUNET_JSON_spec_mark_optionalChristian Grothoff2022-04-05
|
* UTIL: OpenBSD does not implement unsafe srandomMartin Schanzenbach2022-04-04
|
* Merge branch 'master' of ssh://git.gnunet.org/gnunett3sserakt2022-04-04
|\
| * -typoChristian Grothoff2022-04-04
| |
* | Merge branch 'master' of ssh://git.gnunet.org/gnunett3sserakt2022-04-03
|\|
| * -add include for type fd_setTheJackiMonster2022-04-02
| | | | | | | | Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
| * -implement messenger key update, fix ego store operationsTheJackiMonster2022-04-02
| | | | | | | | Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
| * -unusedMartin Schanzenbach2022-04-02
| |
* | Merge branch 'master' of ssh://git.gnunet.org/gnunett3sserakt2022-04-03
|\|
| * -fixMartin Schanzenbach2022-04-01
| |
| * -portability openbsdMartin Schanzenbach2022-04-01
| |
| * -fix bogus free bugsChristian Grothoff2022-03-30
| |
| * -style fixes, no semantic changesChristian Grothoff2022-03-30
| |
| * -logging, minor memory leak fixChristian Grothoff2022-03-30
| |
| * -update testvector generationMartin Schanzenbach2022-03-29
| |
| * -add assertion againMartin Schanzenbach2022-03-29
| |
| * GNS: Do not fail on assertions in block processingMartin Schanzenbach2022-03-29
| |
| * -fixMartin Schanzenbach2022-03-29
| |
| * -fix leak in edx25519Özgür Kesim2022-03-28
| |
| * Edx25519 implementedÖzgür Kesim2022-03-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Edx25519 is a variant of EdDSA on curve25519 which allows for repeated derivation of private and public keys, independently. The private keys in Edx25519 initially correspond to the data after expansion and clamping in EdDSA. However, this correspondence is lost after deriving further keys from existing ones. The public keys and signature verification are compatible with EdDSA. The ability to repeatedly derive key material is used for example in the context of age restriction in GNU Taler. The scheme that has been implemented is as follows: /* Private keys in Edx25519 are pairs (a, b) of 32 byte each. * Initially they correspond to the result of the expansion * and clamping in EdDSA. */ Edx25519_generate_private(seed) { /* EdDSA expand and clamp */ dh := SHA-512(seed) a := dh[0..31] b := dh[32..64] a[0] &= 0b11111000 a[31] &= 0b01111111 a[31] |= 0b01000000 return (a, b) } Edx25519_public_from_private(private) { /* Public keys are the same as in EdDSA */ (a, _) := private return [a] * G } Edx25519_blinding_factor(P, seed) { /* This is a helper function used in the derivation of * private/public keys from existing ones. */ h1 := HKDF_32(P, seed) /* Ensure that h == h % L */ h := h1 % L /* Optionally: Make sure that we don't create weak keys. */ P' := [h] * P if !( (h!=1) && (h!=0) && (P'!=E) ) { return Edx25519_blinding_factor(P, seed+1) } return h } Edx25519_derive_private(private, seed) { /* This is based on the definition in * GNUNET_CRYPTO_eddsa_private_key_derive. But it accepts * and returns a private pair (a, b) and allows for iteration. */ (a, b) := private P := Edx25519_public_key_from_private(private) h := Edx25519_blinding_factor(P, seed) /* Carefully calculate the new value for a */ a1 := a / 8; a2 := (h * a1) % L a' := (a2 * 8) % L /* Update b as well, binding it to h. This is an additional step compared to GNS. */ b' := SHA256(b ∥ h) return (a', b') } Edx25519_derive_public(P, seed) { h := Edx25519_blinding_factor(P, seed) return [h]*P } Edx25519_sign(private, message) { /* As in Ed25519, except for the origin of b */ (d, b) := private P := Edx25519_public_from_private(private) r := SHA-512(b ∥ message) R := [r] * G s := r + SHA-512(R ∥ P ∥ message) * d % L return (R,s) } Edx25519_verify(P, message, signature) { /* Identical to Ed25519 */ (R, s) := signature return [s] * G == R + [SHA-512(R ∥ P ∥ message)] * P }
| * GNS: Sanitize APIs and align with LSD0001Martin Schanzenbach2022-03-27
| |
| * add GNUNET_TIME_absolute_round_down() functionChristian Grothoff2022-03-26
| |
| * -init uninitChristian Grothoff2022-03-21
| |
| * -fix FTBFSChristian Grothoff2022-03-21
| |
| * Merge branch 'master' of git+ssh://git.gnunet.org/gnunetMartin Schanzenbach2022-03-21
| |\
| | * -add gns record type handling for messenger room detailsTheJackiMonster2022-03-21
| | | | | | | | | | | | Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
| * | NAMESTORE: Towards new transaction-based APIMartin Schanzenbach2022-03-21
| |/
| * add new approximate time cmp functionChristian Grothoff2022-03-21
| |
| * -fix distv0.16.2Martin Schanzenbach2022-03-19
| |
| * -forgot test fileMartin Schanzenbach2022-03-18
| |
| * GNS: Fix BOX handling in apexMartin Schanzenbach2022-03-18
| |