D2I_ESS_SIGNING_CERT(3)

πŸ“¦ version 4.4.0, in alpine 3.24, arch rolling

✨ NAME ✨

okay so bestie, welcome to the D2I_ESS_SIGNING_CERT(3) page from the Library Functions Manual πŸ’– this is the group chat for d2i_ESS_SIGNING_CERT, i2d_ESS_SIGNING_CERT, d2i_ESS_CERT_ID, i2d_ESS_CERT_ID, d2i_ESS_ISSUER_SERIAL, and i2d_ESS_ISSUER_SERIAL β€” decode and encode signing certificates for S/MIME. periodt. πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

the library is libcrypto, and the include is <openssl/ts.h> β€” here's the exact lineup, no cap:

library β€œlibcrypto” #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 the full tea on 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. iconic ASN.1 behavior.
  • 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) β€” go read these too, bestie, iykyk 🫢


🌈 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. lowkey a little time capsule moment. πŸ•°οΈ


mwah πŸ’– this cutie came from Debian, dated June 8, 2025, on the D2I_ESS_SIGNING_CERT(3) page β€” bye bestie, slay your signing certs βœ¨πŸ“

πŸ“¦ where this page comes from