ESS_SIGNING_CERT_NEW(3)
π NAME π
okay so bestie, this is the whole group-chat vibe for ESS_SIGNING_CERT_new(3) and its besties β ESS_SIGNING_CERT_free, ESS_CERT_ID_new, ESS_CERT_ID_free, ESS_ISSUER_SERIAL_new, and ESS_ISSUER_SERIAL_free β aka signing certificates for S/MIME, periodt π
. this page is from the Library Functions Manual, and we are about to make ASN.1 signing-cert stuff make sense, iykyk β¨.
β¨ SYNOPSIS β¨
first up, the library + header situation, exactly as it appears:
library βlibcryptoβ #include <openssl/ts.h>
then the function prototypes, no cap:
ESS_SIGNING_CERT *
ESS_SIGNING_CERT_new(void);
void
ESS_SIGNING_CERT_free(ESS_SIGNING_CERT *signing_cert);
ESS_CERT_ID *
ESS_CERT_ID_new(void);
void
ESS_CERT_ID_free(ESS_CERT_ID *cert_id);
ESS_ISSUER_SERIAL *
ESS_ISSUER_SERIAL_new(void);
void
ESS_ISSUER_SERIAL_free(ESS_ISSUER_SERIAL *issuer_serial);
π DESCRIPTION π
the signing certificate may be included in the signedAttributes field of a SignerInfo structure to mitigate simple substitution and re-issue attacks. security slay π‘οΈβ¨
ESS_SIGNING_CERT_new()β allocates and initializes an emptyESS_SIGNING_CERTobject, representing an ASN.1SigningCertificatestructure defined in RFC 2634 section 5.4. it can hold the certificate used for signing the data, additional authorization certificates that can be used during validation, and policies applying to the certificate.ESS_SIGNING_CERT_free()freessigning_cert.ESS_CERT_ID_new()β allocates and initializes an emptyESS_CERT_IDobject, representing an ASN.1ESSCertIDstructure defined in RFC 2634 section 5.4.1. such objects can be used insideESS_SIGNING_CERTobjects, and each one can hold a SHA1 hash of one certificate.ESS_CERT_ID_free()freescert_id.ESS_ISSUER_SERIAL_new()β allocates and initializes an emptyESS_ISSUER_SERIALobject, representing an ASN.1IssuerSerialstructure defined in RFC 2634 section 5.4.1. it can hold an issuer name and a serial number and can be included in anESS_CERT_IDobject, which is useful for additional authorization certificates, but redundant for the signing certificate itself.ESS_ISSUER_SERIAL_free()freesissuer_serial.
π RETURN VALUES π
ESS_SIGNING_CERT_new(), ESS_CERT_ID_new(), and ESS_ISSUER_SERIAL_new() return the new ESS_SIGNING_CERT, ESS_CERT_ID, or ESS_ISSUER_SERIAL object, respectively, or NULL if an error occurred. so if you get NULL, that is the error vibe π.
π¦ SEE ALSO π¦
go read that one next, bestie ππ
π STANDARDS π
RFC 2634: Enhanced Security Services for S/MIME, section 5: Signing Certificate Attribute- note that
RFC 2634has been updated byRFC 5035: Enhanced Security Services (ESS) Update: Adding CertID Algorithm Agility. but the current implementation only supports the Signing Certificate Attribute Definition Version 1 according toRFC 2634, not the Signing Certificate Attribute Definition Version 2 according toRFC 5035.
π§ HISTORY π§
these functions first appeared in OpenSSL 1.0.0 and have been available since OpenBSD 4.9.
okay that is the whole page, bestie π β this one is from Debian, dated June 8, 2025, and it is the manual page for ESS_SIGNING_CERT_NEW(3). go forth and sign those certificates, mwah πβ¨
π¦ where this page comes from
- alpine 3.24: libressl-doc 4.3.1-r0 Β· custom
- arch rolling: libressl 4.4.0-1 Β· ISC AND custom:OpenSSL
- Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms