![]() |
Signet Forge 0.1.0
C++20 Parquet library with AI-native extensions
|
DEMO |
Typedefs | |
| using | Fe = std::array< int32_t, 10 > |
| GF(2^255-19) field element: 10 limbs, radix 2^25.5 (alternating 26 and 25 bits). | |
Functions | |
| Fe | fe_from_bytes (const uint8_t *b) |
| Load 32 little-endian bytes into a 10-limb field element. | |
| void | fe_carry_10 (Fe &h) |
| Fe | fe_add (Fe a, const Fe &b) |
| Fe | fe_sub (Fe a, const Fe &b) |
| Fe | fe_mul (const Fe &f, const Fe &g) |
| Fe | fe_sq (const Fe &a) |
| void | fe_to_bytes (uint8_t *out, Fe h) |
| void | fe_cswap (Fe &a, Fe &b, uint64_t swap) |
| Fe | fe_inv (const Fe &z) |
| std::array< uint8_t, 32 > | clamp_scalar (std::array< uint8_t, 32 > k) |
| Clamp a 32-byte scalar per RFC 7748 §5. | |
| std::array< uint8_t, 32 > | x25519_raw (const std::array< uint8_t, 32 > &scalar, const std::array< uint8_t, 32 > &point_u) |
| X25519 scalar multiplication: result = scalar * point. | |
| expected< std::array< uint8_t, 32 > > | x25519 (const std::array< uint8_t, 32 > &scalar, const std::array< uint8_t, 32 > &u_coord) |
| Compute X25519(scalar, u_coord). | |
| const std::array< uint8_t, 32 > & | base_point () |
| The X25519 base point u=9, encoded as 32 LE bytes. | |
| expected< std::pair< std::array< uint8_t, 32 >, std::array< uint8_t, 32 > > > | generate_keypair () |
| Generate a new X25519 keypair. | |
| using signet::forge::crypto::detail::x25519::Fe = typedef std::array<int32_t, 10> |
GF(2^255-19) field element: 10 limbs, radix 2^25.5 (alternating 26 and 25 bits).
Definition at line 335 of file post_quantum.hpp.
|
inline |
The X25519 base point u=9, encoded as 32 LE bytes.
Definition at line 610 of file post_quantum.hpp.
|
inline |
Clamp a 32-byte scalar per RFC 7748 §5.
Clear bits 0,1,2 of byte 0; clear bit 7 of byte 31; set bit 6 of byte 31.
Definition at line 491 of file post_quantum.hpp.
Definition at line 366 of file post_quantum.hpp.
|
inline |
Definition at line 356 of file post_quantum.hpp.
Definition at line 454 of file post_quantum.hpp.
|
inline |
Load 32 little-endian bytes into a 10-limb field element.
Definition at line 338 of file post_quantum.hpp.
Definition at line 462 of file post_quantum.hpp.
Definition at line 393 of file post_quantum.hpp.
Definition at line 418 of file post_quantum.hpp.
Definition at line 371 of file post_quantum.hpp.
|
inline |
Definition at line 420 of file post_quantum.hpp.
|
inline |
Generate a new X25519 keypair.
secret_key: 32 random clamped bytes. public_key: X25519(secret_key, base_point).
Definition at line 622 of file post_quantum.hpp.
|
inline |
Compute X25519(scalar, u_coord).
scalar is clamped per RFC 7748. Returns expected<array<uint8_t,32>>. Returns error if result is the all-zero output (low-order point / invalid input).
Definition at line 583 of file post_quantum.hpp.
|
inline |
X25519 scalar multiplication: result = scalar * point.
Returns 32-byte output (little-endian u-coordinate of result point). Returns all-zero if result is the low-order point (invalid input).
Definition at line 501 of file post_quantum.hpp.