Expand description
§clock-bigint
Deterministic constant-time big integers for blockchain consensus engines.
This crate implements the ClockinChain Big Integer specifications:
- Representation Specification v1.0
- Arithmetic Algorithm Specification v1.0
- Montgomery & Modular Exponentiation Specification v1.0
- Gas Schedule Specification v1.0
§Features
- Deterministic: Bit-for-bit identical results across all platforms
- Constant-time: All operations execute in constant time to prevent timing attacks
- Canonical encoding: Unique representation for each integer value
- Gas metering: Precomputable gas costs for VM execution
- Montgomery arithmetic: Full support for cryptographic operations
§Example
use clock_bigint::U256;
let a = U256::from_u64(10);
let b = U256::from_u64(20);
// Operations will be implemented...Re-exports§
pub use error::BigIntError;pub use error::Result;pub use gas::G_BASE;pub use gas::Gas;pub use gas::MAX_LIMBS;pub use limbs::Limb;pub use limbs::WideLimb;pub use types::BigInt;pub use types::BigIntCore;pub use types::BigIntFixed;pub use types::U256;pub use types::U512;pub use types::U1024;pub use types::U2048;pub use add::add;pub use add::add_assign;pub use add::add_magnitude;pub use div::div;pub use div::div_assign;pub use div::div_rem;pub use div::rem;pub use div::rem_assign;pub use mul::mul;pub use mul::mul_assign;pub use mul::sqr;pub use sub::sub;pub use sub::sub_assign;pub use sub::sub_magnitude;pub use encode::decode;pub use encode::encode;pub use modexp::mod_pow;pub use montgomery::MontgomeryContext;pub use montgomery::from_mont;pub use montgomery::mont_add;pub use montgomery::mont_mul;pub use montgomery::mont_reduce;pub use montgomery::mont_sub;pub use montgomery::to_mont;pub use timeboxed::modexp_timeboxed;pub use timeboxed::mul_timeboxed;pub use timeboxed::resume;pub use timeboxed::ContinuationState;pub use timeboxed::OpType;pub use timeboxed::PartialResult;
Modules§
- add
- Addition operations for BigInt.
- ct
- Constant-time primitives for cryptographic operations.
- div
- Division and modulo operations for BigInt.
- encode
- Canonical encoding and decoding for BigInt.
- error
- Error types for
clock-bigintoperations. - gas
- Gas metering for BigInt operations.
- limbs
- Limb manipulation utilities for BigInt operations.
- modexp
- Modular exponentiation using Montgomery ladder.
- montgomery
- Montgomery modular arithmetic.
- mul
- Multiplication operations for BigInt.
- sub
- Subtraction operations for BigInt.
- timeboxed
- Time-sliced (pausable) operations for long-running computations.
- types
- Core BigInt types and traits.