tlsgnutlsclient.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef TLSGNUTLSCLIENT_H__
00016 #define TLSGNUTLSCLIENT_H__
00017
00018 #include "tlsgnutlsbase.h"
00019
00020 #ifdef _WIN32
00021 # include "../config.h.win"
00022 #elif defined( _WIN32_WCE )
00023 # include "../config.h.win"
00024 #else
00025 # include "config.h"
00026 #endif
00027
00028 #ifdef HAVE_GNUTLS
00029
00030 #include <gnutls/gnutls.h>
00031 #include <gnutls/x509.h>
00032
00033 namespace gloox
00034 {
00035
00044 class GnuTLSClient : public GnuTLSBase
00045 {
00046 public:
00052 GnuTLSClient( TLSHandler *th, const std::string& server );
00053
00057 virtual ~GnuTLSClient();
00058
00059
00060 virtual void setCACerts( const StringList& cacerts );
00061
00062
00063 virtual void setClientCert( const std::string& clientKey, const std::string& clientCerts );
00064
00065
00066 virtual void cleanup();
00067
00068 private:
00069 virtual void init();
00070 virtual void getCertInfo();
00071
00072 bool verifyAgainst( gnutls_x509_crt_t cert, gnutls_x509_crt_t issuer );
00073 bool verifyAgainstCAs( gnutls_x509_crt_t cert, gnutls_x509_crt_t *CAList, int CAListSize );
00074
00075 gnutls_certificate_credentials m_credentials;
00076
00077 };
00078
00079 }
00080
00081 #endif // HAVE_GNUTLS
00082
00083 #endif // TLSGNUTLSCLIENT_H__