summaryrefslogtreecommitdiffabout
path: root/include/opkele/basic_op.h
blob: 7f4e481a5380e30742bec2061fddeb68993d0e56 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#ifndef __OPKELE_BASIC_OP_H
#define __OPKELE_BASIC_OP_H

#include <string>
#include <opkele/types.h>
#include <opkele/extension.h>

namespace opkele {
    using std::string;

    class basic_op {
	public:
	    mode_t mode;
	    assoc_t assoc;
	    bool openid2;
	    string return_to;
	    string realm;
	    string claimed_id;
	    string identity;
	    string invalidate_handle;

	    void reset_vars();

	    bool has_return_to() const;
	    const string& get_return_to() const;

	    const string& get_realm() const;

	    bool has_identity() const;
	    const string& get_claimed_id() const;
	    const string& get_identity() const;

	    bool is_id_select() const;

	    void select_identity(const string& c,const string& i);
	    void set_claimed_id(const string& c);

	    basic_openid_message& associate(
		    basic_openid_message& oum,
		    const basic_openid_message& inm);

	    void checkid_(const basic_openid_message& inm,extension_t *ext=0);
	    basic_openid_message& id_res(basic_openid_message& om);
	    basic_openid_message& cancel(basic_openid_message& om);
	    basic_openid_message& error(basic_openid_message& om,
		    const string& error,const string& contact,
		    const string& reference );
	    basic_openid_message& setup_needed(
		    basic_openid_message& oum,const basic_openid_message& inm);

	    basic_openid_message& check_authentication(
		    basic_openid_message& oum,const basic_openid_message& inm);

	    virtual void verify_return_to();

	    virtual assoc_t alloc_assoc(const string& t,size_t kl,bool sl) = 0;
	    virtual assoc_t retrieve_assoc(const string& h) = 0;

	    virtual string& alloc_nonce(string& nonce,bool sl) = 0;
	    virtual bool check_nonce(const string& nonce) = 0;
	    virtual void invalidate_nonce(const string& nonce) = 0;

	    virtual const string get_op_endpoint() const = 0;

    };
}

#endif /* __OPKELE_BASIC_OP_H */