Crate clock_bigint

Crate clock_bigint 

Source
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-bigint operations.
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.