[Development] Merge CSecurityTLS and CSecurityX509 classes into CSecurityTLSBase class.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4109 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/common/rfb/CSecurityTLSBase.h b/common/rfb/CSecurityTLSBase.h
index f7230b3..b943264 100644
--- a/common/rfb/CSecurityTLSBase.h
+++ b/common/rfb/CSecurityTLSBase.h
@@ -31,6 +31,7 @@
 #endif

 

 #include <rfb/CSecurity.h>

+#include <rfb/SSecurityVeNCrypt.h>

 #include <rfb/Security.h>

 #include <rdr/InStream.h>

 #include <rdr/OutStream.h>

@@ -39,21 +40,32 @@
 namespace rfb {

   class CSecurityTLSBase : public CSecurity {

   public:

-    CSecurityTLSBase();

+    CSecurityTLSBase(bool _anon);

     virtual ~CSecurityTLSBase();

     virtual bool processMsg(CConnection* cc);

+    virtual int getType() const { return anon ? secTypeTLSNone : secTypeX509None; }

+    virtual const char* description() const

+      { return anon ? "TLS Encryption without VncAuth" : "X509 Encryption without VncAuth"; }

+

+    static StringParameter x509ca;

+    static StringParameter x509crl;

 

   protected:

     void shutdown();

-    virtual void freeResources() = 0;

-    virtual void setParam(gnutls_session session) = 0;

-    virtual void checkSession(gnutls_session session) = 0;

+    void freeResources();

+    void setParam();

+    void checkSession();

     CConnection *client;

 

   private:

     static void initGlobal();

 

     gnutls_session session;

+    gnutls_anon_client_credentials anon_cred;

+    gnutls_certificate_credentials cert_cred;

+    bool anon;

+

+    char *cafile, *crlfile;

     rdr::InStream* fis;

     rdr::OutStream* fos;

   };