1 #ifndef LIBFILEZILLA_TLS_INFO_HEADER
2 #define LIBFILEZILLA_TLS_INFO_HEADER
32 std::vector<uint8_t> const& rawData,
34 std::
string const& serial,
35 std::
string const& pkalgoname,
unsigned int bits,
36 std::
string const& signalgoname,
37 std::
string const& fingerprint_sha256,
38 std::
string const& fingerprint_sha1,
39 std::
string const& issuer,
40 std::
string const& subject,
44 std::vector<uint8_t> && rawdata,
46 std::
string const& serial,
47 std::
string const& pkalgoname,
unsigned int bits,
48 std::
string const& signalgoname,
49 std::
string const& fingerprint_sha256,
50 std::
string const& fingerprint_sha1,
51 std::
string const& issuer,
52 std::
string const& subject,
59 fz::datetime const& get_activation_time()
const {
return activation_time_; }
60 fz::datetime const& get_expiration_time()
const {
return expiration_time_; }
62 std::string
const& get_serial()
const {
return serial_; }
86 std::string
const&
get_issuer()
const {
return issuer_; }
91 explicit operator bool()
const {
return !raw_cert_.empty(); }
97 std::vector<uint8_t> raw_cert_;
100 std::string pkalgoname_;
101 unsigned int pkalgobits_{};
103 std::string signalgoname_;
105 std::string fingerprint_sha256_;
106 std::string fingerprint_sha1_;
109 std::string subject_;
111 std::vector<subject_name> alt_subject_names_;
126 std::string
const& protocol,
127 std::string
const& key_exchange,
128 std::string
const& session_cipher,
129 std::string
const& session_mac,
130 int algorithm_warnings,
131 std::vector<x509_certificate>&& certificates,
133 bool hostname_mismatch);
136 std::string
const&
get_host()
const {
return host_; }
154 std::vector<fz::x509_certificate>
const&
get_certificates()
const {
return certificates_; }
162 enum algorithm_warnings_t
182 unsigned int port_{};
184 std::string protocol_;
185 std::string key_exchange_;
186 std::string session_cipher_;
187 std::string session_mac_;
188 int algorithm_warnings_{};
190 std::vector<x509_certificate> certificates_;
192 bool system_trust_{};
193 bool hostname_mismatch_{};
Definition: tls_info.hpp:14
std::string const & get_pubkey_algorithm() const
The public key algorithm used by the certificate.
Definition: tls_info.hpp:65
int get_algorithm_warnings() const
Warnings about old algorithms used, which are considered weak.
Definition: tls_info.hpp:171
std::string const & get_session_mac() const
The MAC used for integrity-protect and authenticate the exchanged application data.
Definition: tls_info.hpp:145
std::vector< uint8_t > get_raw_data() const
The raw, DER-encoded X.509 certificate.
Definition: tls_info.hpp:57
std::string const & get_signature_algorithm() const
The algorithm used for signing, typically the public key algorithm combined with a hash...
Definition: tls_info.hpp:71
std::string const & get_session_cipher() const
The symmetric algorithm used to encrypt all exchanged application data.
Definition: tls_info.hpp:142
std::vector< fz::x509_certificate > const & get_certificates() const
The server's certificate chain.
Definition: tls_info.hpp:154
Information about a TLS session.
Definition: tls_info.hpp:115
unsigned int get_port() const
The server's port.
Definition: tls_info.hpp:139
std::string const & get_fingerprint_sha256() const
Gets fingerprint as hex-encoded sha256.
Definition: tls_info.hpp:74
unsigned int get_pubkey_bits() const
The number of bits of the public key algorithm.
Definition: tls_info.hpp:68
std::vector< subject_name > const & get_alt_subject_names() const
Gets the alternative subject names (SANSs) of the certificated, usually hostnames.
Definition: tls_info.hpp:89
Represents a point of time in wallclock, tracking the timestamps accuracy/precision.
Definition: time.hpp:40
Assorted classes dealing with time.
Definition: tls_info.hpp:17
std::string const & get_fingerprint_sha1() const
Gets fingerprint as hex-encoded sha1.
Definition: tls_info.hpp:77
The namespace used by libfilezilla.
Definition: apply.hpp:16
std::string const & get_protocol() const
TLS version.
Definition: tls_info.hpp:157
bool system_trust() const
Definition: tls_info.hpp:175
bool mismatched_hostname() const
True if the hostname in the SANs does not match the requested hostname.
Definition: tls_info.hpp:178
std::string const & get_issuer() const
Gets the issuer of the certificate as RDN as described in RFC4514.
Definition: tls_info.hpp:86
std::string const & get_key_exchange() const
Key exchange algorithm.
Definition: tls_info.hpp:160
std::string const & get_subject() const
Gets the subject of the certificate as RDN as described in RFC4514.
Definition: tls_info.hpp:83
std::string const & get_host() const
The server's hostname used to connect.
Definition: tls_info.hpp:136