8 #ifndef MOD_SERVLET_SSL_H
9 #define MOD_SERVLET_SSL_H
14 #include <experimental/string_view>
19 using std::experimental::string_view;
34 typedef std::chrono::time_point<std::chrono::system_clock, typename std::chrono::system_clock::duration>
time_type;
51 virtual int version()
const = 0;
206 virtual string_view
issuer_DN()
const = 0;
215 virtual const std::map<string_view, string_view, std::less<>>&
issuer_DN_components()
const = 0;
305 enum class SSL_SESSION_STATE
325 template<
typename CharT,
typename Traits>
326 std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& out, SSL_SESSION_STATE ss)
330 case SSL_SESSION_STATE::INITIAL: out <<
"INITIAL";
break;
331 case SSL_SESSION_STATE::RESUMED: out <<
"RESUMED";
break;
366 virtual string_view
protocol()
const = 0;
435 #endif // MOD_SERVLET_SSL_H
virtual time_type valid_since() const =0
Gets the notBefore date from the validity period of the certificate.
virtual string_view certificate_exact_assertion() const =0
Serial number and issuer of the certificate.
virtual const std::map< string_view, string_view, std::less<> > & subject_DN_components() const =0
Returns components of the subject (subject distinguished name) value from the certificate.
virtual const std::map< string_view, std::vector< string_view >, std::less<> > & subject_alternative_names() const =0
Gets an immutable collection of subject alternative names from the SubjectAltName extension...
virtual string_view PEM_encoded() const =0
Returns PEM (Privacy Enhanced Mail) encoded certificate string.
virtual const std::vector< string_view > & certificate_chain() const =0
Returns PEM (Privacy Enhanced Mail) encoded certificates in client certificate chain.
virtual string_view key_algorithm_name() const =0
Gets the public key algorithm name.
virtual bool check_valid() const =0
Checks that the certificate is currently valid.
virtual ~certificate() noexcept
Destructor.
Definition: ssl.h:39
virtual string_view serial_number() const =0
Gets the serialNumber value from the certificate.
virtual const std::map< string_view, string_view, std::less<> > & issuer_DN_components() const =0
Returns components of the issuer (subject distinguished name) value from the certificate.
std::chrono::time_point< std::chrono::system_clock, typename std::chrono::system_clock::duration > time_type
time_point type to be used for date representation in this class
Definition: ssl.h:34
Abstract class holding available information regarding client or server security certificate.
Definition: ssl.h:28
virtual time_type valid_until() const =0
Gets the notAfter date from the validity period of the certificate.
virtual string_view signature_algorithm_name() const =0
Gets the signature algorithm name for the certificate signature algorithm.
virtual string_view subject_DN() const =0
Returns the subject (subject distinguished name) value from the certificate.
virtual string_view issuer_DN() const =0
Returns the issuer (subject distinguished name) value from the certificate.
virtual int version() const =0
Gets the version (version number) value from the certificate.