---
name: "libressl-d2i_ESS_SIGNING_CERT"
section: "3"
platform: "linux"
package: "libressl"
version: "4.4.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/libressl-d2i_ESS_SIGNING_CERT"
---

# libressl-d2i\_ESS\_SIGNING\_CERT(3)

decode and encode signing certificates for S/MIME

## NAME

**d2i\_ESS\_SIGNING\_CERT**, **i2d\_ESS\_SIGNING\_CERT**, **d2i\_ESS\_CERT\_ID**, **i2d\_ESS\_CERT\_ID**, **d2i\_ESS\_ISSUER\_SERIAL**, **i2d\_ESS\_ISSUER\_SERIAL** – decode and encode signing certificates for S/MIME

## SYNOPSIS

Crypto Library (libcrypto, -lcrypto)

**#include \<openssl/ts.h\>**

*ESS\_SIGNING\_CERT* *\**\

**d2i\_ESS\_SIGNING\_CERT**(*ESS\_SIGNING\_CERT \*\*val\_out*, *const unsigned char \*\*der\_in*, *long length*);

*int*\

**i2d\_ESS\_SIGNING\_CERT**(*const ESS\_SIGNING\_CERT \*val\_in*, *unsigned char \*\*der\_out*);

*ESS\_CERT\_ID* *\**\

**d2i\_ESS\_CERT\_ID**(*ESS\_CERT\_ID \*\*val\_out*, *const unsigned char \*\*der\_in*, *long length*);

*int*\

**i2d\_ESS\_CERT\_ID**(*const ESS\_CERT\_ID \*val\_in*, *unsigned char \*\*der\_out*);

*ESS\_ISSUER\_SERIAL* *\**\

**d2i\_ESS\_ISSUER\_SERIAL**(*ESS\_ISSUER\_SERIAL \*\*val\_out*, *const unsigned char \*\*der\_in*, *long length*);

*int*\

**i2d\_ESS\_ISSUER\_SERIAL**(*const ESS\_ISSUER\_SERIAL \*val\_in*, *unsigned char \*\*der\_out*);

## DESCRIPTION

These functions decode and encode signing certificate attribute structures. For details about the semantics, examples, caveats, and bugs, see ASN1\_item\_d2i(3).

**d2i\_ESS\_SIGNING\_CERT**() and **i2d\_ESS\_SIGNING\_CERT**() decode and encode an ASN.1 *SigningCertificate* structure defined in RFC 2634 section 5.4.

**d2i\_ESS\_CERT\_ID**() and **i2d\_ESS\_CERT\_ID**() decode and encode an ASN.1 *ESSCertID* structure defined in RFC 2634 section 5.4.1.

**d2i\_ESS\_ISSUER\_SERIAL**() and **i2d\_ESS\_ISSUER\_SERIAL**() decode and encode an ASN.1 *IssuerSerial* structure defined in RFC 2634 section 5.4.1.

## RETURN VALUES

**d2i\_ESS\_SIGNING\_CERT**(), **d2i\_ESS\_CERT\_ID**(), and **d2i\_ESS\_ISSUER\_SERIAL**() return an *ESS\_SIGNING\_CERT*, *ESS\_CERT\_ID*, or *ESS\_ISSUER\_SERIAL* object, respectively, or NULL if an error occurs.

**i2d\_ESS\_SIGNING\_CERT**(), **i2d\_ESS\_CERT\_ID**(), and **i2d\_ESS\_ISSUER\_SERIAL**() return the number of bytes successfully encoded or a negative value if an error occurs.

## SEE ALSO

ASN1\_item\_d2i(3), ESS\_SIGNING\_CERT\_new(3)

## STANDARDS

RFC 2634: Enhanced Security Services for S/MIME, section 5: Signing Certificate Attribute

## HISTORY

These functions first appeared in OpenSSL 1.0.0 and have been available since OpenBSD 4.9.
