carta
libressl-OCSP_REQUEST_new(3)

libressl-OCSP_REQUEST_new3

Ocsp request functions

Usage

Crypto Library (libcrypto, -lcrypto)

OCSP_REQUEST *

void

OCSP_SIGNATURE *

void

OCSP_REQINFO *

void

OCSP_ONEREQ *

void

OCSP_ONEREQ *

int

int

int

OCSP_ONEREQ *

Overview

OCSP_REQUEST_new() allocates and initializes an empty OCSP_REQUEST object, representing an ASN.1 OCSPRequest structure defined in RFC 6960. OCSP_REQUEST_free() frees req.

OCSP_SIGNATURE_new() allocates and initializes an empty OCSP_SIGNATURE object, representing an ASN.1 Signature structure defined in RFC 6960. Such an object is used inside OCSP_REQUEST. OCSP_SIGNATURE_free() frees signature.

OCSP_REQINFO_new() allocates and initializes an empty OCSP_REQINFO object, representing an ASN.1 TBSRequest structure defined in RFC 6960. Such an object is used inside OCSP_REQUEST. It asks about the validity of one or more certificates. OCSP_REQINFO_free() frees reqinfo.

OCSP_ONEREQ_new() allocates and initializes an empty OCSP_ONEREQ object, representing an ASN.1 Request structure defined in RFC 6960. Such objects are used inside OCSP_REQINFO. Each one asks about the validity of one certificate. OCSP_ONEREQ_free() frees onereq.

OCSP_request_add0_id() adds certificate ID cid to req. It returns the OCSP_ONEREQ object added so an application can add additional extensions to the request. The cid parameter must not be freed up after the operation.

OCSP_request_sign() signs OCSP request req using certificate signer, private key key, digest dgst, and additional certificates certs. If the flags option OCSP_NOCERTS is set, then no certificates will be included in the request.

OCSP_request_add1_cert() adds certificate cert to request req. The application is responsible for freeing up cert after use.

OCSP_request_onereq_count() returns the total number of OCSP_ONEREQ objects in req.

OCSP_request_onereq_get0() returns an internal pointer to the OCSP_ONEREQ contained in req of index i. The index value i runs from 0 to OCSP_request_onereq_count(req, No, -, 1).

OCSP_request_onereq_count() and OCSP_request_onereq_get0() are mainly used by OCSP responders.

Return values

OCSP_REQUEST_new(), OCSP_SIGNATURE_new(), OCSP_REQINFO_new(), and OCSP_ONEREQ_new() return an empty OCSP_REQUEST, OCSP_SIGNATURE, OCSP_REQINFO, or OCSP_ONEREQ object, respectively, or NULL if an error occurred.

OCSP_request_add0_id() returns the OCSP_ONEREQ object containing cid or NULL if an error occurred.

OCSP_request_sign() and OCSP_request_add1_cert() return 1 for success or 0 for failure.

OCSP_request_onereq_count() returns the total number of OCSP_ONEREQ objects in req.

OCSP_request_onereq_get0() returns a pointer to an OCSP_ONEREQ object or NULL if the index value is out of range.

Examples

Create an OCSP_REQUEST object for certificate cert with issuer issuer:

OCSP_REQUEST *req;
OCSP_ID *cid;
req = OCSP_REQUEST_new();
if (req == NULL)
	/* error */
cid = OCSP_cert_to_id(EVP_sha1(), cert, issuer);
if (cid == NULL)
	/* error */
if (OCSP_REQUEST_add0_id(req, cid) == NULL)
	/* error */
 /* Do something with req, e.g. query responder */
OCSP_REQUEST_free(req);

Standards

RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate Status Protocol, section 4.1: Request Syntax

History

These functions first appeared in OpenSSL 0.9.7 and have been available since OpenBSD 3.2.

From libressl 4.4.0-1 in Arch Linux 2026-11-01. Parsed by carta from the page's mdoc source.