X509_CRL_GET0_BY_SERIAL(3)

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

πŸ’– NAME

Okay so this is the X509_CRL_GET0_BY_SERIAL(3) page from the Library Functions Manual, bestie β€” and it's giving β€œCRL entry management era” ✨.

X509_CRL_get0_by_serial, X509_CRL_get0_by_cert, X509_CRL_get_REVOKED, X509_CRL_add0_revoked, X509_CRL_sort β€” add, sort, and retrieve CRL entries. That's the whole menu, periodt πŸ’….

✨ SYNOPSIS

library β€œlibcrypto” #include <openssl/x509.h>

int
X509_CRL_get0_by_serial(X509_CRL *crl, X509_REVOKED **ret,
    ASN1_INTEGER *serial);

int
X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x);

STACK_OF(X509_REVOKED) *
X509_CRL_get_REVOKED(X509_CRL *crl);

int
X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev);

int
X509_CRL_sort(X509_CRL *crl);

πŸ¦‹ DESCRIPTION

  • X509_CRL_get0_by_serial() β€” attempts to find a revoked entry in crl for serial number serial. If it is successful, it sets *ret to the internal pointer of the matching entry. Consequently, *ret must not be freed up after the call 🫢. Like, hands off β€” it's not yours to free.
  • X509_CRL_get0_by_cert() β€” similar to X509_CRL_get0_by_serial() except that it looks for a revoked entry using the serial number of certificate x. Slay πŸ’….
  • X509_CRL_get_REVOKED() β€” returns an internal pointer to a stack of all revoked entries for crl. Internal pointer, bestie β€” no freeing it 🌸.
  • X509_CRL_add0_revoked() β€” appends revoked entry rev to CRL crl. The pointer rev is used internally, so it must not be freed up after the call: it is freed when the parent CRL is freed 🌈. So, like, leave rev alone.
  • X509_CRL_sort() β€” sorts the revoked entries of crl into ascending serial number order πŸ”₯. Sorted, cute, done.

Applications can determine the number of revoked entries returned by X509_CRL_get_revoked() using sk_X509_REVOKED_num() and examine each one in turn using sk_X509_REVOKED_value(), both defined in <openssl/safestack.h> 🧚.

πŸ”₯ RETURN VALUES

  • X509_CRL_get0_by_serial() and X509_CRL_get0_by_cert() β€” return 0 for failure or 1 for success, except if the revoked entry has the reason "removeFromCRL", in which case 2 is returned πŸ‘€. Yes, a surprise 2, iconic.
  • X509_CRL_add0_revoked() β€” returns 1 if successful; otherwise 0 is returned and an error code can be retrieved with ERR_get_error(3) 😭.
  • X509_CRL_sort() β€” returns 1 for success or 0 for failure. The current implementation cannot fail πŸ’€. So the failure return is there, but the current implementation is unbothered.
  • X509_CRL_get_REVOKED() β€” returns a STACK of revoked entries πŸ‘‘.

🌈 SEE ALSO

πŸŽ€ HISTORY

  • X509_CRL_get_REVOKED() first appeared in OpenSSL 0.9.2b and has been available since OpenBSD 2.6 🌱.
  • X509_CRL_add0_revoked() and X509_CRL_sort() first appeared in OpenSSL 0.9.7 and have been available since OpenBSD 3.2 πŸ’«.
  • X509_CRL_get0_by_serial() and X509_CRL_get0_by_cert() first appeared in OpenSSL 1.0.0 and have been available since OpenBSD 4.9 πŸ¦‹.

Cute sign-off: source/version is Debian, dated June 8, 2025, and the manual is X509_CRL_GET0_BY_SERIAL(3) β€” mwah, bestie πŸ’‹πŸŽ€.

πŸ“¦ where this page comes from