summaryrefslogtreecommitdiffabout
path: root/include/opkele/util-internal.h
Side-by-side diff
Diffstat (limited to 'include/opkele/util-internal.h') (more/less context) (ignore whitespace changes)
-rw-r--r--include/opkele/util-internal.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/opkele/util-internal.h b/include/opkele/util-internal.h
index ec091ce..258e129 100644
--- a/include/opkele/util-internal.h
+++ b/include/opkele/util-internal.h
@@ -1,53 +1,54 @@
#ifndef __OPKELE_UTIL_INTERNAL_H
#define __OPKELE_UTIL_INTERNAL_H
#include <openssl/bn.h>
#include <openssl/dh.h>
+#include <opkele/types.h>
namespace opkele {
namespace util {
/**
* Convenience class encapsulating SSL BIGNUM object for the purpose of
* automatical freeing.
*/
class bignum_t {
public:
BIGNUM *_bn;
bignum_t() : _bn(0) { }
bignum_t(BIGNUM *bn) : _bn(bn) { }
~bignum_t() throw() { if(_bn) BN_free(_bn); }
bignum_t& operator=(BIGNUM *bn) { if(_bn) BN_free(_bn); _bn = bn; return *this; }
operator const BIGNUM*(void) const { return _bn; }
operator BIGNUM*(void) { return _bn; }
};
/**
* Convenience clas encapsulating SSL DH object for the purpose of
* automatic freeing.
*/
class dh_t {
public:
DH *_dh;
dh_t() : _dh(0) { }
dh_t(DH *dh) : _dh(dh) { }
~dh_t() throw() { if(_dh) DH_free(_dh); }
dh_t& operator=(DH *dh) { if(_dh) DH_free(_dh); _dh = dh; return *this; }
operator const DH*(void) const { return _dh; }
operator DH*(void) { return _dh; }
DH* operator->() { return _dh; }
const DH* operator->() const { return _dh; }
};
/**
* Convert base64-encoded SSL BIGNUM to internal representation.
* @param b64 base64-encoded number
* @return SSL BIGNUM
* @throw failed_conversion in case of error
*/