aboutsummaryrefslogtreecommitdiff
path: root/src/include/gnunet_crypto_lib.h
Commit message (Collapse)AuthorAge
* elligator: API changes for encoding + function documentationsPedram Fardzadeh2024-03-11
|
* elligator: code cleanupPedram Fardzadeh2024-03-11
|
* - uncrustify codeMartin Schanzenbach2024-03-06
|
* udp communicator: ECDH with elligatorPedram Fardzadeh2024-03-06
|
* elligator: kem encaps and decapsPedram Fardzadeh2024-03-06
|
* elligator: code cleanupPedram Fardzadeh2024-03-06
|
* crypto: fix elligator warningsMartin Schanzenbach2024-03-01
|
* util: initial elligator implementationPedram Fardzadeh2024-02-28
|
* CRYPTO: Improve comments for ECC DHv0.21.0-talerdev.6Martin Schanzenbach2024-02-27
| | | | NEWS:-
* Merge branch 'master' of ssh://git.gnunet.org/gnunetTheJackiMonster2023-11-14
|\
| * -add more functions for new blinding APIChristian Grothoff2023-10-27
| |
| * more work on new blind signing APIChristian Grothoff2023-10-27
| |
| * more work on new blind signature API and implementationChristian Grothoff2023-10-27
| |
| * distinguish blinding and session noncesChristian Grothoff2023-10-27
| |
| * new blind signing logicChristian Grothoff2023-10-27
| |
| * NEWS: major revision of blind signature APIChristian Grothoff2023-10-27
| |
| * BUILD: Allow plugins to build before higher-level componentsMartin Schanzenbach2023-10-19
| |
| * NEWS: Refactoring components under src/ into lib/, plugin/, cli/ and service/Martin Schanzenbach2023-10-18
| | | | | | | | | | This also includes a necessary API refactoring of crypto from IDENTITY to UTIL.
| * BUILD: Silence int/enum mismatch compiler warnings and curl deprecated definesMartin Schanzenbach2023-09-23
| |
* | -minor additional cleanupTheJackiMonster2023-11-10
| | | | | | | | Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
* | MESSENGER: Separate peer and member signed messagesTheJackiMonster2023-11-10
|/ | | | Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
* NEWS: Added new CCA-secure KEM and use in IDENTITY encryptionMartin Schanzenbach2023-07-16
|
* NEWS: Add KEM API to avoid ephemeral private key managementMartin Schanzenbach2023-07-15
|
* -doxChristian Grothoff2023-05-04
|
* -more util include cleanupsMartin Schanzenbach2022-12-05
|
* UTIL: Allow only inlcusion of util glib-style.Martin Schanzenbach2022-12-04
|
* BUILD: Attempt to disentable platform.h, gnunet_common.h and ↵Martin Schanzenbach2022-12-04
| | | | gnunet_private_config.h insanity
* BUILD: Improve platform-specific includesMartin Schanzenbach2022-12-01
| | | | | | | | | | | This change allows third party programs to use gnunet either with the platform header from the sources used to build to gnunet, or use their own platform header by defining GNUNET_CUSTOM_PLATFORM_H which will be included in its stead. This also means that programs no longer must include "platform.h" (or similar) manually. The change (should be) backwards compatible to some degree. Fixes #4615
* -DOC: Documentation cleanup pass through rest of UTIL librariesWillow Liquorice2022-10-03
|
* -DOC: Minor fixes to doc comments (mostly correcting typos) to resolve ↵Willow Liquorice2022-10-03
| | | | 'unknown command' warnings
* -fix coverity; remove unnecessary APIMartin Schanzenbach2022-09-01
|
* Merge branch 'dev/trizuz/siop'Martin Schanzenbach2022-08-31
|\
| * -switch to EdDSA egos only for signature rest endpointTristan Schwieren2022-08-26
| |
| * -sign rest api + unfinished testTristan Schwieren2022-08-26
| |
| * - siop for reclaim; A rest endpoint that signs stuffTristan Schwieren2022-08-26
| |
* | -DOC: First pass through GNUnet cryptoWillow Liquorice2022-08-30
| |
* | double-check GP/PP are finenlnet-r5n-auditChristian Grothoff2022-08-25
| |
* | DOC: Major doxygen organisation work, upgraded config, updated logoWillow Liquorice2022-08-21
|/
* -fix typosChristian Grothoff2022-06-26
|
* -typoChristian Grothoff2022-04-04
|
* 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
|
* fix #7173Christian Grothoff2022-02-21
|
* add salt argument to GNUNET_CRYPTO_CS_r_derive()Christian Grothoff2022-02-20
|
* -DHT: clean up peer selection logicChristian Grothoff2022-01-02
|
* revise DHT hashing functions, add test logicChristian Grothoff2022-01-02
|
* changed derive_secrets APIGian Demarmels2021-12-21
| | | | | | | | changed derive_secrets API repaired performance test uncrustify
* -fix ftbfsMartin Schanzenbach2021-12-13
|
* add crypto_cs implementationLucien Heuzeveldt2021-12-07
|
* add pk invariant checkChristian Grothoff2021-11-25
|