UltrafastSecp256k1 3.50.0
Ultra high-performance secp256k1 elliptic curve cryptography library
Loading...
Searching...
No Matches
secp256k1::fast::FieldElement Class Reference

#include <field.hpp>

Public Types

using limbs_type = std::array< std::uint64_t, 4 >
 

Public Member Functions

 FieldElement ()
 
std::array< std::uint8_t, 32 > to_bytes () const
 
void to_bytes_into (std::uint8_t *out) const noexcept
 
std::string to_hex () const
 
const limbs_typelimbs () const noexcept
 
limbs_typelimbs_mut () noexcept
 
FieldElement operator+ (const FieldElement &rhs) const
 
FieldElement operator- (const FieldElement &rhs) const
 
FieldElement operator* (const FieldElement &rhs) const
 
FieldElement square () const
 
FieldElement inverse () const
 
FieldElement sqrt () const
 
FieldElementoperator+= (const FieldElement &rhs)
 
FieldElementoperator-= (const FieldElement &rhs)
 
FieldElementoperator*= (const FieldElement &rhs)
 
FieldElement negate (unsigned magnitude=1) const
 
void negate_assign (unsigned magnitude=1)
 
void square_inplace ()
 
void inverse_inplace ()
 
bool operator== (const FieldElement &rhs) const noexcept
 
::secp256k1::FieldElementData data () const noexcept
 

Static Public Member Functions

static FieldElement zero ()
 
static FieldElement one ()
 
static FieldElement from_uint64 (std::uint64_t value)
 
static FieldElement from_limbs (const limbs_type &limbs)
 
static FieldElement from_bytes (const std::array< std::uint8_t, 32 > &bytes)
 
static bool parse_bytes_strict (const std::uint8_t *bytes32, FieldElement &out) noexcept
 
static bool parse_bytes_strict (const std::array< std::uint8_t, 32 > &bytes, FieldElement &out) noexcept
 
static FieldElement from_mont (const FieldElement &a)
 
static FieldElement from_hex (const std::string &hex)
 
static FieldElement from_limbs_raw (const limbs_type &limbs) noexcept
 
static FieldElement from_data (const ::secp256k1::FieldElementData &d)
 

Detailed Description

Definition at line 30 of file field.hpp.

Member Typedef Documentation

◆ limbs_type

using secp256k1::fast::FieldElement::limbs_type = std::array<std::uint64_t, 4>

Definition at line 32 of file field.hpp.

Constructor & Destructor Documentation

◆ FieldElement()

secp256k1::fast::FieldElement::FieldElement ( )

Member Function Documentation

◆ data()

::secp256k1::FieldElementData secp256k1::fast::FieldElement::data ( ) const
inlinenoexcept

Definition at line 102 of file field.hpp.

◆ from_bytes()

static FieldElement secp256k1::fast::FieldElement::from_bytes ( const std::array< std::uint8_t, 32 > &  bytes)
static

◆ from_data()

static FieldElement secp256k1::fast::FieldElement::from_data ( const ::secp256k1::FieldElementData d)
inlinestatic

Definition at line 107 of file field.hpp.

◆ from_hex()

static FieldElement secp256k1::fast::FieldElement::from_hex ( const std::string &  hex)
static

◆ from_limbs()

static FieldElement secp256k1::fast::FieldElement::from_limbs ( const limbs_type limbs)
static

◆ from_limbs_raw()

static FieldElement secp256k1::fast::FieldElement::from_limbs_raw ( const limbs_type limbs)
inlinestaticnoexcept

◆ from_mont()

static FieldElement secp256k1::fast::FieldElement::from_mont ( const FieldElement a)
static

◆ from_uint64()

static FieldElement secp256k1::fast::FieldElement::from_uint64 ( std::uint64_t  value)
static

◆ inverse()

FieldElement secp256k1::fast::FieldElement::inverse ( ) const

◆ inverse_inplace()

void secp256k1::fast::FieldElement::inverse_inplace ( )

◆ limbs()

const limbs_type & secp256k1::fast::FieldElement::limbs ( ) const
inlinenoexcept

Definition at line 58 of file field.hpp.

Referenced by secp256k1::fast::field_is_zero(), and secp256k1::fast::field_select().

◆ limbs_mut()

limbs_type & secp256k1::fast::FieldElement::limbs_mut ( )
inlinenoexcept

Definition at line 62 of file field.hpp.

◆ negate()

FieldElement secp256k1::fast::FieldElement::negate ( unsigned  magnitude = 1) const

◆ negate_assign()

void secp256k1::fast::FieldElement::negate_assign ( unsigned  magnitude = 1)

◆ one()

static FieldElement secp256k1::fast::FieldElement::one ( )
static

◆ operator*()

FieldElement secp256k1::fast::FieldElement::operator* ( const FieldElement rhs) const

◆ operator*=()

FieldElement & secp256k1::fast::FieldElement::operator*= ( const FieldElement rhs)

◆ operator+()

FieldElement secp256k1::fast::FieldElement::operator+ ( const FieldElement rhs) const

◆ operator+=()

FieldElement & secp256k1::fast::FieldElement::operator+= ( const FieldElement rhs)

◆ operator-()

FieldElement secp256k1::fast::FieldElement::operator- ( const FieldElement rhs) const

◆ operator-=()

FieldElement & secp256k1::fast::FieldElement::operator-= ( const FieldElement rhs)

◆ operator==()

bool secp256k1::fast::FieldElement::operator== ( const FieldElement rhs) const
noexcept

◆ parse_bytes_strict() [1/2]

static bool secp256k1::fast::FieldElement::parse_bytes_strict ( const std::array< std::uint8_t, 32 > &  bytes,
FieldElement out 
)
staticnoexcept

◆ parse_bytes_strict() [2/2]

static bool secp256k1::fast::FieldElement::parse_bytes_strict ( const std::uint8_t *  bytes32,
FieldElement out 
)
staticnoexcept

◆ sqrt()

FieldElement secp256k1::fast::FieldElement::sqrt ( ) const

◆ square()

◆ square_inplace()

void secp256k1::fast::FieldElement::square_inplace ( )

◆ to_bytes()

std::array< std::uint8_t, 32 > secp256k1::fast::FieldElement::to_bytes ( ) const

◆ to_bytes_into()

void secp256k1::fast::FieldElement::to_bytes_into ( std::uint8_t *  out) const
noexcept

◆ to_hex()

std::string secp256k1::fast::FieldElement::to_hex ( ) const

◆ zero()


The documentation for this class was generated from the following file: