00001 // $Id: SSL_X509Cert.h 91118 2010-07-17 10:29:57Z mcorino $ 00002 00003 /** 00004 * @file SSL_X509Cert.h 00005 * 00006 * @author Martin Corino <mcorino@remedy.nl> 00007 */ 00008 00009 #ifndef ACE_SSL_X509CERT_H 00010 #define ACE_SSL_X509CERT_H 00011 00012 #include /**/ "ace/pre.h" 00013 00014 #include <openssl/x509.h> 00015 #include <openssl/crypto.h> 00016 #include "ace/INet/INet_Export.h" 00017 00018 ACE_BEGIN_VERSIONED_NAMESPACE_DECL 00019 00020 namespace ACE 00021 { 00022 namespace INet 00023 { 00024 /** 00025 * @class ACE_INet_SSL_X509Cert 00026 * 00027 * @brief Encapsulates an SSL X509 certificate object. 00028 * 00029 * Provides reference counting for the X509 certificate object. 00030 */ 00031 class ACE_INET_Export SSL_X509Cert 00032 { 00033 public: 00034 SSL_X509Cert (); 00035 SSL_X509Cert (::X509* ssl_cert); 00036 SSL_X509Cert (const SSL_X509Cert& cert); 00037 ~SSL_X509Cert (); 00038 00039 SSL_X509Cert& operator= (::X509* ssl_cert); 00040 SSL_X509Cert& operator= (const SSL_X509Cert& ssl_cert); 00041 00042 ::X509* operator & (void); 00043 00044 private: 00045 ::X509* ssl_cert_; 00046 }; 00047 } 00048 } 00049 00050 ACE_END_VERSIONED_NAMESPACE_DECL 00051 00052 #if defined (__ACE_INLINE__) 00053 #include "ace/INet/SSL_X509Cert.inl" 00054 #endif 00055 00056 #include /**/ "ace/post.h" 00057 #endif /* ACE_SSL_X509CERT_H */