6 #ifndef OPENDDS_DCPS_SECURITY_SSL_CERTIFICATE_H 7 #define OPENDDS_DCPS_SECURITY_SSL_CERTIFICATE_H 12 #include <dds/DdsDcpsCoreC.h> 13 #include <dds/DdsSecurityCoreC.h> 15 #include <openssl/x509.h> 27 class verify_signature_impl;
31 friend class verify_signature_impl;
41 explicit Certificate(
const std::string& uri,
const std::string& password =
"");
54 const std::string& uri,
55 const std::string& password =
"");
60 int validate(
const Certificate& ca,
unsigned long int flags = 0u)
const;
67 const std::vector<const DDS::OctetSeq*>& expected_contents)
const;
72 int subject_name_to_str(std::string& dst,
73 unsigned long flags = XN_FLAG_ONELINE)
const;
78 int subject_name_digest(std::vector<CORBA::Octet>& dst)
const;
92 const char*
dsign_algo()
const {
return dsign_algo_.c_str(); }
94 const char* keypair_algo()
const;
102 return (x_ != NULL) &&
103 (0 < original_bytes_.length());
109 int cache_dsign_algo();
112 void load_cert_bytes(
const std::string& path);
114 void load_cert_data_bytes(
const std::string& data);
116 static X509* x509_from_pem(
const std::string& path,
117 const std::string& password =
"");
119 const std::string& password =
"");
const DDS::OctetSeq & original_bytes() const
DCPS::unique_ptr< Certificate > unique_ptr
bool operator==(const Certificate &lhs, const Certificate &rhs)
std::ostream & operator<<(std::ostream &lhs, const Certificate &rhs)
const char * dsign_algo() const
sequence< octet > OctetSeq
#define OpenDDS_Security_Export
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
DDS::OctetSeq original_bytes_
The Internal API and Implementation of OpenDDS.