summaryrefslogtreecommitdiffabout
path: root/include
Unidiff
Diffstat (limited to 'include') (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,92 +1,93 @@
1#ifndef __OPKELE_UTIL_INTERNAL_H 1#ifndef __OPKELE_UTIL_INTERNAL_H
2#define __OPKELE_UTIL_INTERNAL_H 2#define __OPKELE_UTIL_INTERNAL_H
3 3
4#include <openssl/bn.h> 4#include <openssl/bn.h>
5#include <openssl/dh.h> 5#include <openssl/dh.h>
6#include <opkele/types.h>
6 7
7namespace opkele { 8namespace opkele {
8 namespace util { 9 namespace util {
9 10
10 /** 11 /**
11 * Convenience class encapsulating SSL BIGNUM object for the purpose of 12 * Convenience class encapsulating SSL BIGNUM object for the purpose of
12 * automatical freeing. 13 * automatical freeing.
13 */ 14 */
14 class bignum_t { 15 class bignum_t {
15 public: 16 public:
16 BIGNUM *_bn; 17 BIGNUM *_bn;
17 18
18 bignum_t() : _bn(0) { } 19 bignum_t() : _bn(0) { }
19 bignum_t(BIGNUM *bn) : _bn(bn) { } 20 bignum_t(BIGNUM *bn) : _bn(bn) { }
20 ~bignum_t() throw() { if(_bn) BN_free(_bn); } 21 ~bignum_t() throw() { if(_bn) BN_free(_bn); }
21 22
22 bignum_t& operator=(BIGNUM *bn) { if(_bn) BN_free(_bn); _bn = bn; return *this; } 23 bignum_t& operator=(BIGNUM *bn) { if(_bn) BN_free(_bn); _bn = bn; return *this; }
23 24
24 operator const BIGNUM*(void) const { return _bn; } 25 operator const BIGNUM*(void) const { return _bn; }
25 operator BIGNUM*(void) { return _bn; } 26 operator BIGNUM*(void) { return _bn; }
26 }; 27 };
27 /** 28 /**
28 * Convenience clas encapsulating SSL DH object for the purpose of 29 * Convenience clas encapsulating SSL DH object for the purpose of
29 * automatic freeing. 30 * automatic freeing.
30 */ 31 */
31 class dh_t { 32 class dh_t {
32 public: 33 public:
33 DH *_dh; 34 DH *_dh;
34 35
35 dh_t() : _dh(0) { } 36 dh_t() : _dh(0) { }
36 dh_t(DH *dh) : _dh(dh) { } 37 dh_t(DH *dh) : _dh(dh) { }
37 ~dh_t() throw() { if(_dh) DH_free(_dh); } 38 ~dh_t() throw() { if(_dh) DH_free(_dh); }
38 39
39 dh_t& operator=(DH *dh) { if(_dh) DH_free(_dh); _dh = dh; return *this; } 40 dh_t& operator=(DH *dh) { if(_dh) DH_free(_dh); _dh = dh; return *this; }
40 41
41 operator const DH*(void) const { return _dh; } 42 operator const DH*(void) const { return _dh; }
42 operator DH*(void) { return _dh; } 43 operator DH*(void) { return _dh; }
43 44
44 DH* operator->() { return _dh; } 45 DH* operator->() { return _dh; }
45 const DH* operator->() const { return _dh; } 46 const DH* operator->() const { return _dh; }
46 }; 47 };
47 48
48 /** 49 /**
49 * Convert base64-encoded SSL BIGNUM to internal representation. 50 * Convert base64-encoded SSL BIGNUM to internal representation.
50 * @param b64 base64-encoded number 51 * @param b64 base64-encoded number
51 * @return SSL BIGNUM 52 * @return SSL BIGNUM
52 * @throw failed_conversion in case of error 53 * @throw failed_conversion in case of error
53 */ 54 */
54 BIGNUM *base64_to_bignum(const string& b64); 55 BIGNUM *base64_to_bignum(const string& b64);
55 /** 56 /**
56 * Convert decimal representation to SSL BIGNUM. 57 * Convert decimal representation to SSL BIGNUM.
57 * @param dec decimal representation 58 * @param dec decimal representation
58 * @return resulting BIGNUM 59 * @return resulting BIGNUM
59 * @throw failed_conversion in case of error 60 * @throw failed_conversion in case of error
60 */ 61 */
61 BIGNUM *dec_to_bignum(const string& dec); 62 BIGNUM *dec_to_bignum(const string& dec);
62 /** 63 /**
63 * Convert SSL BIGNUM data to base64 encoded string. 64 * Convert SSL BIGNUM data to base64 encoded string.
64 * @param bn BIGNUM 65 * @param bn BIGNUM
65 * @return base64encoded string 66 * @return base64encoded string
66 */ 67 */
67 string bignum_to_base64(const BIGNUM *bn); 68 string bignum_to_base64(const BIGNUM *bn);
68 69
69 string abi_demangle(const char* mn); 70 string abi_demangle(const char* mn);
70 71
71 class change_mode_message_proxy : public basic_openid_message { 72 class change_mode_message_proxy : public basic_openid_message {
72 public: 73 public:
73 const basic_openid_message& x; 74 const basic_openid_message& x;
74 const string& mode; 75 const string& mode;
75 76
76 change_mode_message_proxy(const basic_openid_message& xx,const string& m) : x(xx), mode(m) { } 77 change_mode_message_proxy(const basic_openid_message& xx,const string& m) : x(xx), mode(m) { }
77 78
78 bool has_field(const string& n) const { return x.has_field(n); } 79 bool has_field(const string& n) const { return x.has_field(n); }
79 const string& get_field(const string& n) const { 80 const string& get_field(const string& n) const {
80 return (n=="mode")?mode:x.get_field(n); } 81 return (n=="mode")?mode:x.get_field(n); }
81 bool has_ns(const string& uri) const {return x.has_ns(uri); } 82 bool has_ns(const string& uri) const {return x.has_ns(uri); }
82 string get_ns(const string& uri) const { return x.get_ns(uri); } 83 string get_ns(const string& uri) const { return x.get_ns(uri); }
83 fields_iterator fields_begin() const { 84 fields_iterator fields_begin() const {
84 return x.fields_begin(); } 85 return x.fields_begin(); }
85 fields_iterator fields_end() const { 86 fields_iterator fields_end() const {
86 return x.fields_end(); } 87 return x.fields_end(); }
87 }; 88 };
88 89
89 } 90 }
90} 91}
91 92
92#endif /* __OPKELE_UTIL_INTERNAL_H */ 93#endif /* __OPKELE_UTIL_INTERNAL_H */