69#ifndef PROTOCORE_BIGNUM_H
70#define PROTOCORE_BIGNUM_H
169int bn_cmp_raw(
const uint32_t *a,
const uint32_t *b,
int n);
void bn_to_bytes(uint8_t bytes[256], const pc_bignum *in)
Write a pc_bignum as a 256-byte big-endian array.
const pc_bignum group14_g
Generator for group-14: g = 2.
int bn_cmp(const pc_bignum *a, const pc_bignum *b)
Compare two pc_bignum values.
const pc_bignum group14_p
The RFC 3526 MODP group-14 prime (2048-bit).
int bn_is_zero(const pc_bignum *a)
Return non-zero if a is zero (all limbs zero).
#define PC_BN_LIMBS
Number of 32-bit limbs in a 2048-bit integer.
void bn_from_bytes(pc_bignum *out, const uint8_t *bytes, size_t len)
Read a big-endian byte array of len bytes into a pc_bignum.
void bn_expmod_group14(pc_bignum *out, const pc_bignum *base, const pc_bignum *exp)
int bn_dh_validate(const pc_bignum *v)
Validate a received DH public value.
int bn_cmp_raw(const uint32_t *a, const uint32_t *b, int n)
Compute out = base^exp mod group14_p.
User-facing configuration for ProtoCore.
Secure pool accessor - borrows that hold key material.
A 2048-bit unsigned integer stored as 64 little-endian 32-bit limbs.
uint32_t d[PC_BN_LIMBS]
256 bytes of magnitude, little-endian limbs.