aiken/crypto/int256
This module implements arithmetic operations in a constrained 256-bit integer field. Operations are performed modulo , providing a field for cryptographic operations that require 32-byte values.
The module provides functionality for basic arithmetic operations (addition, subtraction, multiplication) within this constrained field, as well as conversion functions between different representations.
Types
Alias
State = bitwise.State<Bits256>Constants
Functions
Constructing
      
  
  
  
      
        
        Constructs a new Bits256 element from a Big-Endian (most-significant bits first) ByteArray.
      
    
  
  
      
        
        Constructs a new Bits256 element from a Little-Endian (least-significant bits first) ByteArray.
      
    
  
  
      
        
        Constructs a new Bits256 element from an integer, ensuring it’s within the valid range of the field.
      
    
  
  
      
        Modifying
      
  
  
  
      
        
        Exponentiates a Bits256 element by a non-negative integer exponent, using repeated squaring.
Note that this function returns zero for negative exponents.
      
    
  
  
      
        
        A faster version of scale for the case where the exponent is a power of two.
That is, the exponent  for some non-negative integer .
      
    
  
  
      
        Combining
      
  
  
  
      
        
        Adds two Bits256 elements, ensuring the result stays within the finite field range.
      
    
  
  
      
        
        Adds a ByteArray to a Bits256 element, interpreting bytes as a big-endian number.
      
    
  
  
      
    
  
  
      
        
        Multiplies two Bits256 elements, with the result constrained within the finite field.
      
    
  
  
      
        
        Multiplies a Bits256 element by a ByteArray, interpreting bytes as a big-endian number.
      
    
  
  
      
    
  
  
      
    
  
  
      
        
        Subtracts one Bits256 element from another, with the result wrapped within the finite field range.
      
    
  
  
      
        
        Subtracts a ByteArray from a Bits256 element, interpreting bytes as a big-endian number.
      
    
  
  
      
    
  
  
      
        Transforming
      
  
  
  
      
        
        Converts a Bits256 element to a Big-Endian (most-significant bits first) ByteArray.
      
    
  
  
      
        
        Converts a Bits256 element to a Little-Endian (least-significant bits first) ByteArray.
      
    
  
  
      
    
  
Constructs a new Bits256 element from a Big-Endian (most-significant bits first) ByteArray.
Constructs a new Bits256 element from a Little-Endian (least-significant bits first) ByteArray.
Constructs a new Bits256 element from an integer, ensuring it’s within the valid range of the field.
Exponentiates a Bits256 element by a non-negative integer exponent, using repeated squaring.
Note that this function returns zero for negative exponents.
A faster version of scale for the case where the exponent is a power of two.
That is, the exponent  for some non-negative integer .
Combining
      
  
  
  
      
        
        Adds two Bits256 elements, ensuring the result stays within the finite field range.
      
    
  
  
      
        
        Adds a ByteArray to a Bits256 element, interpreting bytes as a big-endian number.
      
    
  
  
      
    
  
  
      
        
        Multiplies two Bits256 elements, with the result constrained within the finite field.
      
    
  
  
      
        
        Multiplies a Bits256 element by a ByteArray, interpreting bytes as a big-endian number.
      
    
  
  
      
    
  
  
      
    
  
  
      
        
        Subtracts one Bits256 element from another, with the result wrapped within the finite field range.
      
    
  
  
      
        
        Subtracts a ByteArray from a Bits256 element, interpreting bytes as a big-endian number.
      
    
  
  
      
    
  
  
      
        Transforming
      
  
  
  
      
        
        Converts a Bits256 element to a Big-Endian (most-significant bits first) ByteArray.
      
    
  
  
      
        
        Converts a Bits256 element to a Little-Endian (least-significant bits first) ByteArray.
      
    
  
  
      
    
  
Adds two Bits256 elements, ensuring the result stays within the finite field range.
Adds a ByteArray to a Bits256 element, interpreting bytes as a big-endian number.
Multiplies two Bits256 elements, with the result constrained within the finite field.
Multiplies a Bits256 element by a ByteArray, interpreting bytes as a big-endian number.
Subtracts one Bits256 element from another, with the result wrapped within the finite field range.
Subtracts a ByteArray from a Bits256 element, interpreting bytes as a big-endian number.
Converts a Bits256 element to a Big-Endian (most-significant bits first) ByteArray.
Converts a Bits256 element to a Little-Endian (least-significant bits first) ByteArray.