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

#include <scalar.hpp>

Public Types

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

Public Member Functions

 Scalar ()
 
std::array< std::uint8_t, 32 > to_bytes () const
 
void write_bytes (std::uint8_t *out32) const noexcept
 
std::string to_hex () const
 
const limbs_typelimbs () const noexcept
 
Scalar operator+ (const Scalar &rhs) const
 
Scalar operator- (const Scalar &rhs) const
 
Scalar operator* (const Scalar &rhs) const
 
Scalaroperator+= (const Scalar &rhs)
 
Scalaroperator-= (const Scalar &rhs)
 
Scalaroperator*= (const Scalar &rhs)
 
bool is_zero () const noexcept
 
bool operator== (const Scalar &rhs) const noexcept
 
Scalar inverse () const
 
Scalar negate () const
 
bool is_even () const noexcept
 
::secp256k1::ScalarData data () const noexcept
 
std::uint8_t bit (std::size_t index) const
 
std::vector< int8_t > to_naf () const
 
std::vector< int8_t > to_wnaf (unsigned width) const
 

Static Public Member Functions

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

Detailed Description

Definition at line 14 of file scalar.hpp.

Member Typedef Documentation

◆ limbs_type

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

Definition at line 16 of file scalar.hpp.

Constructor & Destructor Documentation

◆ Scalar()

secp256k1::fast::Scalar::Scalar ( )

Member Function Documentation

◆ bit()

std::uint8_t secp256k1::fast::Scalar::bit ( std::size_t  index) const

◆ data()

::secp256k1::ScalarData secp256k1::fast::Scalar::data ( ) const
inlinenoexcept

Definition at line 69 of file scalar.hpp.

◆ from_bytes() [1/2]

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

◆ from_bytes() [2/2]

static Scalar secp256k1::fast::Scalar::from_bytes ( const std::uint8_t *  bytes32)
static

◆ from_data()

static Scalar secp256k1::fast::Scalar::from_data ( const ::secp256k1::ScalarData d)
inlinestatic

Definition at line 74 of file scalar.hpp.

References from_limbs().

◆ from_hex()

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

◆ from_limbs()

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

Referenced by from_data().

◆ from_uint64()

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

◆ inverse()

Scalar secp256k1::fast::Scalar::inverse ( ) const

◆ is_even()

bool secp256k1::fast::Scalar::is_even ( ) const
noexcept

◆ is_zero()

bool secp256k1::fast::Scalar::is_zero ( ) const
noexcept

◆ limbs()

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

Definition at line 44 of file scalar.hpp.

◆ negate()

Scalar secp256k1::fast::Scalar::negate ( ) const

Referenced by ufsecp_seckey_negate().

◆ one()

static Scalar secp256k1::fast::Scalar::one ( )
static

◆ operator*()

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

◆ operator*=()

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

◆ operator+()

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

◆ operator+=()

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

◆ operator-()

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

◆ operator-=()

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

◆ operator==()

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

◆ parse_bytes_strict() [1/2]

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

◆ parse_bytes_strict() [2/2]

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

Referenced by scalar_parse_strict().

◆ parse_bytes_strict_nonzero() [1/2]

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

◆ parse_bytes_strict_nonzero() [2/2]

static bool secp256k1::fast::Scalar::parse_bytes_strict_nonzero ( const std::uint8_t *  bytes32,
Scalar out 
)
staticnoexcept

◆ to_bytes()

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

◆ to_hex()

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

◆ to_naf()

std::vector< int8_t > secp256k1::fast::Scalar::to_naf ( ) const

◆ to_wnaf()

std::vector< int8_t > secp256k1::fast::Scalar::to_wnaf ( unsigned  width) const

◆ write_bytes()

void secp256k1::fast::Scalar::write_bytes ( std::uint8_t *  out32) const
noexcept

◆ zero()

static Scalar secp256k1::fast::Scalar::zero ( )
static

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