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 OPENSSLCRYPTOX509_INCLUDE
00029 #define OPENSSLCRYPTOX509_INCLUDE
00030
00031 #include <xsec/framework/XSECDefs.hpp>
00032 #include <xsec/enc/XSECCryptoX509.hpp>
00033
00034 #if defined (HAVE_OPENSSL)
00035 #include <openssl/x509.h>
00036 #include <openssl/bio.h>
00037
00046 class DSIG_EXPORT OpenSSLCryptoX509 : public XSECCryptoX509 {
00047
00048 public :
00049
00052
00053 OpenSSLCryptoX509();
00054 virtual ~OpenSSLCryptoX509();
00055
00057
00058
00060
00062
00071 virtual XSECCryptoKey::KeyType getPublicKeyType();
00072
00077 virtual const XMLCh * getProviderName();
00078
00087 virtual XSECCryptoKey * clonePublicKey();
00088
00090
00093
00103 virtual void loadX509Base64Bin(const char * buf, unsigned int len);
00104
00111 virtual safeBuffer &getDEREncodingSB(void) {return m_DERX509;}
00112
00114
00117
00124 OpenSSLCryptoX509(X509 * x);
00125
00130 X509 * getOpenSSLX509(void) {return mp_X509;}
00131
00133
00134 private:
00135
00136 X509 * mp_X509;
00137 safeBuffer m_DERX509;
00138 };
00139
00140 #endif
00141 #endif
00142