summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2008-02-16 17:49:22 (UTC)
committer Michael Krelin <hacker@klever.net>2008-02-16 17:49:22 (UTC)
commit21bddce2d98394865cf2ed0b144f92bbb6993bc9 (patch) (side-by-side diff)
treee30194fab08a704885ae00c711e1707dc73bed83
parentccdfc6eacec435a59d773127762ad0b6bce07149 (diff)
downloadlibopkele-21bddce2d98394865cf2ed0b144f92bbb6993bc9.zip
libopkele-21bddce2d98394865cf2ed0b144f92bbb6993bc9.tar.gz
libopkele-21bddce2d98394865cf2ed0b144f92bbb6993bc9.tar.bz2
moved some stuff out of the now installed util.h header
Signed-off-by: Michael Krelin <hacker@klever.net>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--include/Makefile.am3
-rw-r--r--include/opkele/util-internal.h92
-rw-r--r--include/opkele/util.h92
-rw-r--r--lib/basic_op.cc1
-rw-r--r--lib/basic_rp.cc1
-rw-r--r--lib/consumer.cc1
-rw-r--r--lib/server.cc1
-rw-r--r--test/idiscover.cc1
8 files changed, 110 insertions, 82 deletions
diff --git a/include/Makefile.am b/include/Makefile.am
index 9f5982c..f842bb9 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -19,12 +19,13 @@ nobase_include_HEADERS = \
opkele/basic_rp.h opkele/prequeue_rp.h \
opkele/iterator.h \
opkele/basic_op.h opkele/verify_op.h \
+ opkele/util.h \
${NODIST_HEADERS_}
noinst_HEADERS = \
opkele/data.h \
opkele/curl.h opkele/expat.h opkele/tidy.h \
- opkele/util.h \
+ opkele/util-internal.h \
opkele/debug.h \
opkele/discovery.h
diff --git a/include/opkele/util-internal.h b/include/opkele/util-internal.h
new file mode 100644
index 0000000..ec091ce
--- a/dev/null
+++ b/include/opkele/util-internal.h
@@ -0,0 +1,92 @@
+#ifndef __OPKELE_UTIL_INTERNAL_H
+#define __OPKELE_UTIL_INTERNAL_H
+
+#include <openssl/bn.h>
+#include <openssl/dh.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
+ */
+ BIGNUM *base64_to_bignum(const string& b64);
+ /**
+ * Convert decimal representation to SSL BIGNUM.
+ * @param dec decimal representation
+ * @return resulting BIGNUM
+ * @throw failed_conversion in case of error
+ */
+ BIGNUM *dec_to_bignum(const string& dec);
+ /**
+ * Convert SSL BIGNUM data to base64 encoded string.
+ * @param bn BIGNUM
+ * @return base64encoded string
+ */
+ string bignum_to_base64(const BIGNUM *bn);
+
+ string abi_demangle(const char* mn);
+
+ class change_mode_message_proxy : public basic_openid_message {
+ public:
+ const basic_openid_message& x;
+ const string& mode;
+
+ change_mode_message_proxy(const basic_openid_message& xx,const string& m) : x(xx), mode(m) { }
+
+ bool has_field(const string& n) const { return x.has_field(n); }
+ const string& get_field(const string& n) const {
+ return (n=="mode")?mode:x.get_field(n); }
+ bool has_ns(const string& uri) const {return x.has_ns(uri); }
+ string get_ns(const string& uri) const { return x.get_ns(uri); }
+ fields_iterator fields_begin() const {
+ return x.fields_begin(); }
+ fields_iterator fields_end() const {
+ return x.fields_end(); }
+ };
+
+ }
+}
+
+#endif /* __OPKELE_UTIL_INTERNAL_H */
diff --git a/include/opkele/util.h b/include/opkele/util.h
index bc1a0ea..60955e1 100644
--- a/include/opkele/util.h
+++ b/include/opkele/util.h
@@ -4,8 +4,6 @@
#include <time.h>
#include <string>
#include <vector>
-#include <openssl/bn.h>
-#include <openssl/dh.h>
#include <opkele/types.h>
namespace opkele {
@@ -18,65 +16,6 @@ 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
- */
- BIGNUM *base64_to_bignum(const string& b64);
- /**
- * Convert decimal representation to SSL BIGNUM.
- * @param dec decimal representation
- * @return resulting BIGNUM
- * @throw failed_conversion in case of error
- */
- BIGNUM *dec_to_bignum(const string& dec);
- /**
- * Convert SSL BIGNUM data to base64 encoded string.
- * @param bn BIGNUM
- * @return base64encoded string
- */
- string bignum_to_base64(const BIGNUM *bn);
-
- /**
* Convert internal time representation to w3c format
* @param t internal representation
* @return w3c time
@@ -153,30 +92,21 @@ namespace opkele {
*/
bool uri_matches_realm(const string& uri,const string& realm);
+ /**
+ * Strip fragment part from URI
+ * @param uri input/output parameter containing the URI
+ * @return reference to uri
+ */
string& strip_uri_fragment_part(string& uri);
- string abi_demangle(const char* mn);
-
+ /**
+ * Calculate signature and encode it using base64
+ * @param assoc association being used for signing
+ * @param om openid message
+ * @return base64 representation of the signature
+ */
string base64_signature(const assoc_t& assoc,const basic_openid_message& om);
- class change_mode_message_proxy : public basic_openid_message {
- public:
- const basic_openid_message& x;
- const string& mode;
-
- change_mode_message_proxy(const basic_openid_message& xx,const string& m) : x(xx), mode(m) { }
-
- bool has_field(const string& n) const { return x.has_field(n); }
- const string& get_field(const string& n) const {
- return (n=="mode")?mode:x.get_field(n); }
- bool has_ns(const string& uri) const {return x.has_ns(uri); }
- string get_ns(const string& uri) const { return x.get_ns(uri); }
- fields_iterator fields_begin() const {
- return x.fields_begin(); }
- fields_iterator fields_end() const {
- return x.fields_end(); }
- };
-
}
}
diff --git a/lib/basic_op.cc b/lib/basic_op.cc
index c247493..fa659ac 100644
--- a/lib/basic_op.cc
+++ b/lib/basic_op.cc
@@ -6,6 +6,7 @@
#include <opkele/basic_op.h>
#include <opkele/exception.h>
#include <opkele/util.h>
+#include <opkele/util-internal.h>
#include <opkele/uris.h>
namespace opkele {
diff --git a/lib/basic_rp.cc b/lib/basic_rp.cc
index a0ad130..e65d9fb 100644
--- a/lib/basic_rp.cc
+++ b/lib/basic_rp.cc
@@ -6,6 +6,7 @@
#include <opkele/uris.h>
#include <opkele/data.h>
#include <opkele/util.h>
+#include <opkele/util-internal.h>
#include <opkele/curl.h>
namespace opkele {
diff --git a/lib/consumer.cc b/lib/consumer.cc
index ebda262..801496e 100644
--- a/lib/consumer.cc
+++ b/lib/consumer.cc
@@ -2,6 +2,7 @@
#include <cassert>
#include <cstring>
#include <opkele/util.h>
+#include <opkele/util-internal.h>
#include <opkele/curl.h>
#include <opkele/exception.h>
#include <opkele/data.h>
diff --git a/lib/server.cc b/lib/server.cc
index 776f1ae..0dea1eb 100644
--- a/lib/server.cc
+++ b/lib/server.cc
@@ -3,6 +3,7 @@
#include <openssl/sha.h>
#include <openssl/hmac.h>
#include <opkele/util.h>
+#include <opkele/util-internal.h>
#include <opkele/exception.h>
#include <opkele/server.h>
#include <opkele/data.h>
diff --git a/test/idiscover.cc b/test/idiscover.cc
index 44df9ce..4b1e90c 100644
--- a/test/idiscover.cc
+++ b/test/idiscover.cc
@@ -6,6 +6,7 @@ using namespace std;
#include <opkele/exception.h>
#include <opkele/discovery.h>
#include <opkele/util.h>
+#include <opkele/util-internal.h>
namespace opkele {
ostream& operator<<(ostream& o,const opkele::openid_endpoint_t& oep) {