-rw-r--r-- | include/opkele/util-internal.h | 1 |
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 | ||
7 | namespace opkele { | 8 | namespace 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 */ |