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/extension.h2
-rw-r--r--include/opkele/server.h2
-rw-r--r--include/opkele/types.h2
4 files changed, 8 insertions, 0 deletions
diff --git a/include/opkele/consumer.h b/include/opkele/consumer.h
index b9d1e54..50ff692 100644
--- a/include/opkele/consumer.h
+++ b/include/opkele/consumer.h
@@ -1,48 +1,50 @@
1#ifndef __OPKELE_CONSUMER_H 1#ifndef __OPKELE_CONSUMER_H
2#define __OPKELE_CONSUMER_H 2#define __OPKELE_CONSUMER_H
3 3
4#include <opkele/types.h> 4#include <opkele/types.h>
5#include <opkele/extension.h> 5#include <opkele/extension.h>
6 6
7/** 7/**
8 * @file 8 * @file
9 * @brief OpenID consumer-side functionality 9 * @brief OpenID consumer-side functionality
10 */ 10 */
11 11
12namespace opkele { 12namespace opkele {
13 13
14 /** 14 /**
15 * implementation of basic consumer functionality 15 * implementation of basic consumer functionality
16 * 16 *
17 * @note 17 * @note
18 * The consumer uses libcurl internally, which means that if you're using 18 * The consumer uses libcurl internally, which means that if you're using
19 * libopkele in multithreaded environment you should call curl_global_init 19 * libopkele in multithreaded environment you should call curl_global_init
20 * yourself before spawning any threads. 20 * yourself before spawning any threads.
21 */ 21 */
22 class consumer_t { 22 class consumer_t {
23 public: 23 public:
24 24
25 virtual ~consumer_t() { }
26
25 /** 27 /**
26 * store association. The function should be overridden in the real 28 * store association. The function should be overridden in the real
27 * implementation to provide persistent associations store. 29 * implementation to provide persistent associations store.
28 * @param server the OpenID server 30 * @param server the OpenID server
29 * @param handle association handle 31 * @param handle association handle
30 * @param secret the secret associated with the server and handle 32 * @param secret the secret associated with the server and handle
31 * @param expires_in the number of seconds until the handle is expired 33 * @param expires_in the number of seconds until the handle is expired
32 * @return the auto_ptr<> for the newly allocated association_t object 34 * @return the auto_ptr<> for the newly allocated association_t object
33 */ 35 */
34 virtual assoc_t store_assoc(const string& server,const string& handle,const secret_t& secret,int expires_in) = 0; 36 virtual assoc_t store_assoc(const string& server,const string& handle,const secret_t& secret,int expires_in) = 0;
35 /** 37 /**
36 * retrieve stored association. The function should be overridden 38 * retrieve stored association. The function should be overridden
37 * in the real implementation to provide persistent assocations 39 * in the real implementation to provide persistent assocations
38 * store. 40 * store.
39 * 41 *
40 * @note 42 * @note
41 * The user is responsible for handling associations expiry and 43 * The user is responsible for handling associations expiry and
42 * this function should never return an expired or invalidated 44 * this function should never return an expired or invalidated
43 * association. 45 * association.
44 * 46 *
45 * @param server the OpenID server 47 * @param server the OpenID server
46 * @param handle association handle 48 * @param handle association handle
47 * @return the autho_ptr<> for the newly allocated association_t object 49 * @return the autho_ptr<> for the newly allocated association_t object
48 * @throw failed_lookup if no unexpired association found 50 * @throw failed_lookup if no unexpired association found
diff --git a/include/opkele/extension.h b/include/opkele/extension.h
index ea0c74c..513672f 100644
--- a/include/opkele/extension.h
+++ b/include/opkele/extension.h
@@ -1,41 +1,43 @@
1#ifndef __OPKELE_EXTENSION_H 1#ifndef __OPKELE_EXTENSION_H
2#define __OPKELE_EXTENSION_H 2#define __OPKELE_EXTENSION_H
3 3
4/** 4/**
5 * @file 5 * @file
6 * @brief extensions framework basics 6 * @brief extensions framework basics
7 */ 7 */
8 8
9#include <opkele/types.h> 9#include <opkele/types.h>
10 10
11namespace opkele { 11namespace opkele {
12 12
13 /** 13 /**
14 * OpenID extension hooks base class 14 * OpenID extension hooks base class
15 */ 15 */
16 class extension_t { 16 class extension_t {
17 public: 17 public:
18
19 virtual ~extension_t() { }
18 /** 20 /**
19 * hook called by consumer before submitting data to OpenID server. 21 * hook called by consumer before submitting data to OpenID server.
20 * It is supposed to manipulate parameters list. 22 * It is supposed to manipulate parameters list.
21 * @param p parameters about to be submitted to server 23 * @param p parameters about to be submitted to server
22 * @param identity identity being verified. It may differ from the 24 * @param identity identity being verified. It may differ from the
23 * one available in parameters list in case of delegation 25 * one available in parameters list in case of delegation
24 * @see consumer_t::checkid_ 26 * @see consumer_t::checkid_
25 * @see consumer_t::checkid_immediate 27 * @see consumer_t::checkid_immediate
26 * @see consumer_t::checkid_setup 28 * @see consumer_t::checkid_setup
27 */ 29 */
28 virtual void checkid_hook(params_t& p,const string& identity); 30 virtual void checkid_hook(params_t& p,const string& identity);
29 /** 31 /**
30 * hook called by consumer after identity information received from 32 * hook called by consumer after identity information received from
31 * OpenID server is verified. 33 * OpenID server is verified.
32 * @param p parameters received from server 34 * @param p parameters received from server
33 * @param sp signed parameters received from server with 'openid.' 35 * @param sp signed parameters received from server with 'openid.'
34 * leader stripped 36 * leader stripped
35 * @param identity identity confirmed. May differ from the one 37 * @param identity identity confirmed. May differ from the one
36 * available in parameters list in case of delegation. May also be 38 * available in parameters list in case of delegation. May also be
37 * empty which means - extract one from parameters 39 * empty which means - extract one from parameters
38 * @see consumer_t::id_res 40 * @see consumer_t::id_res
39 */ 41 */
40 virtual void id_res_hook(const params_t& p,const params_t& sp,const string& identity); 42 virtual void id_res_hook(const params_t& p,const params_t& sp,const string& identity);
41 43
diff --git a/include/opkele/server.h b/include/opkele/server.h
index e7e5bb3..dd7fc41 100644
--- a/include/opkele/server.h
+++ b/include/opkele/server.h
@@ -1,43 +1,45 @@
1#ifndef __OPKELE_SERVER_H 1#ifndef __OPKELE_SERVER_H
2#define __OPKELE_SERVER_H 2#define __OPKELE_SERVER_H
3 3
4/** 4/**
5 * @file 5 * @file
6 * @brief OpenID server-side functionality 6 * @brief OpenID server-side functionality
7 */ 7 */
8 8
9#include <opkele/types.h> 9#include <opkele/types.h>
10#include <opkele/extension.h> 10#include <opkele/extension.h>
11 11
12namespace opkele { 12namespace opkele {
13 13
14 /** 14 /**
15 * implementation of basic server functionality 15 * implementation of basic server functionality
16 */ 16 */
17 class server_t { 17 class server_t {
18 public: 18 public:
19 19
20 virtual ~server_t() { }
21
20 /** 22 /**
21 * allocate the new association. The function should be overridden 23 * allocate the new association. The function should be overridden
22 * in the real implementation to provide persistent assocations 24 * in the real implementation to provide persistent assocations
23 * store. 25 * store.
24 * @param mode the mode of request being processed to base the 26 * @param mode the mode of request being processed to base the
25 * statelessness of the association upon 27 * statelessness of the association upon
26 * @return the auto_ptr<> for the newly allocated association_t object 28 * @return the auto_ptr<> for the newly allocated association_t object
27 */ 29 */
28 virtual assoc_t alloc_assoc(mode_t mode) = 0; 30 virtual assoc_t alloc_assoc(mode_t mode) = 0;
29 /** 31 /**
30 * retrieve the association. The function should be overridden in 32 * retrieve the association. The function should be overridden in
31 * the reqal implementation to provide persistent assocations 33 * the reqal implementation to provide persistent assocations
32 * store. 34 * store.
33 * @param h association handle 35 * @param h association handle
34 * @return the auto_ptr<> for the newly allocated association_t object 36 * @return the auto_ptr<> for the newly allocated association_t object
35 * @throw failed_lookup in case of failure 37 * @throw failed_lookup in case of failure
36 */ 38 */
37 virtual assoc_t retrieve_assoc(const string& h) = 0; 39 virtual assoc_t retrieve_assoc(const string& h) = 0;
38 40
39 /** 41 /**
40 * validate the identity. 42 * validate the identity.
41 * @param assoc association object 43 * @param assoc association object
42 * @param pin incoming request parameters 44 * @param pin incoming request parameters
43 * @param identity being verified 45 * @param identity being verified
diff --git a/include/opkele/types.h b/include/opkele/types.h
index 8f4bf73..f732a1e 100644
--- a/include/opkele/types.h
+++ b/include/opkele/types.h
@@ -44,48 +44,50 @@ namespace opkele {
44 /** 44 /**
45 * decode base64-encoded secret and xor it with the sha1 digest 45 * decode base64-encoded secret and xor it with the sha1 digest
46 * @param key_sha1 pointer to the message digest 46 * @param key_sha1 pointer to the message digest
47 * @param b64 base64-encoded secret value 47 * @param b64 base64-encoded secret value
48 */ 48 */
49 void enxor_from_base64(const unsigned char *key_sha1,const string& b64); 49 void enxor_from_base64(const unsigned char *key_sha1,const string& b64);
50 /** 50 /**
51 * plainly encode to base64 representation 51 * plainly encode to base64 representation
52 * @param rv reference to the return value 52 * @param rv reference to the return value
53 */ 53 */
54 void to_base64(string& rv) const; 54 void to_base64(string& rv) const;
55 /** 55 /**
56 * decode cleartext secret from base64 56 * decode cleartext secret from base64
57 * @param b64 base64-encoded representation of the secret value 57 * @param b64 base64-encoded representation of the secret value
58 */ 58 */
59 void from_base64(const string& b64); 59 void from_base64(const string& b64);
60 }; 60 };
61 61
62 /** 62 /**
63 * Interface to the association. 63 * Interface to the association.
64 */ 64 */
65 class association_t { 65 class association_t {
66 public: 66 public:
67 67
68 virtual ~association_t() { }
69
68 /** 70 /**
69 * retrieve the server with which association was established. 71 * retrieve the server with which association was established.
70 * @return server name 72 * @return server name
71 */ 73 */
72 virtual string server() const = 0; 74 virtual string server() const = 0;
73 /** 75 /**
74 * retrieve the association handle. 76 * retrieve the association handle.
75 * @return handle 77 * @return handle
76 */ 78 */
77 virtual string handle() const = 0; 79 virtual string handle() const = 0;
78 /** 80 /**
79 * retrieve the association type. 81 * retrieve the association type.
80 * @return association type 82 * @return association type
81 */ 83 */
82 virtual string assoc_type() const = 0; 84 virtual string assoc_type() const = 0;
83 /** 85 /**
84 * retrieve the association secret. 86 * retrieve the association secret.
85 * @return association secret 87 * @return association secret
86 */ 88 */
87 virtual secret_t secret() const = 0; 89 virtual secret_t secret() const = 0;
88 /** 90 /**
89 * retrieve the number of seconds the association expires in. 91 * retrieve the number of seconds the association expires in.
90 * @return seconds till expiration 92 * @return seconds till expiration
91 */ 93 */