00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef OPENSSLWRAPPER_H
00016 #define OPENSSLWRAPPER_H
00017
00018 #include "pandabase.h"
00019
00020 #ifdef HAVE_OPENSSL
00021 #include "filename.h"
00022
00023 #ifdef _WIN32
00024 #include <winsock2.h>
00025 #endif
00026
00027 #define OPENSSL_NO_KRB5
00028 #include "openssl/ssl.h"
00029 #include "openssl/rand.h"
00030 #include "openssl/err.h"
00031 #include "openssl/x509.h"
00032 #include "openssl/x509v3.h"
00033
00034
00035 #ifdef X509_NAME
00036 #undef X509_NAME
00037 #endif
00038
00039
00040
00041
00042
00043
00044
00045
00046 class EXPCL_PANDAEXPRESS OpenSSLWrapper {
00047 private:
00048 OpenSSLWrapper();
00049 ~OpenSSLWrapper();
00050
00051 public:
00052 void clear_certificates();
00053 int load_certificates(const Filename &filename);
00054 int load_certificates_from_pem_ram(const char *data, size_t data_size);
00055 int load_certificates_from_der_ram(const char *data, size_t data_size);
00056
00057 X509_STORE *get_x509_store();
00058
00059 void notify_ssl_errors();
00060 void notify_debug_ssl_errors();
00061
00062 static OpenSSLWrapper *get_global_ptr();
00063
00064 private:
00065 X509_STORE *_x509_store;
00066
00067 static OpenSSLWrapper *_global_ptr;
00068 };
00069
00070 #include "openSSLWrapper.I"
00071
00072 #endif // HAVE_OPENSSL
00073 #endif