aboutsummaryrefslogtreecommitdiff
path: root/src/shared/Auth/BigNumber.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/Auth/BigNumber.h')
-rw-r--r--src/shared/Auth/BigNumber.h15
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;