X509_GET1_EMAIL(3)

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

πŸ’– NAME πŸ’–

okay bestie, welcome to X509_GET1_EMAIL(3) from the Library Functions Manual ✨ This is the page for X509_get1_email, X509_get1_ocsp, and X509_email_free β€” literally utilities for stacks of strings. periodt πŸ’…

✨ SYNOPSIS ✨

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

typedef char *OPENSSL_STRING;

STACK_OF(OPENSSL_STRING) *
X509_get1_email(X509 *certificate);

STACK_OF(OPENSSL_STRING) *
X509_get1_ocsp(X509 *certificate);

void
X509_email_free(STACK_OF(OPENSSL_STRING) *stack);

πŸ¦‹ DESCRIPTION πŸ¦‹

  • X509_get1_email() β€” retrieves all email addresses from the subject field and from any Subject Alternative Name extension of the certificate. like, all of them, bestie πŸ’Œ
  • X509_get1_ocsp() β€” retrieves all uniform resource identifiers from all AccessDescription objects having an accessMethod of OCSP which are contained in the Authority Information Access extension of the certificate. very specific, very iconic πŸŽ€
  • X509_email_free() β€” frees all strings stored in the stack as well as the stack itself. If stack is a NULL pointer, no action occurs β€” literally nothing happens, no drama 🫢

🌸 RETURN VALUES 🌸

X509_REQ_get1_email() and X509_get1_ocsp() return newly allocated stacks of char * containing copies of the addresses in question, or NULL if there are no addresses or if an error occurs.

yes, the page literally says X509_REQ_get1_email() right there β€” I’m not editing it, I’m just reporting the vibes πŸ’€

πŸ‘‘ SEE ALSO πŸ‘‘

🌈 STANDARDS 🌈

  • RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
    • section 4.1: Basic Certificate Fields
    • section 4.1.2.6: Subject
    • section 4.2.1.6: Subject Alternative Name
    • section 4.2.2.1: Authority Information Access
  • RFC 2985: PKCS #9: Selected Object Classes and Attribute Types
    • section 5.2.1: Electronic-mail address
    • appendix B.3.5: emailAddress

πŸŽ€ HISTORY πŸŽ€

  • X509_get1_email() and X509_email_free() first appeared in OpenSSL 0.9.6 and have been available since OpenBSD 2.9.
  • X509_get1_ocsp() first appeared in OpenSSL 0.9.8h and has been available since OpenBSD 4.5.

πŸ’€ BUGS πŸ’€

X509_email_free() is utterly misnamed. It does not operate on any X509 object, nor is it in any way restricted to email addresses; instead, it simply frees a stack of strings.

the audacity 😭 the name said email but the function said β€œbestie I’m just a stack freer” β€” iconic behavior, honestly

πŸ’– xoxo bestie β€” this page came from Debian, dated June 8, 2025, and it’s X509_GET1_EMAIL(3) signing off. mwah πŸ’–

πŸ“¦ where this page comes from