#ifndef CHROME_COMMON_NET_X509_CERTIFICATE_MODEL_H_
#define CHROME_COMMON_NET_X509_CERTIFICATE_MODEL_H_
#include <string>
#include <string_view>
#include <vector>
#include "base/containers/span.h"
#include "base/time/time.h"
#include "third_party/abseil-cpp/absl/types/variant.h"
#include "third_party/boringssl/src/include/openssl/pool.h"
#include "third_party/boringssl/src/pki/parse_certificate.h"
#include "third_party/boringssl/src/pki/parse_name.h"
namespace x509_certificate_model {
struct Extension { … };
struct NotPresent : absl::monostate { … };
struct Error : absl::monostate { … };
OptionalStringOrError;
class X509CertificateModel { … };
std::string ProcessIDN(const std::string& input);
std::string ProcessRawSubjectPublicKeyInfo(base::span<const uint8_t> spki_der);
}
#endif