Open-Transactions  0.93.0-ge03d287
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Bank Class Reference

#include <bank.h>

Inheritance diagram for Bank:
Collaboration diagram for Bank:

Public Member Functions

 Bank (int nPrimeLength)
 
 Bank (BIO *bio)
 
 ~Bank ()
 
void InitCTX ()
 
void Dump ()
 
const BIGNUM * priv_key ()
 
BIGNUM * SignRequest (PublicCoinRequest &req)
 
boolean Verify (Coin &coin)
 
void WriteBIO (BIO *bio)
 
void ReadBIO (BIO *bio)
 
- Public Member Functions inherited from PublicBank
 PublicBank (Bank &bank)
 
 PublicBank (BIO *bio)
 
 PublicBank ()
 
 ~PublicBank ()
 
const BIGNUM * p () const
 
BIGNUM * g ()
 
BIGNUM * pub_key ()
 
void WriteBIO (BIO *bio)
 
void ReadBIO (BIO *bio)
 
void Dump ()
 
int CoinLength () const
 
int PrimeLength () const
 

Additional Inherited Members

- Protected Attributes inherited from PublicBank
DH * m_pDH
 

Detailed Description

Definition at line 75 of file bank.h.

Constructor & Destructor Documentation

Bank::Bank ( int  nPrimeLength)
inline

Definition at line 81 of file bank.h.

82  {
83  assert(nPrimeLength >= MIN_COIN_LENGTH+DIGEST_LENGTH);
84  m_pDH=DH_generate_parameters(nPrimeLength*8,DH_GENERATOR_5,cb,NULL);
85  assert(m_pDH);
86  assert(BN_num_bytes(m_pDH->p) == nPrimeLength); // can this fail? i.e. does OpenSSL check for length when generating?
87  int nRet=DH_generate_key(m_pDH);
88  assert(nRet);
89  m_ctx=NULL;
90  }
DH * m_pDH
Definition: bank.h:41
#define DIGEST_LENGTH
Definition: bank.h:15
#define MIN_COIN_LENGTH
Definition: bank.h:13
Bank::Bank ( BIO *  bio)
inline

Definition at line 91 of file bank.h.

92  {
93  m_ctx=NULL;
94  ReadBIO(bio);
95  }
void ReadBIO(BIO *bio)
Bank::~Bank ( )
inline

Definition at line 96 of file bank.h.

97  { BN_CTX_free(m_ctx); }

Member Function Documentation

void Bank::Dump ( )
inline

Definition at line 103 of file bank.h.

104  {
106  DumpNumber("k= ",m_pDH->priv_key);
107  }
void Dump()
Definition: bank.h:61
void DumpNumber(BIO *out, const char *szTitle, const BIGNUM *bn, const char *szTrailer=_NL)
DH * m_pDH
Definition: bank.h:41
void Bank::InitCTX ( )
inline

Definition at line 98 of file bank.h.

99  {
100  if(!m_ctx)
101  m_ctx=BN_CTX_new();
102  }
const BIGNUM* Bank::priv_key ( )
inline

Definition at line 108 of file bank.h.

109  { return m_pDH->priv_key; }
DH * m_pDH
Definition: bank.h:41
void Bank::ReadBIO ( BIO *  bio)
BIGNUM* Bank::SignRequest ( PublicCoinRequest req)
boolean Bank::Verify ( Coin coin)
void Bank::WriteBIO ( BIO *  bio)

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