OSSL_IETF_ATTR_SYNTAX(3SSL)

πŸ’– OSSL_IETF_ATTR_SYNTAX πŸ’–

okay bestie, welcome to the OSSL_IETF_ATTR_SYNTAX page from the OpenSSL manual (section 3SSL). yes it's a whole mouthful of a name, but stick with me, we're gonna slay this 🫢

The whole squad of functions we're covering here:

  • OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority
  • OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority
  • OSSL_IETF_ATTR_SYNTAX_get_value_num
  • OSSL_IETF_ATTR_SYNTAX_get0_value
  • OSSL_IETF_ATTR_SYNTAX_add1_value

they're all accessors and setters for OSSL_IETF_ATTR_SYNTAX, literally the friend group of this struct πŸ’…


✨ SYNOPSIS ✨

#include <openssl/x509_acert.h>

typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX;

const GENERAL_NAMES *
OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a);
void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a,
                                                GENERAL_NAMES *names);

int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a);
void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a,
                                       int ind, int *type);
int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type,
                                     void *data);

🌸 DESCRIPTION 🌸

OSSL_IETF_ATTR_SYNTAX is an opaque structure (so like, don't go peeking at its insides, it's private bestie πŸ™ˆ) that represents the IetfAttrSyntax type defined in RFC 5755 (Section 4.4), all set up for use as an AttributeValue.

πŸ‘‘ policyAuthority things

OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority() and OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority() do exactly what they say on the tin: they get and set the policyAuthority field of the structure.

🚨 important: both routines act on internal pointers of the structure and must not be freed by the application. like, hands off, that's not yours to free, ok?? 😭

πŸ¦‹ the value sequence

An OSSL_IETF_ATTR_SYNTAX object also holds a sequence of values, and here's who does what:

  • OSSL_IETF_ATTR_SYNTAX_get_value_num() returns the number of values in the sequence.
  • OSSL_IETF_ATTR_SYNTAX_add1_value() adds a copy of data of a specified type to the sequence. The caller should free the data after use.
  • OSSL_IETF_ATTR_SYNTAX_get0_value() returns the value at a specific index ind in the sequence, or NULL on error. If type is not NULL, the type of the value gets written to that location. ✍️

🌈 the types, periodt

The type of the values stored in the OSSL_IETF_ATTR_SYNTAX value sequence is one of the following:

  • OSSL_IETFAS_OCTETS β€” a pointer to an ASN1_OCTET_STRING
  • OSSL_IETFAS_OID β€” a pointer to an ASN1_OBJECT
  • OSSL_IETFAS_STRING β€” a pointer to an ASN1_UTF8STRING

⭐ RETURN VALUES ⭐

  • OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority() returns a pointer to a GENERAL_NAMES structure, or NULL if the policy authority has not been set. (empty vibes, no policy authority yet πŸ’€)
  • OSSL_IETF_ATTR_SYNTAX_get_value_num() returns the number of entries in the value sequence, or -1 on error.
  • OSSL_IETF_ATTR_SYNTAX_get0_value() returns a pointer to the value at the given index, or NULL if the index is out of range.
  • OSSL_IETF_ATTR_SYNTAX_add1_value() returns 1 on success and 0 on failure.

πŸŽ€ HISTORY πŸŽ€

these icons were all added in OpenSSL 3.4:

  • OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority()
  • OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority()
  • OSSL_IETF_ATTR_SYNTAX_get_value_num()
  • OSSL_IETF_ATTR_SYNTAX_get0_value()
  • OSSL_IETF_ATTR_SYNTAX_add1_value()

Copyright 2021-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 bestie, you ate it πŸ“ this was OpenSSL 4.0.3, dated 2026-09-29 β€” no cap, go forth and handle your IetfAttrSyntax with main character energy πŸ‘‘βœ¨πŸ’–

πŸ“¦ where this page comes from