Botan 3.13.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 112 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 325 of file ocsp.cpp.

325 :
326 m_issuer(issuer_cert), m_certid(m_issuer, subject_cert.serial()) {
327 if(subject_cert.issuer_dn() != issuer_cert.subject_dn()) {
328 throw Invalid_Argument("Invalid cert pair to OCSP::Request (mismatched issuer,subject args?)");
329 }
330}

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 332 of file ocsp.cpp.

332 :
333 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 368 of file ocsp.cpp.

368 {
370}
std::vector< uint8_t > BER_encode() const
Definition ocsp.cpp:335
size_t base64_encode(char out[], const uint8_t in[], size_t input_length, size_t &input_consumed, bool final_inputs)
Definition base64.cpp:161

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 335 of file ocsp.cpp.

335 {
336 /*
337 * RFC 6960 Section 4.1.1
338 *
339 * OCSPRequest ::= SEQUENCE {
340 * tbsRequest TBSRequest,
341 * optionalSignature [0] EXPLICIT Signature OPTIONAL }
342 *
343 * TBSRequest ::= SEQUENCE {
344 * version [0] EXPLICIT Version DEFAULT v1,
345 * requestList SEQUENCE OF Request }
346 *
347 * Request ::= SEQUENCE {
348 * reqCert CertID }
349 */
350 std::vector<uint8_t> output;
351 DER_Encoder(output)
352 .start_sequence()
353 .start_sequence()
354 .start_explicit(0)
355 .encode(static_cast<size_t>(0)) // version #
356 .end_explicit()
357 .start_sequence()
358 .start_sequence()
359 .encode(m_certid)
360 .end_cons()
361 .end_cons()
362 .end_cons()
363 .end_cons();
364
365 return output;
366}

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 136 of file ocsp.h.

136{ return m_issuer; }

◆ issuer_key_hash()

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

Definition at line 146 of file ocsp.h.

146{ 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 142 of file ocsp.h.

142 { // NOLINT(*-convert-member-functions-to-static)
143 throw Not_Implemented("Method have been deprecated");
144 }

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