X509_ACERT_GET_ATTR(3SSL)

πŸ’– X509_ACERT_GET_ATTR πŸ’–

okay bestie, so this one lives in the OpenSSL manual, section 3SSL β€” it's all about pulling attributes out of an X509_ACERT struct, and honestly? it's giving very demure, very mindful little getter functions. ✨


🌸 NAME 🌸

X509_ACERT_get_attr, X509_ACERT_get_attr_by_NID, X509_ACERT_get_attr_by_OBJ, X509_ACERT_get_attr_count β€” these are your girls for retrieving attributes out of an X509_ACERT structure. πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

#include <openssl/x509_acert.h>

X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc);
int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos);
int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj,
                               int lastpos);
int X509_ACERT_get_attr_count(const X509_ACERT *x);

✨ DESCRIPTION ✨

so basically:

X509_ACERT_get0_attr() pulls out the loc-th X509_ATTRIBUTE from an X509_ACERT called x. 🫢 And X509_ACERT_get_attr_count() tells you the total number of attributes in that X509_ACERT β€” like a little headcount for your attribute situation.

Now for the matching girlies: X509_ACERT_get_attr_by_NID() and X509_ACERT_get_attr_by_OBJ() go hunting for the next attribute location that matches nid or obj after lastpos. 🌈

okay important bit: lastpos should initially be set to -1. That's the starting line, bestie, don't skip it.
  • if there are no more entries, -1 comes back at you 😭
  • if nid is invalid (aka it doesn't correspond to a valid OID), then -2 is what you get. πŸ’€

πŸ‘‘ RETURN VALUES πŸ‘‘

X509_ACERT_get0_attr() returns an X509_ATTRIBUTE from an attribute certificate, or NULL if the specified attribute is literally not found. πŸ™ˆ

X509_ACERT_get_attr_by_NID() and X509_ACERT_get_attr_by_OBJ() return the location of the next attribute you asked for, or -1 if it's not found. Also, X509_ACERT_get_attr_by_NID() can hit you with -2 if the supplied NID is invalid. 🫠

X509_ACERT_get_attr_count() returns the number of attributes in the given attribute certificate. simple, iconic, no notes. ⭐


πŸ¦‹ HISTORY πŸ¦‹

X509_ACERT_get0_attr(), X509_ACERT_get_attr_by_NID(), X509_ACERT_get_attr_by_OBJ() and X509_ACERT_get_attr_count() all made their debut in OpenSSL 3.4. era. πŸ’œ


Copyright 2023-2024 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 <https://www.openssl.org/source/license.html>.


and that's the whole page, fr fr β€” no cap, that was every single detail. mwah πŸ’‹

this was page X509_ACERT_GET_ATTR(3SSL) from the 4.0.3 release, dated 2026-09-29 β€” thanks for reading, bestie, go slay those attributes πŸ’…βœ¨

πŸ“¦ where this page comes from