#ifndef QUICHE_QUIC_CORE_CRYPTO_CERTIFICATE_VIEW_H_
#define QUICHE_QUIC_CORE_CRYPTO_CERTIFICATE_VIEW_H_
#include <istream>
#include <memory>
#include <optional>
#include <vector>
#include "absl/strings/string_view.h"
#include "openssl/base.h"
#include "openssl/bytestring.h"
#include "openssl/evp.h"
#include "quiche/quic/core/crypto/boring_utils.h"
#include "quiche/quic/core/quic_time.h"
#include "quiche/quic/core/quic_types.h"
#include "quiche/quic/platform/api/quic_export.h"
#include "quiche/quic/platform/api/quic_ip_address.h"
namespace quic {
struct QUICHE_EXPORT PemReadResult { … };
QUICHE_EXPORT PemReadResult ReadNextPemMessage(std::istream* input);
enum class PublicKeyType { … };
QUICHE_EXPORT std::string PublicKeyTypeToString(PublicKeyType type);
QUICHE_EXPORT PublicKeyType
PublicKeyTypeFromSignatureAlgorithm(uint16_t signature_algorithm);
QUICHE_EXPORT QuicSignatureAlgorithmVector
SupportedSignatureAlgorithmsForQuic();
class QUICHE_EXPORT CertificateView { … };
class QUICHE_EXPORT CertificatePrivateKey { … };
QUICHE_EXPORT std::optional<std::string> X509NameAttributeToString(CBS input);
QUICHE_EXPORT std::optional<quic::QuicWallTime> ParseDerTime(
unsigned tag, absl::string_view payload);
}
#endif