Botan 3.12.0
Crypto and TLS for C&
Botan::OCSP::Request Class Referencefinal

#include <ocsp.h>

Public Member Functions

std::string base64_encode () const
std::vector< uint8_t > BER_encode () const
const X509_Certificateissuer () const
const std::vector< uint8_t > & issuer_key_hash () const
 Request (const X509_Certificate &issuer_cert, const BigInt &subject_serial)
 Request (const X509_Certificate &issuer_cert, const X509_Certificate &subject_cert)
const X509_Certificatesubject () const

Detailed Description

An OCSP request.

Definition at line 75 of file ocsp.h.

Constructor & Destructor Documentation

◆ Request() [1/2]

Botan::OCSP::Request::Request ( const X509_Certificate & issuer_cert,
const X509_Certificate & subject_cert )

Create an OCSP request.

Parameters
issuer_certissuer certificate
subject_certsubject certificate

Definition at line 174 of file ocsp.cpp.

174 :
175 m_issuer(issuer_cert), m_certid(m_issuer, BigInt::from_bytes(subject_cert.serial_number())) {
176 if(subject_cert.issuer_dn() != issuer_cert.subject_dn()) {
177 throw Invalid_Argument("Invalid cert pair to OCSP::Request (mismatched issuer,subject args?)");
178 }
179}
static BigInt from_bytes(std::span< const uint8_t > bytes)
Definition bigint.cpp:83

References Botan::X509_Certificate::issuer_dn(), and Botan::X509_Certificate::subject_dn().

◆ Request() [2/2]

Botan::OCSP::Request::Request ( const X509_Certificate & issuer_cert,
const BigInt & subject_serial )

Definition at line 181 of file ocsp.cpp.

181 :
182 m_issuer(issuer_cert), m_certid(m_issuer, subject_serial) {}

Member Function Documentation

◆ base64_encode()

std::string Botan::OCSP::Request::base64_encode ( ) const
Returns
Base64-encoded OCSP request

Definition at line 217 of file ocsp.cpp.

217 {
219}
std::vector< uint8_t > BER_encode() const
Definition ocsp.cpp:184
size_t base64_encode(char out[], const uint8_t in[], size_t input_length, size_t &input_consumed, bool final_inputs)
Definition base64.cpp:159

References Botan::base64_encode(), and BER_encode().

◆ BER_encode()

std::vector< uint8_t > Botan::OCSP::Request::BER_encode ( ) const
Returns
BER-encoded OCSP request

Definition at line 184 of file ocsp.cpp.

184 {
185 /*
186 * RFC 6960 Section 4.1.1
187 *
188 * OCSPRequest ::= SEQUENCE {
189 * tbsRequest TBSRequest,
190 * optionalSignature [0] EXPLICIT Signature OPTIONAL }
191 *
192 * TBSRequest ::= SEQUENCE {
193 * version [0] EXPLICIT Version DEFAULT v1,
194 * requestList SEQUENCE OF Request }
195 *
196 * Request ::= SEQUENCE {
197 * reqCert CertID }
198 */
199 std::vector<uint8_t> output;
200 DER_Encoder(output)
201 .start_sequence()
202 .start_sequence()
203 .start_explicit(0)
204 .encode(static_cast<size_t>(0)) // version #
205 .end_explicit()
206 .start_sequence()
207 .start_sequence()
208 .encode(m_certid)
209 .end_cons()
210 .end_cons()
211 .end_cons()
212 .end_cons();
213
214 return output;
215}

References Botan::DER_Encoder::encode(), Botan::DER_Encoder::end_cons(), Botan::DER_Encoder::end_explicit(), Botan::DER_Encoder::start_explicit(), and Botan::DER_Encoder::start_sequence().

Referenced by base64_encode().

◆ issuer()

const X509_Certificate & Botan::OCSP::Request::issuer ( ) const
inline
Returns
issuer certificate

Definition at line 99 of file ocsp.h.

99{ return m_issuer; }

◆ issuer_key_hash()

const std::vector< uint8_t > & Botan::OCSP::Request::issuer_key_hash ( ) const
inline

Definition at line 109 of file ocsp.h.

109{ return m_certid.issuer_key_hash(); }

◆ subject()

const X509_Certificate & Botan::OCSP::Request::subject ( ) const
inline
Returns
subject certificate TODO(Botan4) remove this function

Definition at line 105 of file ocsp.h.

105 { // NOLINT(*-convert-member-functions-to-static)
106 throw Not_Implemented("Method have been deprecated");
107 }

The documentation for this class was generated from the following files: