X509_GET_SUBJECT_NAME(3)

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

πŸŽ€ NAME πŸŽ€

X509_get_subject_name, X509_set_subject_name, X509_get_issuer_name, X509_set_issuer_name, X509_REQ_get_subject_name, X509_REQ_set_subject_name, X509_CRL_get_issuer, X509_CRL_set_issuer_name β€” get and set issuer or subject names

Okay bestie, welcome to X509_GET_SUBJECT_NAME(3) from the Library Functions Manual. This one is literally cert-name surgery, and the vibes are administrative but make it ✨iconic✨.


✨ SYNOPSIS ✨

library β€œlibcrypto” #include <openssl/x509.h>
X509_NAME *
X509_get_subject_name(const X509 *x);

int
X509_set_subject_name(X509 *x, X509_NAME *name);

X509_NAME *
X509_get_issuer_name(const X509 *x);

int
X509_set_issuer_name(X509 *x, X509_NAME *name);

X509_NAME *
X509_REQ_get_subject_name(const X509_REQ *req);

int
X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name);

X509_NAME *
X509_CRL_get_issuer(const X509_CRL *crl);

int
X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name);

πŸ¦‹ DESCRIPTION πŸ¦‹

So here's the group-chat rundown, bestie πŸ’–

  • X509_get_subject_name() β€” returns the subject name of certificate x. The returned value is an internal pointer which must not be freed.
🚨 Do not free that returned internal pointer. It is not yours to free, bestie. Put the free() down. Step away from the free().
  • X509_set_subject_name() β€” sets the issuer name of certificate x to name. The name parameter is copied internally and should be freed up when it is no longer needed.
πŸ’€ Yes, the function is called set_subject_name and the sentence says issuer name. That is exactly what the page says. We are keeping the facts, not fixing the plot.
  • X509_get_issuer_name() and X509_set_issuer_name() β€” identical to X509_get_subject_name() and X509_set_subject_name() except that they get and set the issuer name of x.
  • Similarly, X509_REQ_get_subject_name(), X509_REQ_set_subject_name(), X509_CRL_get_issuer(), and X509_CRL_set_issuer_name() get or set the subject or issuer names of certificate requests of CRLs, respectively.

🌸 RETURN VALUES 🌸

  • X509_get_subject_name(), X509_get_issuer_name(), X509_REQ_get_subject_name(), and X509_CRL_get_issuer() return a pointer to an X509_NAME object. Slay πŸ’…
  • X509_set_subject_name(), X509_set_issuer_name(), X509_REQ_set_subject_name(), and X509_CRL_set_issuer_name() return 1 for success or 0 for failure. In some cases of failure, the reason can be determined with ERR_get_error(3).

πŸ‘‘ SEE ALSO πŸ‘‘


🧚 HISTORY 🧚

  • X509_get_subject_name() and X509_get_issuer_name() appeared in SSLeay 0.4 or earlier.
  • X509_set_subject_name(), X509_set_issuer_name(), X509_REQ_get_subject_name(), and X509_REQ_set_subject_name() first appeared in SSLeay 0.6.5.
  • These functions have been available since OpenBSD 2.4.
  • X509_CRL_get_issuer() first appeared in OpenSSL 0.9.2b and has been available since OpenBSD 2.6.
  • X509_CRL_set_issuer_name() first appeared in OpenSSL 0.9.7 and has been available since OpenBSD 3.2.

Mwah πŸ’‹ this cutie pie page is from Debian, dated June 8, 2025 β€” go forth and name those certs, bestie πŸŽ€βœ¨

πŸ“¦ where this page comes from