aboutsummaryrefslogtreecommitdiff
path: root/src/util/Makefile.am
Commit message (Collapse)AuthorAge
* 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.
* UTIL: fix ftbfsMartin Schanzenbach2023-10-14
|
* meson: add most tests and testsuitesMartin Schanzenbach2023-10-14
|
* UTIL: Incorporate nt component. Fixes #7955Martin Schanzenbach2023-10-13
|
* UTIL: use dedicated marker in ready queue.ulfvonbelow2023-02-06
| | | | | | | | | | | | | | | This inserts a dedicated dummy marker task at the end of the ready queue at the start of a pass. Because this marker task isn't visible to users of the scheduler, it can't be canceled while the pass is being run. Additionally, switching which ready queue is being run partway through by scheduling a higher-priority task to immediately run also places this dummy marker. This resolves both erroneous cases by which a pass can accidentally run an unbounded number of tasks. This also modifies GNUNET_SCHEDULER_get_load to not be misled by this extra dummy task, and adds the now-passing test cases to the test suite. Signed-off-by: Christian Grothoff <christian@grothoff.org>
* UTIL: add test demonstrating scheduler bug, don't run it by default.ulfvonbelow2023-02-06
| | | | | | | | | | | | | | | | | | These demonstrate a bug in the scheduler by which a task can prevent any other task from running for an arbitrarily long time despite regularly yielding to the scheduler. It is caused by a faulty check in GNUNET_SCHEDULER_do_work that assumes that the task that was the last in the queue when the pass began will still be in the same relative position when the pass ends, and uses this assumption to detect the end of the current pass. This assumption fails when the last task of the current pass is canceled after the pass has started. It also fails when we schedule a higher-priority task to run immediately, causing work_priority to immediately switch such that we now process a queue that doesn't contain the pass-ending task we're looking for. These tests are built, but not run by 'make check' yet, since they currently fail. You can manually verify that they do currently fail. Signed-off-by: Christian Grothoff <christian@grothoff.org>
* - move from libexec to noinstMartin Schanzenbach2023-01-05
|
* GNSRECORD/UTIL: Move test vector generation binaries to libexecMartin Schanzenbach2023-01-05
| | | | | Those are not really user-facing programs and not fully documented (i.e. no man pages) so they should go into libexec.
* -fix old test file referenceMartin Schanzenbach2022-12-05
|
* Large refactor in order to restore some sanity with respect to private ↵Martin Schanzenbach2022-12-04
| | | | defines used in headers
* -fix FTBFS issuesChristian Grothoff2022-10-26
|
* NAMESTORE: Introduce GANA-managed error codesMartin Schanzenbach2022-10-23
|
* 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 }
* introducing GNUNET_TIME_TimestampChristian Grothoff2021-12-14
|
* add crypto_cs testing and benchmarkGian Demarmels2021-12-07
|
* add crypto_cs implementationLucien Heuzeveldt2021-12-07
|
* Allow gnunet-qr to read codes from PNG picturesAlessio Vanni2021-11-21
|
* BUILD: Remove --disable-testing. Issue #7033Martin Schanzenbach2021-10-11
|
* refactor gnunet-config to make preload hacks obsoleteChristian Grothoff2021-09-05
|
* -remove dead ats-tests, fix strange Debian build issuesChristian Grothoff2021-08-24
|
* -rename plugin, otherwise plugin_test fails due to conflicting other plugin ↵Christian Grothoff2021-07-30
| | | | with the same prefix name
* config: extended diagnostics, import cycle detection, deterministic load orderFlorian Dold2021-07-28
|
* UTIL: Fix #6858Martin Schanzenbach2021-05-10
|
* migrate test as well, integrate child_management with libgnunetutilChristian Grothoff2021-05-03
|
* GNS: Add EDKEY support.Martin Schanzenbach2021-05-02
| | | | | | GNS and GNSRECORD can now handle EdDSA keys in addition to the existing ECDSA scheme. See also LSD0001.
* - unconditionally build dlogMartin Schanzenbach2021-04-26
|
* SCALARPRODUCT: migrating logic from libgcrypt to libsodium (#6818).Christian Grothoff2021-04-18
|
* UTIL/SCALARPRODUCT: Do not build ECC dlog or scalarproduct with incompatible ↵Martin Schanzenbach2021-03-30
| | | | libgcrypt versions (>=1.9.0)
* add base32 encoder/decoderChristian Grothoff2021-03-02
|
* change GNUNET_DISK_fn_write() to always do atomic writes and to NOT ↵Christian Grothoff2020-12-19
| | | | overwrite existing files; also change the return value to not return the size of the written file but GNUNET_OK on success, and integrate creating the directory if needed; breaks API, hence bumping libgnunetutil version
* add test vector unit testFlorian Dold2020-12-04
|
* gnunet-crypto-tvg: output JSON, fix memleaksFlorian Dold2020-12-04
| | | | | This commit also bumps the version of libgnunetutil, due to the spell checking fix to xts in rsa (un)blinding.
* use (and "GNUnet-ify") libyuarel as a basepoint for uri parsingJonathan Buchanan2020-08-26
|
* remove argon2 dependency. Use limited libsodium argon2id function for GNS ↵Martin Schanzenbach2020-05-26
| | | | and NSE
* move from tweetnacl (+custom hacks) -> only sodiumFlorian Dold2020-05-06
|
* add argon2 for LSD0001Schanzenbach, Martin2020-04-17
|
* adding a GNUNET_memcmp_priv for constant-time comparing of data; fixes #6152 ↵Christian Grothoff2020-04-03
| | | | (modulo actually finding specific places where this SHOULD be used instead of GNUNET_memcmp)
* adding MQ benchmarkChristian Grothoff2020-02-04
|
* add minimal scheduler benchmarkChristian Grothoff2020-02-04
|
* remove Taler-specific leftovers, we don't need them anymoreFlorian Dold2020-01-15
|
* add test vector generation for crypto opsFlorian Dold2020-01-15
|
* move buffer library from GNU Taler to GNUnetFlorian Dold2020-01-15
|
* add test for ecdsa ecdhSchanzenbach, Martin2020-01-06
|
* create crypto_pow, in preparation for #3795Christian Grothoff2019-11-30
|
* src/util: This should fix make dist failure (untested)ng02019-11-27
|
* use Curve25519 for ECDH and tweetnacl where we canFlorian Dold2019-11-26
| | | | | | | | | | | | This leads to some performance improvements and makes it easier to write software that interoperates with GNUnet / GNU Taler. It also avoids using the rather inconvenient libgcrypt APIs. We still need to keep libgcrypt though, as we need it for RSA, ECDSA and some other primitives. This change is still behind a #define NEW_CRYPTO, as it is a breaking change for both EdDSA (removing the superfluous additional hash) and for ECDHE (using Curve25519 instead of Ed25519).
* revert changes for gnunet-qr, see note in configure.acng02019-11-21
|
* comment secondary dependencies for -qrng02019-11-21
|
* add initial logic to detect zbar dependenciesng02019-11-21
| | | | | no idea if it's really required, but at the very least we need to be able to point to the X11 root.
* remove CYGWIN codeblocks, drop vendored Windows openvpn, drop win32 specific ↵ng02019-09-10
| | | | | | | | | files. configures and builds okay. testsuite wasn't checked, will be checked. diff including the plibc removal is now around 14370 lines of code less.