]> git.sur5r.net Git - openldap/blobdiff - contrib/ldapc++/src/TlsOptions.h
New class "TlsOptions" to handle TLS/SSL related settings
[openldap] / contrib / ldapc++ / src / TlsOptions.h
diff --git a/contrib/ldapc++/src/TlsOptions.h b/contrib/ldapc++/src/TlsOptions.h
new file mode 100644 (file)
index 0000000..573b4f9
--- /dev/null
@@ -0,0 +1,54 @@
+// $OpenLDAP$
+/*
+ * Copyright 2010, OpenLDAP Foundation, All Rights Reserved.
+ * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+ */
+#ifndef TLS_OPTIONS_H
+#define TLS_OPTIONS_H
+#include <string>
+#include <ldap.h>
+
+class TlsOptions {
+    public:
+        enum tls_option {
+            CACERTFILE=0,
+            CACERTDIR,
+            CERTFILE,
+            KEYFILE,
+            REQUIRE_CERT,
+            PROTOCOL_MIN,
+            CIPHER_SUITE,
+            RANDOM_FILE,
+            CRLCHECK,
+            DHFILE,
+            NEWCTX
+        };
+
+        TlsOptions( LDAP* ld=NULL );
+        void setOption(tls_option opt, const std::string& value);
+        void setOption(tls_option opt, int value);
+        void setOption(tls_option opt, void *value);
+
+        int getIntOption(tls_option opt) const;
+        std::string getStringOption(tls_option opt) const;
+        void getOption(tls_option opt, void *value );
+        
+        enum verifyMode {
+            NEVER=0,
+            HARD,
+            DEMAND,
+            ALLOW,
+            TRY
+        };
+
+        enum crlMode {
+            CRL_NONE=0,
+            CRL_PEER,
+            CRL_ALL
+        };
+
+    private:
+        LDAP *m_ld;        
+};
+
+#endif /* TLS_OPTIONS_H */