ADMISSIONS(3ossl)
πΈ NAME πΈ
Okay so bestie, welcome to the ADMISSIONS(3ossl) manual β the OpenSSL page for all the accessors and settors (yes, that spelling, we move) for ADMISSION_SYNTAX. These are the little icons of the admissions world, and here's the full cast, no cap:
ADMISSIONSADMISSIONS_get0_admissionAuthorityADMISSIONS_get0_namingAuthorityADMISSIONS_get0_professionInfosADMISSIONS_set0_admissionAuthorityADMISSIONS_set0_namingAuthorityADMISSIONS_set0_professionInfosADMISSION_SYNTAXADMISSION_SYNTAX_get0_admissionAuthorityADMISSION_SYNTAX_get0_contentsOfAdmissionsADMISSION_SYNTAX_set0_admissionAuthorityADMISSION_SYNTAX_set0_contentsOfAdmissionsNAMING_AUTHORITYNAMING_AUTHORITY_get0_authorityIdNAMING_AUTHORITY_get0_authorityURLNAMING_AUTHORITY_get0_authorityTextNAMING_AUTHORITY_set0_authorityIdNAMING_AUTHORITY_set0_authorityURLNAMING_AUTHORITY_set0_authorityTextPROFESSION_INFOPROFESSION_INFOSPROFESSION_INFO_get0_addProfessionInfoPROFESSION_INFO_get0_namingAuthorityPROFESSION_INFO_get0_professionItemsPROFESSION_INFO_get0_professionOIDsPROFESSION_INFO_get0_registrationNumberPROFESSION_INFO_set0_addProfessionInfoPROFESSION_INFO_set0_namingAuthorityPROFESSION_INFO_set0_professionItemsPROFESSION_INFO_set0_professionOIDsPROFESSION_INFO_set0_registrationNumber
β¨ SYNOPSIS β¨
Here's the whole lineup in its natural habitat, copied exactly because we do not mess with signatures, periodt:
typedef struct NamingAuthority_st NAMING_AUTHORITY;
typedef struct ProfessionInfo_st PROFESSION_INFO;
typedef STACK_OF(PROFESSION_INFO) PROFESSION_INFOS;
typedef struct Admissions_st ADMISSIONS;
typedef struct AdmissionSyntax_st ADMISSION_SYNTAX;
const ASN1_OBJECT *NAMING_AUTHORITY_get0_authorityId(
const NAMING_AUTHORITY *n);
void NAMING_AUTHORITY_set0_authorityId(NAMING_AUTHORITY *n,
ASN1_OBJECT* namingAuthorityId);
const ASN1_IA5STRING *NAMING_AUTHORITY_get0_authorityURL(
const NAMING_AUTHORITY *n);
void NAMING_AUTHORITY_set0_authorityURL(NAMING_AUTHORITY *n,
ASN1_IA5STRING* namingAuthorityUrl);
const ASN1_STRING *NAMING_AUTHORITY_get0_authorityText(
const NAMING_AUTHORITY *n);
void NAMING_AUTHORITY_set0_authorityText(NAMING_AUTHORITY *n,
ASN1_STRING* namingAuthorityText);
const GENERAL_NAME *ADMISSION_SYNTAX_get0_admissionAuthority(
const ADMISSION_SYNTAX *as);
void ADMISSION_SYNTAX_set0_admissionAuthority(
ADMISSION_SYNTAX *as, GENERAL_NAME *aa);
const STACK_OF(ADMISSIONS) *ADMISSION_SYNTAX_get0_contentsOfAdmissions(
const ADMISSION_SYNTAX *as);
void ADMISSION_SYNTAX_set0_contentsOfAdmissions(
ADMISSION_SYNTAX *as, STACK_OF(ADMISSIONS) *a);
const GENERAL_NAME *ADMISSIONS_get0_admissionAuthority(const ADMISSIONS *a);
void ADMISSIONS_set0_admissionAuthority(ADMISSIONS *a, GENERAL_NAME *aa);
const NAMING_AUTHORITY *ADMISSIONS_get0_namingAuthority(const ADMISSIONS *a);
void ADMISSIONS_set0_namingAuthority(ADMISSIONS *a, NAMING_AUTHORITY *na);
const PROFESSION_INFOS *ADMISSIONS_get0_professionInfos(const ADMISSIONS *a);
void ADMISSIONS_set0_professionInfos(ADMISSIONS *a, PROFESSION_INFOS *pi);
const ASN1_OCTET_STRING *PROFESSION_INFO_get0_addProfessionInfo(
const PROFESSION_INFO *pi);
void PROFESSION_INFO_set0_addProfessionInfo(
PROFESSION_INFO *pi, ASN1_OCTET_STRING *aos);
const NAMING_AUTHORITY *PROFESSION_INFO_get0_namingAuthority(
const PROFESSION_INFO *pi);
void PROFESSION_INFO_set0_namingAuthority(
PROFESSION_INFO *pi, NAMING_AUTHORITY *na);
const STACK_OF(ASN1_STRING) *PROFESSION_INFO_get0_professionItems(
const PROFESSION_INFO *pi);
void PROFESSION_INFO_set0_professionItems(
PROFESSION_INFO *pi, STACK_OF(ASN1_STRING) *as);
const STACK_OF(ASN1_OBJECT) *PROFESSION_INFO_get0_professionOIDs(
const PROFESSION_INFO *pi);
void PROFESSION_INFO_set0_professionOIDs(
PROFESSION_INFO *pi, STACK_OF(ASN1_OBJECT) *po);
const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber(
const PROFESSION_INFO *pi);
void PROFESSION_INFO_set0_registrationNumber(
PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn);
π¦ DESCRIPTION π¦
Okay, vibe check: the PROFESSION_INFOS, ADMISSION_SYNTAX, ADMISSIONS, and PROFESSION_INFO types are opaque structures representing the analogous types defined in the Common PKI Specification published by https://www.t7ev.org. You're expected to know those structures and what they mean, iykyk.
The conventional routines for converting between DER and the local format are covered in d2i_X509(3). The conventional routines for allocating and freeing the types are defined in X509_dup(3).
The PROFESSION_INFOS type is a stack of PROFESSION_INFO; see DEFINE_STACK_OF(3) for details.
The NAMING_AUTHORITY type has an authority ID and URL, and text fields. The getters return pointers to those values inside the object. The page's DESCRIPTION literally spells the URL and text ones with a double get0 β NAMING_AUTHORITY_get0_get0_authorityURL() and NAMING_AUTHORITY_get0_get0_authorityText() β alongside NAMING_AUTHORITY_get0_authorityId(). The setters free any existing value and set the pointer to the specified value, and they're written as NAMING_AUTHORITY_set0_authorityId(), NAMING_AUTHORITY_set0_get0_authorityURL(), and NAMING_AUTHORITY_set0_get0_authorityText(). Yes bestie, we keep the page's exact names, even the goofy ones. π
The ADMISSION_SYNTAX type has an authority name and a stack of ADMISSION objects. ADMISSION_SYNTAX_get0_admissionAuthority() and ADMISSION_SYNTAX_get0_contentsOfAdmissions() return pointers to those values within the object. ADMISSION_SYNTAX_set0_admissionAuthority() and ADMISSION_SYNTAX_set0_contentsOfAdmissions() free any existing value and set the pointer to the specified value.
The ADMISSION type has an authority name, authority object, and a stack of PROFESSION_INFO items. ADMISSIONS_get0_admissionAuthority(), ADMISSIONS_get0_namingAuthority(), and ADMISSIONS_get0_professionInfos() return pointers to those values within the object. ADMISSIONS_set0_admissionAuthority(), ADMISSIONS_set0_namingAuthority(), and ADMISSIONS_set0_professionInfos() free any existing value and set the pointer to the specified value.
The PROFESSION_INFO type has a name authority, stacks of profession Items and OIDs, a registration number, and additional profession info. PROFESSION_INFO_get0_addProfessionInfo(), PROFESSION_INFO_get0_namingAuthority(), PROFESSION_INFO_get0_professionItems(), PROFESSION_INFO_get0_professionOIDs(), and PROFESSION_INFO_get0_registrationNumber() return pointers to those values within the object. PROFESSION_INFO_set0_addProfessionInfo(), PROFESSION_INFO_set0_namingAuthority(), PROFESSION_INFO_set0_professionItems(), PROFESSION_INFO_set0_professionOIDs(), and PROFESSION_INFO_set0_registrationNumber() free any existing value and set the pointer to the specified value.
π RETURN VALUES π
Described above, bestie. And here's the important part:
β οΈ All of the get0 functions return a pointer to the internal data structure and must not be freed. Like, do not free them. Not even a little. π«Ά
π SEE ALSO π
π COPYRIGHT π
Copyright 2017-2018 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.
OpenSSL 3.5.0, dated 2026-09-25, signing off from the ADMISSIONS(3ossl) page. Stay opaque, stay iconic, and don't free those internal pointers. Mwah πβ¨
π¦ where this page comes from
- opensuse-leap 16.0: openssl-3-doc 3.5.0-160000.11.1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms