00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef __EPP_TRANSPORTSSL_H
00029 #define __EPP_TRANSPORTSSL_H
00030
00031 #include "../ssl/npssl.h"
00032 #include <string>
00033 #include "epp_TransportConn.h"
00034
00035
00036 #include <sys/types.h>
00037 #include <sys/socket.h>
00038 #include <netinet/in.h>
00039 #include <arpa/inet.h>
00040 #include <stdio.h>
00041 #include <unistd.h>
00042 #include <netdb.h>
00044
00045
00046
00047
00048 namespace epptransport {
00049
00050 class epp_TransportSSL : public epp_TransportConn {
00051
00052 private:
00053
00054 string m_certFile;
00055 string m_cacertFile;
00056 string m_cacertDir;
00057
00058 npbase::npssl *sslserver;
00059 int sockfd;
00060 struct sockaddr_in address;
00061
00062 public:
00063
00064 epp_TransportSSL() : epp_TransportConn()
00065 {
00066 sslserver = NULL;
00067 m_certFile = "/usr/share/ssl/certs/client.pem";
00068 };
00069
00070 virtual ~epp_TransportSSL()
00071 {
00072 delete sslserver;
00073 };
00074
00075 void writeToServer(const string & xml_string);
00076 string readFromServer();
00077
00078 void connect(const string & serverName, const unsigned long & serverPort);
00079 void connect(const string & serverName,
00080 const unsigned long & serverPort,
00081 const string & certFile,
00082 const string & cacertFile = "",
00083 const string & cacertDir = "");
00084
00085 void connect();
00086 void disconnect();
00087
00088 string getCertFile()
00089 {
00090 return m_certFile;
00091 };
00092
00093 void setCertFile(const string & certFile)
00094 {
00095 m_certFile = certFile;
00096 }
00097
00098 string getCACertFile()
00099 {
00100 return m_cacertFile;
00101 }
00102
00103 void setCACertFile(const string & cacertFile)
00104 {
00105 m_cacertFile = cacertFile;
00106 }
00107
00108 string getCACertDir()
00109 {
00110 return m_cacertDir;
00111 }
00112
00113 void setCACertDir(const string & cacertDir)
00114 {
00115 m_cacertDir = cacertDir;
00116 }
00117
00118 bool connected()
00119 {
00120 return (sslserver ? true : false);
00121 }
00122 };
00123 };
00124
00125 #endif