]> git.sur5r.net Git - openldap/blob - contrib/ldapc++/src/TlsOptions.h
method to renew the tlsctx
[openldap] / contrib / ldapc++ / src / TlsOptions.h
1 // $OpenLDAP$
2 /*
3  * Copyright 2010, OpenLDAP Foundation, All Rights Reserved.
4  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
5  */
6 #ifndef TLS_OPTIONS_H
7 #define TLS_OPTIONS_H
8 #include <string>
9 #include <ldap.h>
10
11 class TlsOptions {
12     public:
13         enum tls_option {
14             CACERTFILE=0,
15             CACERTDIR,
16             CERTFILE,
17             KEYFILE,
18             REQUIRE_CERT,
19             PROTOCOL_MIN,
20             CIPHER_SUITE,
21             RANDOM_FILE,
22             CRLCHECK,
23             DHFILE,
24             LASTOPT /* dummy */
25         };
26
27         TlsOptions( LDAP* ld=NULL );
28         void setOption(tls_option opt, const std::string& value) const;
29         void setOption(tls_option opt, int value) const;
30         void setOption(tls_option opt, void *value) const;
31
32         int getIntOption(tls_option opt) const;
33         std::string getStringOption(tls_option opt) const;
34         void getOption(tls_option opt, void *value ) const;
35         
36         enum verifyMode {
37             NEVER=0,
38             HARD,
39             DEMAND,
40             ALLOW,
41             TRY
42         };
43
44         enum crlMode {
45             CRL_NONE=0,
46             CRL_PEER,
47             CRL_ALL
48         };
49
50     private:
51         void newCtx() const;
52         LDAP *m_ld;        
53 };
54
55 #endif /* TLS_OPTIONS_H */