X509_CRL_PRINT(3)
β¨ X509_CRL_PRINT β¨
okay so bestie, welcome to the X509_CRL_PRINT(3) page π
this is one of those manual pages from the libcrypto library, and honestly? it's giving "let me spill all the tea about a certificate revocation list." Periodt.
πΈ SYNOPSIS πΈ
#include <openssl/x509.h>
int
X509_CRL_print(BIO *bio, X509_CRL *crl);
int
X509_CRL_print_fp(FILE *fp, X509_CRL *crl);
yep, that's it β two little functions, both living their best life inside libcrypto π«Ά
π¦ DESCRIPTION π¦
the main character: X509_CRL_print()
X509_CRL_print() takes everything contained in crl and prints it to bio in human-readable form. And it does it in this exact order, no cap:
- first up β the certificate revocation list version number, as defined by the standard, followed in parentheses by the value contained in the
versionfield in hexadecimal notation. if you want the deets, go checkX509_CRL_get_version(3)π - then β the name of the signature algorithm gets printed via
X509_signature_print(3). iconic. - then β the issuer name, as returned by
X509_CRL_get_issuer(3). slay. - then β the times of the last and next updates, as returned by
X509_CRL_get0_lastUpdate(3)andX509_CRL_get0_nextUpdate(3), are printed withASN1_TIME_print(3). timestamps, bestie β° - then β all X.509 extensions directly contained in the certificate revocation list object
crlare printed withX509V3_extensions_print(3). yes, all of them, we don't skip π - then β info about revoked certificates gets retrieved with
X509_CRL_get_REVOKED(3), and for each revoked certificate, the following gets printed:- the serial number of the certificate, printed with
i2a_ASN1_INTEGER(3)π - the revocation date, printed with
ASN1_TIME_print(3)π - all X.509 extensions contained in the revocation entry, printed with
X509V3_extensions_print(3)π
- the serial number of the certificate, printed with
- and finally β the signature of
crlis printed withX509_signature_print(3). closing act, main character energy π
and the sibling: X509_CRL_print_fp()
X509_CRL_print_fp() is literally the same vibe as X509_CRL_print() β the one difference? it prints to fp. that's it, that's the whole personality π
β RETURN VALUES β
these functions are intended to return 1 for success and 0 for error. intended. keep that word in mind, we'll circle back in a sec π
π§ SEE ALSO π§
BIO_new(3), X509_CRL_new(3), X509_print_ex(3), X509_REVOKED_new(3) β go read those too, iykyk π
π HISTORY π
these functions first appeared in OpenSSL 0.9.2 and have been available since OpenBSD 2.6. vintage, honestly. lowkey elder icons π°οΈ
π BUGS π
bestie. sit down. we need to talk.
- most I/O errors are silently ignored. like, not even a little "hey something went wrong" β just silence. and even if the information printed is incomplete, these functions may return
1anyway π so yeah, "intended" is doing a lot of heavy lifting up there in RETURN VALUES. - if the version number is invalid, no information from the CRL is printed and the functions fail. fair enough, honestly π«Ά
and that's the page, bestie! Debian, June 8, 2025 β mwah, go print some CRLs responsibly πβ¨
π¦ 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) 2021 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