OCSP response.
Note this class is only usable as an OCSP client
Definition at line 69 of file ocsp.h.
| Botan::OCSP::Response::Response |
( |
const uint8_t |
response_bits[], |
|
|
size_t |
response_bits_len |
|
) |
| |
Parses an OCSP response.
- Parameters
-
| response_bits | response bits received |
| response_bits_len | length of response in bytes |
Definition at line 90 of file ocsp.cpp.
References Botan::BIT_STRING, Botan::CONSTRUCTED, Botan::CONTEXT_SPECIFIC, Botan::BER_Decoder::decode(), Botan::BER_Decoder::decode_and_check(), Botan::BER_Decoder::decode_list(), Botan::BER_Decoder::decode_optional(), Botan::BER_Decoder::decode_optional_string(), Botan::BER_Decoder::end_cons(), Botan::ENUMERATED, Botan::BER_Decoder::get_next_octet_string(), Botan::BER_Decoder::more_items(), Botan::OCTET_STRING, Botan::BER_Decoder::raw_bytes(), Botan::SEQUENCE, Botan::BER_Decoder::start_cons(), Botan::ASN1::to_string(), and Botan::UNIVERSAL.
91 m_response_bits(response_bits, response_bits + response_bits_len)
93 BER_Decoder response_outer = BER_Decoder(m_response_bits).start_cons(
SEQUENCE);
95 size_t resp_status = 0;
100 throw Exception(
"OCSP response status " +
std::to_string(resp_status));
102 if(response_outer.more_items())
104 BER_Decoder response_bytes =
107 response_bytes.decode_and_check(OID(
"1.3.6.1.5.5.7.48.1.1"),
108 "Unknown response type in OCSP response");
110 BER_Decoder basicresponse =
111 BER_Decoder(response_bytes.get_next_octet_string()).start_cons(
SEQUENCE);
114 .raw_bytes(m_tbs_bits)
118 decode_optional_list(basicresponse,
ASN1_Tag(0), m_certs);
120 size_t responsedata_version = 0;
121 Extensions extensions;
123 BER_Decoder(m_tbs_bits)
124 .decode_optional(responsedata_version,
ASN1_Tag(0),
127 .decode_optional(m_signer_name,
ASN1_Tag(1),
133 .decode(m_produced_at)
135 .decode_list(m_responses)
137 .decode_optional(extensions,
ASN1_Tag(1),
141 response_outer.end_cons();
std::string to_string(const BER_Object &obj)