mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-12-04 21:40:33 +00:00
LibTLS: Avoid unnecessary HashMap copies, improve const-correctness
This commit is contained in:
parent
f866c80222
commit
2bb2a7097d
Notes:
sideshowbarker
2024-07-17 07:43:05 +09:00
Author: https://github.com/BenWiederhake Commit: https://github.com/SerenityOS/serenity/commit/2bb2a7097d Pull-request: https://github.com/SerenityOS/serenity/pull/18821 Reviewed-by: https://github.com/awesomekling Reviewed-by: https://github.com/gmta ✅ Reviewed-by: https://github.com/kleinesfilmroellchen ✅
4 changed files with 11 additions and 11 deletions
|
@ -794,7 +794,7 @@ ErrorOr<Certificate> Certificate::parse_certificate(ReadonlyBytes buffer, bool)
|
|||
#undef DROP_OBJECT
|
||||
#undef REWRITE_TAG
|
||||
|
||||
ErrorOr<String> RelativeDistinguishedName::to_string()
|
||||
ErrorOr<String> RelativeDistinguishedName::to_string() const
|
||||
{
|
||||
#define ADD_IF_RECOGNIZED(identifier, shorthand_code) \
|
||||
if (it->key == identifier) { \
|
||||
|
|
|
@ -192,29 +192,29 @@ struct BasicConstraints {
|
|||
|
||||
class RelativeDistinguishedName {
|
||||
public:
|
||||
ErrorOr<String> to_string();
|
||||
ErrorOr<String> to_string() const;
|
||||
|
||||
ErrorOr<AK::HashSetResult> set(String key, String value)
|
||||
{
|
||||
return m_members.try_set(key, value);
|
||||
}
|
||||
|
||||
Optional<String> get(StringView key)
|
||||
Optional<String> get(StringView key) const
|
||||
{
|
||||
return m_members.get(key);
|
||||
}
|
||||
|
||||
Optional<String> get(AttributeType key)
|
||||
Optional<String> get(AttributeType key) const
|
||||
{
|
||||
return m_members.get(enum_value(key));
|
||||
}
|
||||
|
||||
Optional<String> get(ObjectClass key)
|
||||
Optional<String> get(ObjectClass key) const
|
||||
{
|
||||
return m_members.get(enum_value(key));
|
||||
}
|
||||
|
||||
String common_name()
|
||||
String common_name() const
|
||||
{
|
||||
auto entry = get(AttributeType::Cn);
|
||||
if (entry.has_value()) {
|
||||
|
|
|
@ -78,7 +78,7 @@ ssize_t TLSv12::handle_certificate(ReadonlyBytes buffer)
|
|||
|
||||
auto certificate = Certificate::parse_certificate(buffer.slice(res_cert, certificate_size_specific), false);
|
||||
if (!certificate.is_error()) {
|
||||
m_context.certificates.append(certificate.value());
|
||||
m_context.certificates.empend(certificate.value());
|
||||
valid_certificate = true;
|
||||
} else {
|
||||
dbgln("Failed to parse client cert: {}", certificate.error());
|
||||
|
|
|
@ -231,7 +231,7 @@ static bool wildcard_matches(StringView host, StringView subject)
|
|||
return false;
|
||||
}
|
||||
|
||||
static bool certificate_subject_matches_host(Certificate& cert, StringView host)
|
||||
static bool certificate_subject_matches_host(Certificate const& cert, StringView host)
|
||||
{
|
||||
if (wildcard_matches(host, cert.subject.common_name()))
|
||||
return true;
|
||||
|
@ -269,7 +269,7 @@ bool Context::verify_chain(StringView host) const
|
|||
// it in any case.
|
||||
|
||||
if (!host.is_empty()) {
|
||||
auto first_certificate = local_chain->first();
|
||||
auto const& first_certificate = local_chain->first();
|
||||
auto subject_matches = certificate_subject_matches_host(first_certificate, host);
|
||||
if (!subject_matches) {
|
||||
dbgln("verify_chain: First certificate does not match the hostname");
|
||||
|
@ -282,7 +282,7 @@ bool Context::verify_chain(StringView host) const
|
|||
}
|
||||
|
||||
for (size_t cert_index = 0; cert_index < local_chain->size(); ++cert_index) {
|
||||
auto cert = local_chain->at(cert_index);
|
||||
auto const& cert = local_chain->at(cert_index);
|
||||
|
||||
auto subject_string = MUST(cert.subject.to_string());
|
||||
auto issuer_string = MUST(cert.issuer.to_string());
|
||||
|
@ -316,7 +316,7 @@ bool Context::verify_chain(StringView host) const
|
|||
return false;
|
||||
}
|
||||
|
||||
auto parent_certificate = local_chain->at(cert_index + 1);
|
||||
auto const& parent_certificate = local_chain->at(cert_index + 1);
|
||||
if (issuer_string != MUST(parent_certificate.subject.to_string())) {
|
||||
dbgln("verify_chain: Next certificate in the chain is not the issuer of this certificate");
|
||||
return false;
|
||||
|
|
Loading…
Reference in a new issue