#ifndef NET_TEST_REVOCATION_BUILDER_H_
#define NET_TEST_REVOCATION_BUILDER_H_
#include <optional>
#include <string>
#include <vector>
#include "base/time/time.h"
#include "third_party/boringssl/src/include/openssl/evp.h"
#include "third_party/boringssl/src/pki/ocsp.h"
#include "third_party/boringssl/src/pki/ocsp_revocation_status.h"
#include "third_party/boringssl/src/pki/signature_algorithm.h"
namespace net {
struct OCSPBuilderSingleResponse { … };
std::string BuildOCSPResponseError(
bssl::OCSPResponse::ResponseStatus response_status);
std::string BuildOCSPResponse(
const std::string& responder_subject,
EVP_PKEY* responder_key,
base::Time produced_at,
const std::vector<OCSPBuilderSingleResponse>& responses);
std::string BuildOCSPResponseWithResponseData(
EVP_PKEY* responder_key,
const std::string& response_data,
std::optional<bssl::SignatureAlgorithm> signature_algorithm = std::nullopt);
std::string BuildCrl(
const std::string& crl_issuer_subject,
EVP_PKEY* crl_issuer_key,
const std::vector<uint64_t>& revoked_serials,
std::optional<bssl::SignatureAlgorithm> signature_algorithm = std::nullopt);
std::string BuildCrlWithAlgorithmTlvAndDigest(
const std::string& crl_issuer_subject,
EVP_PKEY* crl_issuer_key,
const std::vector<uint64_t>& revoked_serials,
const std::string& signature_algorithm_tlv,
const EVP_MD* digest);
}
#endif