diff options
Diffstat (limited to 'src/shared/Auth/BigNumber.h')
-rw-r--r-- | src/shared/Auth/BigNumber.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/shared/Auth/BigNumber.h b/src/shared/Auth/BigNumber.h index 898f53c2a05..f1b3a0beda2 100644 --- a/src/shared/Auth/BigNumber.h +++ b/src/shared/Auth/BigNumber.h @@ -17,10 +17,14 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + #ifndef _AUTH_BIGNUMBER_H #define _AUTH_BIGNUMBER_H + #include "Common.h" + struct bignum_st; + class BigNumber { public: @@ -28,12 +32,16 @@ class BigNumber BigNumber(const BigNumber &bn); BigNumber(uint32); ~BigNumber(); + void SetDword(uint32); void SetQword(uint64); void SetBinary(const uint8 *bytes, int len); void SetHexStr(const char *str); + void SetRand(int numbits); + BigNumber operator=(const BigNumber &bn); + BigNumber operator+=(const BigNumber &bn); BigNumber operator+(const BigNumber &bn) { @@ -64,15 +72,22 @@ class BigNumber BigNumber t(*this); return t %= bn; } + bool isZero() const; + BigNumber ModExp(const BigNumber &bn1, const BigNumber &bn2); BigNumber Exp(const BigNumber &); + int GetNumBytes(void); + struct bignum_st *BN() { return _bn; } + uint32 AsDword(); uint8* AsByteArray(int minSize = 0); + const char *AsHexStr(); const char *AsDecStr(); + private: struct bignum_st *_bn; uint8 *_array; |