summaryrefslogtreecommitdiffabout
path: root/include/opkele
Unidiff
Diffstat (limited to 'include/opkele') (more/less context) (ignore whitespace changes)
-rw-r--r--include/opkele/consumer.h2
-rw-r--r--include/opkele/util.h1
2 files changed, 2 insertions, 1 deletions
diff --git a/include/opkele/consumer.h b/include/opkele/consumer.h
index b9c29bd..3c0ed5f 100644
--- a/include/opkele/consumer.h
+++ b/include/opkele/consumer.h
@@ -35,101 +35,103 @@ namespace opkele {
35 * store. 35 * store.
36 * @param server the OpenID server 36 * @param server the OpenID server
37 * @param handle association handle 37 * @param handle association handle
38 * @return the autho_ptr<> for the newly allocated association_t object 38 * @return the autho_ptr<> for the newly allocated association_t object
39 * @throw failed_lookup in case of error 39 * @throw failed_lookup in case of error
40 */ 40 */
41 virtual assoc_t retrieve_assoc(const string& server,const string& handle) = 0; 41 virtual assoc_t retrieve_assoc(const string& server,const string& handle) = 0;
42 /** 42 /**
43 * invalidate stored association. The function should be overridden 43 * invalidate stored association. The function should be overridden
44 * in the real implementation of the consumer. 44 * in the real implementation of the consumer.
45 * @param server the OpenID server 45 * @param server the OpenID server
46 * @param handle association handle 46 * @param handle association handle
47 */ 47 */
48 virtual void invalidate_assoc(const string& server,const string& handle) = 0; 48 virtual void invalidate_assoc(const string& server,const string& handle) = 0;
49 /** 49 /**
50 * retrieve any unexpired association for the server. If the 50 * retrieve any unexpired association for the server. If the
51 * function is not overridden in the real implementation, the new 51 * function is not overridden in the real implementation, the new
52 * association will be established for each request. 52 * association will be established for each request.
53 * @param server the OpenID server 53 * @param server the OpenID server
54 * @return the auto_ptr<> for the newly allocated association_t object 54 * @return the auto_ptr<> for the newly allocated association_t object
55 * @throw failed_lookup in case of absence of the handle 55 * @throw failed_lookup in case of absence of the handle
56 */ 56 */
57 virtual assoc_t find_assoc(const string& server); 57 virtual assoc_t find_assoc(const string& server);
58 58
59 /** 59 /**
60 * retrieve the metainformation contained in link tags from the 60 * retrieve the metainformation contained in link tags from the
61 * page pointed by url. the function may implement caching of the 61 * page pointed by url. the function may implement caching of the
62 * information. 62 * information.
63 * @param url url to harvest for link tags 63 * @param url url to harvest for link tags
64 * @param server reference to the string object where to put 64 * @param server reference to the string object where to put
65 * openid.server value 65 * openid.server value
66 * @param delegate reference to the string object where to put the 66 * @param delegate reference to the string object where to put the
67 * openid.delegate value (if any) 67 * openid.delegate value (if any)
68 */ 68 */
69 virtual void retrieve_links(const string& url,string& server,string& delegate); 69 virtual void retrieve_links(const string& url,string& server,string& delegate);
70 70
71 /** 71 /**
72 * perform the associate request to OpenID server. 72 * perform the associate request to OpenID server.
73 * @param server the OpenID server 73 * @param server the OpenID server
74 * @return the auto_ptr<> for the newly allocated association_t 74 * @return the auto_ptr<> for the newly allocated association_t
75 * object, representing established association 75 * object, representing established association
76 * @throw exception in case of error 76 * @throw exception in case of error
77 */ 77 */
78 assoc_t associate(const string& server); 78 assoc_t associate(const string& server);
79 /** 79 /**
80 * prepare the parameters for the checkid_immediate 80 * prepare the parameters for the checkid_immediate
81 * request. 81 * request.
82 * @param identity the identity to verify 82 * @param identity the identity to verify
83 * @param return_to the return_to url to pass with the request 83 * @param return_to the return_to url to pass with the request
84 * @param trust_root the trust root to advertise with the request 84 * @param trust_root the trust root to advertise with the request
85 * @return the location string 85 * @return the location string
86 * @throw exception in case of error 86 * @throw exception in case of error
87 */ 87 */
88 string checkid_immediate(const string& identity,const string& return_to,const string& trust_root=""); 88 string checkid_immediate(const string& identity,const string& return_to,const string& trust_root="");
89 /** 89 /**
90 * prepare the parameters for the checkid_setup 90 * prepare the parameters for the checkid_setup
91 * request. 91 * request.
92 * @param identity the identity to verify 92 * @param identity the identity to verify
93 * @param return_to the return_to url to pass with the request 93 * @param return_to the return_to url to pass with the request
94 * @param trust_root the trust root to advertise with the request 94 * @param trust_root the trust root to advertise with the request
95 * @return the location string 95 * @return the location string
96 * @throw exception in case of error 96 * @throw exception in case of error
97 */ 97 */
98 string checkid_setup(const string& identity,const string& return_to,const string& trust_root=""); 98 string checkid_setup(const string& identity,const string& return_to,const string& trust_root="");
99 /** 99 /**
100 * the actual implementation behind checkid_immediate() and 100 * the actual implementation behind checkid_immediate() and
101 * checkid_setup() functions. 101 * checkid_setup() functions.
102 * @param mode checkid_* mode - either mode_checkid_immediate or mode_checkid_setup 102 * @param mode checkid_* mode - either mode_checkid_immediate or mode_checkid_setup
103 * @param identity the identity to verify 103 * @param identity the identity to verify
104 * @param return_to the return_to url to pass with the request 104 * @param return_to the return_to url to pass with the request
105 * @param trust_root the trust root to advertise with the request 105 * @param trust_root the trust root to advertise with the request
106 * @return the location string 106 * @return the location string
107 * @throw exception in case of error 107 * @throw exception in case of error
108 */ 108 */
109 string checkid_(mode_t mode,const string& identity,const string& return_to,const string& trust_root=""); 109 string checkid_(mode_t mode,const string& identity,const string& return_to,const string& trust_root="");
110 /** 110 /**
111 * verify the id_res response 111 * verify the id_res response
112 * @param pin the response parameters 112 * @param pin the response parameters
113 * @param identity the identity being checked (if not specified, extracted 113 * @param identity the identity being checked (if not specified, extracted
114 * from the openid.identity parameter 114 * from the openid.identity parameter
115 * @throw id_res_mismatch in case of signature 115 * @throw id_res_mismatch in case of signature
116 * mismatch 116 * mismatch
117 * @throw id_res_setup in case of 117 * @throw id_res_setup in case of
118 * openid.user_setup_url failure (supposedly 118 * openid.user_setup_url failure (supposedly
119 * checkid_immediate only) 119 * checkid_immediate only)
120 * @throw id_res_failed in case of failure 120 * @throw id_res_failed in case of failure
121 * @throw exception in case of other failures 121 * @throw exception in case of other failures
122 */ 122 */
123 void id_res(const params_t& pin,const string& identity=""); 123 void id_res(const params_t& pin,const string& identity="");
124 /** 124 /**
125 * perform a check_authentication request. 125 * perform a check_authentication request.
126 * @param server the OpenID server 126 * @param server the OpenID server
127 * @param p request parameters 127 * @param p request parameters
128 */ 128 */
129 void check_authentication(const string& server,const params_t& p); 129 void check_authentication(const string& server,const params_t& p);
130 130
131 static string canonicalize(const string& url);
132
131 }; 133 };
132 134
133} 135}
134 136
135#endif /* __OPKELE_CONSUMER_H */ 137#endif /* __OPKELE_CONSUMER_H */
diff --git a/include/opkele/util.h b/include/opkele/util.h
index fbbef93..5372498 100644
--- a/include/opkele/util.h
+++ b/include/opkele/util.h
@@ -1,60 +1,59 @@
1#ifndef __OPKELE_UTIL_H 1#ifndef __OPKELE_UTIL_H
2#define __OPKELE_UTIL_H 2#define __OPKELE_UTIL_H
3 3
4#include <time.h> 4#include <time.h>
5#include <string> 5#include <string>
6#include <openssl/bn.h> 6#include <openssl/bn.h>
7#include <openssl/dh.h> 7#include <openssl/dh.h>
8 8
9namespace opkele { 9namespace opkele {
10 using std::string; 10 using std::string;
11 11
12 namespace util { 12 namespace util {
13 13
14 class bignum_t { 14 class bignum_t {
15 public: 15 public:
16 BIGNUM *_bn; 16 BIGNUM *_bn;
17 17
18 bignum_t() : _bn(0) { } 18 bignum_t() : _bn(0) { }
19 bignum_t(BIGNUM *bn) : _bn(bn) { } 19 bignum_t(BIGNUM *bn) : _bn(bn) { }
20 ~bignum_t() throw() { if(_bn) BN_free(_bn); } 20 ~bignum_t() throw() { if(_bn) BN_free(_bn); }
21 21
22 bignum_t& operator=(BIGNUM *bn) { if(_bn) BN_free(_bn); _bn = bn; return *this; } 22 bignum_t& operator=(BIGNUM *bn) { if(_bn) BN_free(_bn); _bn = bn; return *this; }
23 23
24 operator const BIGNUM*(void) const { return _bn; } 24 operator const BIGNUM*(void) const { return _bn; }
25 operator BIGNUM*(void) { return _bn; } 25 operator BIGNUM*(void) { return _bn; }
26 }; 26 };
27 class dh_t { 27 class dh_t {
28 public: 28 public:
29 DH *_dh; 29 DH *_dh;
30 30
31 dh_t() : _dh(0) { } 31 dh_t() : _dh(0) { }
32 dh_t(DH *dh) : _dh(dh) { } 32 dh_t(DH *dh) : _dh(dh) { }
33 ~dh_t() throw() { if(_dh) DH_free(_dh); } 33 ~dh_t() throw() { if(_dh) DH_free(_dh); }
34 34
35 dh_t& operator=(DH *dh) { if(_dh) DH_free(_dh); _dh = dh; return *this; } 35 dh_t& operator=(DH *dh) { if(_dh) DH_free(_dh); _dh = dh; return *this; }
36 36
37 operator const DH*(void) const { return _dh; } 37 operator const DH*(void) const { return _dh; }
38 operator DH*(void) { return _dh; } 38 operator DH*(void) { return _dh; }
39 39
40 DH* operator->() { return _dh; } 40 DH* operator->() { return _dh; }
41 const DH* operator->() const { return _dh; } 41 const DH* operator->() const { return _dh; }
42 }; 42 };
43 43
44 BIGNUM *base64_to_bignum(const string& b64); 44 BIGNUM *base64_to_bignum(const string& b64);
45 BIGNUM *dec_to_bignum(const string& dec); 45 BIGNUM *dec_to_bignum(const string& dec);
46 string bignum_to_base64(const BIGNUM *bn); 46 string bignum_to_base64(const BIGNUM *bn);
47 47
48 string time_to_w3c(time_t t); 48 string time_to_w3c(time_t t);
49 time_t w3c_to_time(const string& w); 49 time_t w3c_to_time(const string& w);
50 50
51 string canonicalize_url(const string& url);
52 string url_encode(const string& str); 51 string url_encode(const string& str);
53 52
54 string long_to_string(long l); 53 string long_to_string(long l);
55 long string_to_long(const string& s); 54 long string_to_long(const string& s);
56 } 55 }
57 56
58} 57}
59 58
60#endif /* __OPKELE_UTIL_H */ 59#endif /* __OPKELE_UTIL_H */