all repos — TinyCrypT @ d96ea97714563f26e5d26ab3a3cd6d41620a46ac

Short and sweet classical cryptographic primitives

Cleanup
Juniper Beatitudes [email protected]
Fri, 02 Jan 2026 17:13:21 -0600
commit

d96ea97714563f26e5d26ab3a3cd6d41620a46ac

parent

43e5111ab6cd81f31651342552a4b451f9f0fff2

2 files changed, 12 insertions(+), 35 deletions(-)

jump to
M tinycrypt/ed25519.ctinycrypt/ed25519.c

@@ -142,7 +142,7 @@

return !(buf[32] & (1 << 7)); } -void +static void add512 (uint8_t *h, const uint8_t *c) { uint16_t acc = 0;

@@ -178,20 +178,7 @@ acc >>= 8;

} } -bool -greater512 (const uint8_t *a, const uint8_t *b) -{ - uint8_t buf[64]; - for (unsigned int i = 0; i < 64; ++i) - { - buf[i] = a[i]; - } - sub512 (buf, b); - - return !(buf[63] & (1 << 7)); -} - -bool +static bool greater512_unsigned (const uint8_t *a, const uint8_t *b) { uint8_t a_int[65], b_int[65];

@@ -207,7 +194,7 @@

return !(a_int[64] & (1 << 7)); } -void +static void modp512 (const uint8_t *in, uint8_t *out) { const uint8_t P[64] = {

@@ -246,7 +233,7 @@ out[i] = accumulator[i];

} } -void +static void mult256_modp (const uint8_t *a, const uint8_t *b, uint8_t *out) { uint8_t intermediate[64];

@@ -290,7 +277,7 @@ add512 (intermediates[0], intermediates[1]);

modp512 (intermediates[0], out); } -void +static void inv256_modp (const uint8_t *x, uint8_t *out) { uint8_t buf[64];

@@ -471,7 +458,7 @@ mult256_modp (intermediates[4], intermediates[5], z3);

mult256_modp (intermediates[3], intermediates[6], t3); } -bool +static bool points_eq (const uint8_t *x1, const uint8_t *y1, const uint8_t *z1, const uint8_t *t1, const uint8_t *x2, const uint8_t *y2, const uint8_t *z2, const uint8_t *t2)

@@ -612,7 +599,7 @@ out[i] = i0[i];

} } -void +static void xB_lowmem (const uint8_t *k, uint8_t *x, uint8_t *y, uint8_t *z, uint8_t *t) { const uint8_t BX[32] = {

@@ -669,7 +656,7 @@ #ifndef TCT_LOWMEM

#include "tinycrypt/ed25519_precompute.h" -void +static void xB (const uint8_t *k, uint8_t *x, uint8_t *y, uint8_t *z, uint8_t *t) { const uint8_t ONE[32] = {

@@ -720,7 +707,7 @@ }

#else -void +static void xB (const uint8_t *k, uint8_t *x, uint8_t *y, uint8_t *z, uint8_t *t) { xB_lowmem (k, x, y, z, t);
M tinycrypt/ed25519.htinycrypt/ed25519.h

@@ -20,19 +20,9 @@ bool tct_ed25519_verify (const uint8_t *pubkey, const uint8_t *msg,

const uint64_t msg_len, uint8_t *working_buf, const uint8_t *signature); +/// Constructs a memory-speed-tradeoff lookup table for use in Ed25519 +/// verifications, similar (but larger by ~2x) to the method described in +/// https://ed25519.cr.yp.to/ed25519-20110926.pdf. void tct_ed25519_pctable_gen (uint8_t *out); - -void xB (const uint8_t *k, uint8_t *x, uint8_t *y, uint8_t *z, uint8_t *t); - -void inv256_modp (const uint8_t *x, uint8_t *out); - -void mult256_modp (const uint8_t *a, const uint8_t *b, uint8_t *out); - -bool points_eq (const uint8_t *x1, const uint8_t *y1, const uint8_t *z1, - const uint8_t *t1, const uint8_t *x2, const uint8_t *y2, - const uint8_t *z2, const uint8_t *t2); - -void xB_lowmem (const uint8_t *k, uint8_t *x, uint8_t *y, uint8_t *z, - uint8_t *t); #endif