Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
BigNumber Class Reference

#include <BigNumber.h>

Public Member Functions

char * AsDecStr () const
uint32 AsDword ()
char * AsHexStr () const
 BigNumber ()
 BigNumber (BigNumber const &bn)
 BigNumber (int32 v)
template<size_t Size>
 BigNumber (std::array< uint8, Size > const &v, bool littleEndian=true)
 BigNumber (std::string const &v)
 BigNumber (uint32 v)
struct bignum_st * BN ()
struct bignum_st const * BN () const
BigNumber Exp (BigNumber const &) const
void GetBytes (uint8 *buf, size_t bufsize, bool littleEndian=true) const
int32 GetNumBytes (void) const
bool isZero () const
BigNumber ModExp (BigNumber const &bn1, BigNumber const &bn2) const
BigNumber operator% (BigNumber const &bn) const
BigNumber operator%= (BigNumber const &bn)
BigNumber operator* (BigNumber const &bn) const
BigNumber operator*= (BigNumber const &bn)
BigNumber operator+ (BigNumber const &bn) const
BigNumber operator+= (BigNumber const &bn)
BigNumber operator- (BigNumber const &bn) const
BigNumber operator-= (BigNumber const &bn)
BigNumber operator/ (BigNumber const &bn) const
BigNumber operator/= (BigNumber const &bn)
BigNumberoperator= (BigNumber const &bn)
template<typename Container>
auto SetBinary (Container const &c, bool littleEndian=true) -> std::enable_if_t<!std::is_pointer_v< std::decay_t< Container > > >
void SetBinary (uint8 const *bytes, int32 len, bool littleEndian=true)
void SetDword (int32)
void SetDword (uint32)
void SetHexStr (char const *str)
void SetHexStr (std::string const &str)
void SetQword (uint64)
void SetRand (int32 numbits)
template<std::size_t Size>
std::array< uint8, Size > ToByteArray (bool littleEndian=true) const
std::vector< uint8ToByteVector (int32 minSize=0, bool littleEndian=true) const
 ~BigNumber ()

Private Attributes

struct bignum_st * _bn

Detailed Description

Definition at line 18 of file BigNumber.h.

Constructor & Destructor Documentation

◆ BigNumber() [1/6]

◆ BigNumber() [2/6]

BigNumber::BigNumber ( BigNumber const & bn)

Definition at line 15 of file BigNumber.cpp.

References _bn, BigNumber(), and BN().

◆ BigNumber() [3/6]

BigNumber::BigNumber ( uint32 v)
inline

Definition at line 23 of file BigNumber.h.

References BigNumber(), and SetDword().

◆ BigNumber() [4/6]

BigNumber::BigNumber ( int32 v)
inline

Definition at line 24 of file BigNumber.h.

References BigNumber(), and SetDword().

◆ BigNumber() [5/6]

BigNumber::BigNumber ( std::string const & v)
inline

Definition at line 25 of file BigNumber.h.

References BigNumber(), and SetHexStr().

◆ BigNumber() [6/6]

template<size_t Size>
BigNumber::BigNumber ( std::array< uint8, Size > const & v,
bool littleEndian = true )
inline

Definition at line 27 of file BigNumber.h.

References BigNumber(), and SetBinary().

◆ ~BigNumber()

BigNumber::~BigNumber ( )

Definition at line 20 of file BigNumber.cpp.

References _bn.

Member Function Documentation

◆ AsDecStr()

char * BigNumber::AsDecStr ( ) const

Definition at line 208 of file BigNumber.cpp.

References _bn.

◆ AsDword()

uint32 BigNumber::AsDword ( )

Definition at line 158 of file BigNumber.cpp.

References _bn.

◆ AsHexStr()

char * BigNumber::AsHexStr ( ) const

Definition at line 203 of file BigNumber.cpp.

References _bn.

◆ BN() [1/2]

struct bignum_st * BigNumber::BN ( )
inline

Definition at line 86 of file BigNumber.h.

References _bn.

Referenced by BigNumber().

◆ BN() [2/2]

struct bignum_st const * BigNumber::BN ( ) const
inline

Definition at line 87 of file BigNumber.h.

References _bn.

◆ Exp()

BigNumber BigNumber::Exp ( BigNumber const & bn) const

Definition at line 129 of file BigNumber.cpp.

References _bn, and BigNumber().

◆ GetBytes()

void BigNumber::GetBytes ( uint8 * buf,
size_t bufsize,
bool littleEndian = true ) const

Definition at line 169 of file BigNumber.cpp.

References _bn, ASSERT, and GetNumBytes().

Referenced by ToByteArray(), and ToByteVector().

◆ GetNumBytes()

int32 BigNumber::GetNumBytes ( void ) const

