---
name: "libressl-X509_get_subject_name"
section: "3"
platform: "linux"
package: "libressl"
version: "4.4.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/libressl-X509_get_subject_name"
---

# libressl-X509\_get\_subject\_name(3)

get and set issuer or subject names

## 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

## SYNOPSIS

Crypto Library (libcrypto, -lcrypto)

**#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

**X509\_get\_subject\_name**() returns the subject name of certificate *x*. The returned value is an internal pointer which must not be freed.

**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.

**X509\_get\_issuer\_name**() and **X509\_set\_issuer\_name**() are 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.

**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

d2i\_X509\_NAME(3), X509\_CRL\_get0\_by\_serial(3), X509\_CRL\_new(3), X509\_get\_pubkey(3), X509\_NAME\_add\_entry\_by\_txt(3), X509\_NAME\_ENTRY\_get\_object(3), X509\_NAME\_get\_index\_by\_NID(3), X509\_NAME\_new(3), X509\_NAME\_print\_ex(3), X509\_new(3), X509\_REQ\_new(3), X509\_sign(3), X509\_verify\_cert(3), X509V3\_get\_d2i(3)

## 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.
