X509\_STORE\_CTX\_GET\_BY\_SUBJECT(3ossl) OpenSSL X509\_STORE\_CTX\_GET\_BY\_SUBJECT(3ossl)

# [NAME](#NAME)

X509\_STORE\_CTX\_get\_by\_subject, X509\_STORE\_CTX\_get\_obj\_by\_subject - X509 and X509\_CRL lookup functions

# [SYNOPSIS](#SYNOPSIS)

```
 #include <openssl/x509_vfy.h>
 int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs,
                                   X509_LOOKUP_TYPE type,
                                   const X509_NAME *name, X509_OBJECT *ret);
 X509_OBJECT *X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs,
                                                X509_LOOKUP_TYPE type,
                                                const X509_NAME *name);
```

# [DESCRIPTION](#DESCRIPTION)

**X509\_STORE\_CTX\_get\_by\_subject()** tries to find an object of given *type*, which may be **X509\_LU\_X509** or **X509\_LU\_CRL**, and subject *name* from the store in the provided store context *vs*. If found and *ret* is not NULL, it increments the reference count and stores the looked up object in *ret*.

**X509\_STORE\_CTX\_get\_obj\_by\_subject()** is like **X509\_STORE\_CTX\_get\_by\_subject()** but returns the found object on success, else NULL.

# [NOTES](#NOTES)

These functions are safe to use in a multithreaded environment and with lookup functions on the same store.

Applications sharing a store across threads should manage its lifetime with [**X509\_STORE\_up\_ref**(3)](/man/os/openssl-4.0/X509_STORE_up_ref.3) and [**X509\_STORE\_free**(3)](/man/os/openssl-4.0/X509_STORE_free.3), and must ensure that all lookup operations have completed before the store is freed. See "Thread Safety" in [**X509\_STORE\_new**(3)](/man/os/openssl-4.0/X509_STORE_new.3) for more discussion of the **X509\_STORE** threading model.

# [RETURN VALUES](#RETURN_VALUES)

**X509\_STORE\_CTX\_get\_by\_subject()** returns 1 if the lookup was successful, else 0.

**X509\_STORE\_CTX\_get\_obj\_by\_subject()** returns an object on success, else NULL.

# [SEE ALSO](#SEE_ALSO)

[**X509\_LOOKUP\_meth\_set\_get\_by\_subject**(3)](/man/os/openssl-4.0/X509_LOOKUP_meth_set_get_by_subject.3), [**X509\_LOOKUP\_by\_subject**(3)](/man/os/openssl-4.0/X509_LOOKUP_by_subject.3), [**X509\_STORE\_new**(3)](/man/os/openssl-4.0/X509_STORE_new.3)

# [COPYRIGHT](#COPYRIGHT)

Copyright 2022-2026 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at &lt;https://www.openssl.org/source/license.html&gt;.

2026-09-29 4.0.3

---

Document: X509_STORE_CTX_get_obj_by_subject(3ossl) from openssl-4.0 4.0.3-r8 (Chainguard OS)