Definition at line 153 of file BigNumber.cpp.

References _bn.

Referenced by GetBytes(), and ToByteVector().

◆ isZero()

bool BigNumber::isZero ( ) const

Definition at line 163 of file BigNumber.cpp.

References _bn.

◆ ModExp()

BigNumber BigNumber::ModExp ( BigNumber const & bn1,
BigNumber const & bn2 ) const

Definition at line 141 of file BigNumber.cpp.

References _bn, and BigNumber().

◆ operator%()

BigNumber BigNumber::operator% ( BigNumber const & bn) const
inline

Definition at line 73 of file BigNumber.h.

References BigNumber().

◆ operator%=()

BigNumber BigNumber::operator%= ( BigNumber const & bn)

Definition at line 118 of file BigNumber.cpp.

References _bn, and BigNumber().

◆ operator*()

BigNumber BigNumber::operator* ( BigNumber const & bn) const
inline

Definition at line 59 of file BigNumber.h.

References BigNumber().

◆ operator*=()

BigNumber BigNumber::operator*= ( BigNumber const & bn)

Definition at line 96 of file BigNumber.cpp.

References _bn, and BigNumber().

◆ operator+()

BigNumber BigNumber::operator+ ( BigNumber const & bn) const
inline

Definition at line 45 of file BigNumber.h.

References BigNumber().

◆ operator+=()

BigNumber BigNumber::operator+= ( BigNumber const & bn)

Definition at line 84 of file BigNumber.cpp.

References _bn, and BigNumber().

◆ operator-()

BigNumber BigNumber::operator- ( BigNumber const & bn) const
inline

Definition at line 52 of file BigNumber.h.

References BigNumber().

◆ operator-=()

BigNumber BigNumber::operator-= ( BigNumber const & bn)

Definition at line 90 of file BigNumber.cpp.

References _bn, and BigNumber().

◆ operator/()

BigNumber BigNumber::operator/ ( BigNumber const & bn) const
inline

Definition at line 66 of file BigNumber.h.

References BigNumber().

◆ operator/=()

BigNumber BigNumber::operator/= ( BigNumber const & bn)

Definition at line 107 of file BigNumber.cpp.

References _bn, and BigNumber().

◆ operator=()

BigNumber & BigNumber::operator= ( BigNumber const & bn)

Definition at line 75 of file BigNumber.cpp.

References _bn, and BigNumber().

◆ SetBinary() [1/2]

template<typename Container>
auto BigNumber::SetBinary ( Container const & c,
bool littleEndian = true ) -> std::enable_if_t<!std::is_pointer_v< std::decay_t< Container > > >
inline

Definition at line 36 of file BigNumber.h.

References SetBinary().

Referenced by SetBinary().

◆ SetBinary() [2/2]

void BigNumber::SetBinary ( uint8 const * bytes,
int32 len,
bool littleEndian = true )

Definition at line 44 of file BigNumber.cpp.

References _bn.

Referenced by AuthSocket::_HandleReconnectProof(), and BigNumber().

◆ SetDword() [1/2]

void BigNumber::SetDword ( int32 val)

Definition at line 25 of file BigNumber.cpp.

References _bn, and SetDword().

Referenced by BigNumber(), BigNumber(), and SetDword().

◆ SetDword() [2/2]

void BigNumber::SetDword ( uint32 val)

Definition at line 32 of file BigNumber.cpp.

References _bn.

◆ SetHexStr() [1/2]

void BigNumber::SetHexStr ( char const * str)

Definition at line 65 of file BigNumber.cpp.

References _bn.

Referenced by BigNumber(), and WardenCheckMgr::LoadWardenChecks().

◆ SetHexStr() [2/2]

void BigNumber::SetHexStr ( std::string const & str)
inline

Definition at line 38 of file BigNumber.h.

References SetHexStr().

Referenced by SetHexStr().

◆ SetQword()

void BigNumber::SetQword ( uint64 val)

Definition at line 37 of file BigNumber.cpp.

References _bn.

◆ SetRand()

void BigNumber::SetRand ( int32 numbits)

Definition at line 70 of file BigNumber.cpp.

References _bn.

Referenced by AuthSocket::_HandleLogonChallenge(), and Master::Run().

◆ ToByteArray()

template<std::size_t Size>
std::array< uint8, Size > BigNumber::ToByteArray ( bool littleEndian = true) const
inline

◆ ToByteVector()

std::vector< uint8 > BigNumber::ToByteVector ( int32 minSize = 0,
bool littleEndian = true ) const

Definition at line 194 of file BigNumber.cpp.

References GetBytes(), and GetNumBytes().

Referenced by WardenWin::HandleData(), and WardenWin::RequestData().

Member Data Documentation

◆ _bn


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