From fa7435820ee9075fa542baf2577b77f5fd8f801d Mon Sep 17 00:00:00 2001 From: Rich Salz Date: Fri, 6 Oct 2017 00:52:12 +0100 Subject: [PATCH] Add accessors for AdmissionSyntax Based on code from Matthias Ballreich, Steve Henson, and Wolf Tobias. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/4724) --- crypto/x509v3/v3_admis.c | 152 +++++++++++++++++++++++++++++++++ crypto/x509v3/v3_admis.h | 30 ++----- doc/man3/ADMISSIONS.pod | 179 +++++++++++++++++++++++++++++++++++++++ doc/man3/X509_dup.pod | 10 +++ doc/man3/d2i_X509.pod | 8 ++ include/openssl/x509v3.h | 65 ++++++++++++++ util/libcrypto.num | 50 +++++++++++ util/private.num | 5 ++ 8 files changed, 477 insertions(+), 22 deletions(-) create mode 100644 doc/man3/ADMISSIONS.pod diff --git a/crypto/x509v3/v3_admis.c b/crypto/x509v3/v3_admis.c index bff5d735db..4871cc84d4 100644 --- a/crypto/x509v3/v3_admis.c +++ b/crypto/x509v3/v3_admis.c @@ -202,3 +202,155 @@ static int i2r_ADMISSION_SYNTAX(const struct v3_ext_method *method, void *in, err: return -1; } + +const ASN1_OBJECT *NAMING_AUTHORITY_get0_authorityId(const NAMING_AUTHORITY *n) +{ + return n->namingAuthorityId; +} + +void NAMING_AUTHORITY_set0_authorityId(NAMING_AUTHORITY *n, ASN1_OBJECT* id) +{ + ASN1_OBJECT_free(n->namingAuthorityId); + n->namingAuthorityId = id; +} + +const ASN1_IA5STRING *NAMING_AUTHORITY_get0_authorityURL( + const NAMING_AUTHORITY *n) +{ + return n->namingAuthorityUrl; +} + +void NAMING_AUTHORITY_set0_authorityURL(NAMING_AUTHORITY *n, ASN1_IA5STRING* u) +{ + ASN1_IA5STRING_free(n->namingAuthorityUrl); + n->namingAuthorityUrl = u; +} + +const ASN1_STRING *NAMING_AUTHORITY_get0_authorityText( + const NAMING_AUTHORITY *n) +{ + return n->namingAuthorityText; +} + +void NAMING_AUTHORITY_set0_authorityText(NAMING_AUTHORITY *n, ASN1_STRING* t) +{ + ASN1_IA5STRING_free(n->namingAuthorityText); + n->namingAuthorityText = t; +} + +const GENERAL_NAME *ADMISSION_SYNTAX_get0_admissionAuthority(const ADMISSION_SYNTAX *as) +{ + return as->admissionAuthority; +} + +void ADMISSION_SYNTAX_set0_admissionAuthority(ADMISSION_SYNTAX *as, + GENERAL_NAME *aa) +{ + GENERAL_NAME_free(as->admissionAuthority); + as->admissionAuthority = aa; +} + +const STACK_OF(ADMISSIONS) *ADMISSION_SYNTAX_get0_contentsOfAdmissions(const ADMISSION_SYNTAX *as) +{ + return as->contentsOfAdmissions; +} + +void ADMISSION_SYNTAX_set0_contentsOfAdmissions(ADMISSION_SYNTAX *as, + STACK_OF(ADMISSIONS) *a) +{ + sk_ADMISSIONS_pop_free(as->contentsOfAdmissions, ADMISSIONS_free); + as->contentsOfAdmissions = a; +} + +const GENERAL_NAME *ADMISSIONS_get0_admissionAuthority(const ADMISSIONS *a) +{ + return a->admissionAuthority; +} + +void ADMISSIONS_set0_admissionAuthority(ADMISSIONS *a, GENERAL_NAME *aa) +{ + GENERAL_NAME_free(a->admissionAuthority); + a->admissionAuthority = aa; +} + +const NAMING_AUTHORITY *ADMISSIONS_get0_namingAuthority(const ADMISSIONS *a) +{ + return a->namingAuthority; +} + +void ADMISSIONS_set0_namingAuthority(ADMISSIONS *a, NAMING_AUTHORITY *na) +{ + NAMING_AUTHORITY_free(a->namingAuthority); + a->namingAuthority = na; +} + +const PROFESSION_INFOS *ADMISSIONS_get0_professionInfos(const ADMISSIONS *a) +{ + return a->professionInfos; +} + +void ADMISSIONS_set0_professionInfos(ADMISSIONS *a, PROFESSION_INFOS *pi) +{ + sk_PROFESSION_INFO_pop_free(a->professionInfos, PROFESSION_INFO_free); + a->professionInfos = pi; +} + +const ASN1_OCTET_STRING *PROFESSION_INFO_get0_addProfessionInfo(const PROFESSION_INFO *pi) +{ + return pi->addProfessionInfo; +} + +void PROFESSION_INFO_set0_addProfessionInfo(PROFESSION_INFO *pi, + ASN1_OCTET_STRING *aos) +{ + ASN1_OCTET_STRING_free(pi->addProfessionInfo); + pi->addProfessionInfo = aos; +} + +const NAMING_AUTHORITY *PROFESSION_INFO_get0_namingAuthority(const PROFESSION_INFO *pi) +{ + return pi->namingAuthority; +} + +void PROFESSION_INFO_set0_namingAuthority(PROFESSION_INFO *pi, + NAMING_AUTHORITY *na) +{ + NAMING_AUTHORITY_free(pi->namingAuthority); + pi->namingAuthority = na; +} + +const STACK_OF(ASN1_STRING) *PROFESSION_INFO_get0_professionItems(const PROFESSION_INFO *pi) +{ + return pi->professionItems; +} + +void PROFESSION_INFO_set0_professionItems(PROFESSION_INFO *pi, + STACK_OF(ASN1_STRING) *as) +{ + sk_ASN1_STRING_pop_free(pi->professionItems, ASN1_STRING_free); + pi->professionItems = as; +} + +const STACK_OF(ASN1_OBJECT) *PROFESSION_INFO_get0_professionOIDs(const PROFESSION_INFO *pi) +{ + return pi->professionOIDs; +} + +void PROFESSION_INFO_set0_professionOIDs(PROFESSION_INFO *pi, + STACK_OF(ASN1_OBJECT) *po) +{ + sk_ASN1_OBJECT_pop_free(pi->professionOIDs, ASN1_OBJECT_free); + pi->professionOIDs = po; +} + +const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber(const PROFESSION_INFO *pi) +{ + return pi->registrationNumber; +} + +void PROFESSION_INFO_set0_registrationNumber(PROFESSION_INFO *pi, + ASN1_PRINTABLESTRING *rn) +{ + ASN1_PRINTABLESTRING_free(pi->registrationNumber); + pi->registrationNumber = rn; +} diff --git a/crypto/x509v3/v3_admis.h b/crypto/x509v3/v3_admis.h index 4f65b6d4f0..90099ef5a7 100644 --- a/crypto/x509v3/v3_admis.h +++ b/crypto/x509v3/v3_admis.h @@ -14,44 +14,30 @@ extern "C" { #endif -typedef struct NamingAuthority_st { +struct NamingAuthority_st { ASN1_OBJECT* namingAuthorityId; ASN1_IA5STRING* namingAuthorityUrl; ASN1_STRING* namingAuthorityText; /* i.e. DIRECTORYSTRING */ -} NAMING_AUTHORITY; +}; -typedef struct ProfessionInfo_st { +struct ProfessionInfo_st { NAMING_AUTHORITY* namingAuthority; STACK_OF(ASN1_STRING)* professionItems; /* i.e. DIRECTORYSTRING */ STACK_OF(ASN1_OBJECT)* professionOIDs; ASN1_PRINTABLESTRING* registrationNumber; ASN1_OCTET_STRING* addProfessionInfo; -} PROFESSION_INFO; +}; -typedef struct Admissions_st { +struct Admissions_st { GENERAL_NAME* admissionAuthority; NAMING_AUTHORITY* namingAuthority; STACK_OF(PROFESSION_INFO)* professionInfos; -} ADMISSIONS; +}; -typedef struct AdmissionSyntax_st { +struct AdmissionSyntax_st { GENERAL_NAME* admissionAuthority; STACK_OF(ADMISSIONS)* contentsOfAdmissions; -} ADMISSION_SYNTAX; - -DECLARE_ASN1_ITEM(ADMISSIONS) -DECLARE_ASN1_ITEM(NAMING_AUTHORITY) -DECLARE_ASN1_ITEM(PROFESSION_INFO) -DECLARE_ASN1_ITEM(ADMISSION_SYNTAX) - -DECLARE_ASN1_FUNCTIONS(NAMING_AUTHORITY) -DECLARE_ASN1_FUNCTIONS(PROFESSION_INFO) -DECLARE_ASN1_FUNCTIONS(ADMISSIONS) -DECLARE_ASN1_FUNCTIONS(ADMISSION_SYNTAX) - -DEFINE_STACK_OF(ADMISSIONS) -DEFINE_STACK_OF(PROFESSION_INFO) -DEFINE_STACK_OF(ASN1_STRING) +}; #ifdef __cplusplus } diff --git a/doc/man3/ADMISSIONS.pod b/doc/man3/ADMISSIONS.pod new file mode 100644 index 0000000000..312e30005a --- /dev/null +++ b/doc/man3/ADMISSIONS.pod @@ -0,0 +1,179 @@ +=pod + +=head1 NAME + +ADMISSIONS, +ADMISSIONS_get0_admissionAuthority, +ADMISSIONS_get0_namingAuthority, +ADMISSIONS_get0_professionInfos, +ADMISSIONS_set0_admissionAuthority, +ADMISSIONS_set0_namingAuthority, +ADMISSIONS_set0_professionInfos, +ADMISSION_SYNTAX, +ADMISSION_SYNTAX_get0_admissionAuthority, +ADMISSION_SYNTAX_get0_contentsOfAdmissions, +ADMISSION_SYNTAX_set0_admissionAuthority, +ADMISSION_SYNTAX_set0_contentsOfAdmissions, +NAMING_AUTHORITY, +NAMING_AUTHORITY_get0_authorityId, +NAMING_AUTHORITY_get0_authorityURL, +NAMING_AUTHORITY_get0_authorityText, +NAMING_AUTHORITY_set0_authorityId, +NAMING_AUTHORITY_set0_authorityURL, +NAMING_AUTHORITY_set0_authorityText, +PROFESSION_INFO, +PROFESSION_INFOS, +PROFESSION_INFO_get0_addProfessionInfo, +PROFESSION_INFO_get0_namingAuthority, +PROFESSION_INFO_get0_professionItems, +PROFESSION_INFO_get0_professionOIDs, +PROFESSION_INFO_get0_registrationNumber, +PROFESSION_INFO_set0_addProfessionInfo, +PROFESSION_INFO_set0_namingAuthority, +PROFESSION_INFO_set0_professionItems, +PROFESSION_INFO_set0_professionOIDs, +PROFESSION_INFO_set0_registrationNumber +- Accessors and settors for ADMISSION_SYNTAX + +=head1 SYNOPSIS + + 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); + +=head1 DESCRIPTION + +The B, B, B, and +B types are opaque structures representing the +analogous types defined in the Common PKI Specification published +by L. +Knowledge of those strutures and their semantics is assumed. + +The conventional routines to convert between DER and the local format +are desribed in L. +The conventional routines to allocate and free the types are defined +in L. + +The B type is a stack of B; see +L for details. + +The B type has an authority ID and URL, and text fields. +The NAMING_AUTHORITY_get0_authorityId(), +NAMING_AUTHORITY_get0_get0_authorityURL(), and +NAMING_AUTHORITY_get0_get0_authorityText(), functions return pointers +to those values within the object. +The NAMING_AUTHORITY_set0_authorityId(), +NAMING_AUTHORITY_set0_get0_authorityURL(), and +NAMING_AUTHORITY_set0_get0_authorityText(), +functions free any existing value and set the pointer to the specified value. + +The B type has an authority name and a stack of +B objects. +The ADMISSION_SYNTAX_get0_admissionAuthority() +and ADMISSION_SYNTAX_get0_contentsOfAdmissions() functions return pointers +to those values within the object. +The +ADMISSION_SYNTAX_set0_admissionAuthority() and +ADMISSION_SYNTAX_set0_contentsOfAdmissions() +functions free any existing value and set the pointer to the specified value. + +The B type has an authority name, authority object, and a +stack of B items. +The ADMISSIONS_get0_admissionAuthority(), ADMISSIONS_get0_namingAuthority(), +and ADMISSIONS_get0_professionInfos() +functions return pointers to those values within the object. +The +ADMISSIONS_set0_admissionAuthority(), +ADMISSIONS_set0_namingAuthority(), and +ADMISSIONS_set0_professionInfos() +functions free any existing value and set the pointer to the specified value. + +The B type has a name authority, stacks of +profession Items and OIDs, a registration number, and additional +profession info. +The functions PROFESSION_INFO_get0_addProfessionInfo(), +PROFESSION_INFO_get0_namingAuthority(), PROFESSION_INFO_get0_professionItems(), +PROFESSION_INFO_get0_professionOIDs(), and +PROFESSION_INFO_get0_registrationNumber() +functions return pointers to those values within the object. +The +PROFESSION_INFO_set0_addProfessionInfo(), +PROFESSION_INFO_set0_namingAuthority(), +PROFESSION_INFO_set0_professionItems(), +PROFESSION_INFO_set0_professionOIDs(), and +PROFESSION_INFO_set0_registrationNumber() +functions free any existing value and set the pointer to the specified value. + +=head1 RETURN VALUES + +Described above. +Note that all of the I functions return a pointer to the internal data +structure and must not be freed. + +=head1 SEE ALSO + +L, +L, + +=head1 COPYRIGHT + +Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (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 +L. + +=cut diff --git a/doc/man3/X509_dup.pod b/doc/man3/X509_dup.pod index f1b2761553..8f2680f7b1 100644 --- a/doc/man3/X509_dup.pod +++ b/doc/man3/X509_dup.pod @@ -7,6 +7,10 @@ IMPLEMENT_ASN1_FUNCTIONS, ASN1_ITEM, ACCESS_DESCRIPTION_free, ACCESS_DESCRIPTION_new, +ADMISSIONS_free, +ADMISSIONS_new, +ADMISSION_SYNTAX_free, +ADMISSION_SYNTAX_new, ASIdOrRange_free, ASIdOrRange_new, ASIdentifierChoice_free, @@ -75,6 +79,8 @@ ISSUING_DIST_POINT_free, ISSUING_DIST_POINT_new, NAME_CONSTRAINTS_free, NAME_CONSTRAINTS_new, +NAMING_AUTHORITY_free, +NAMING_AUTHORITY_new, NETSCAPE_CERT_SEQUENCE_free, NETSCAPE_CERT_SEQUENCE_new, NETSCAPE_SPKAC_free, @@ -160,6 +166,10 @@ POLICY_CONSTRAINTS_free, POLICY_CONSTRAINTS_new, POLICY_MAPPING_free, POLICY_MAPPING_new, +PROFESSION_INFO_free, +PROFESSION_INFO_new, +PROFESSION_INFOS_free, +PROFESSION_INFOS_new, PROXY_CERT_INFO_EXTENSION_free, PROXY_CERT_INFO_EXTENSION_new, PROXY_POLICY_free, diff --git a/doc/man3/d2i_X509.pod b/doc/man3/d2i_X509.pod index d0d9b51fa9..98df02950a 100644 --- a/doc/man3/d2i_X509.pod +++ b/doc/man3/d2i_X509.pod @@ -3,6 +3,8 @@ =head1 NAME d2i_ACCESS_DESCRIPTION, +d2i_ADMISSIONS, +d2i_ADMISSION_SYNTAX, d2i_ASIdOrRange, d2i_ASIdentifierChoice, d2i_ASIdentifiers, @@ -71,6 +73,7 @@ d2i_IPAddressFamily, d2i_IPAddressOrRange, d2i_IPAddressRange, d2i_ISSUING_DIST_POINT, +d2i_NAMING_AUTHORITY, d2i_NETSCAPE_CERT_SEQUENCE, d2i_NETSCAPE_SPKAC, d2i_NETSCAPE_SPKI, @@ -120,6 +123,7 @@ d2i_PKCS8_fp, d2i_PKEY_USAGE_PERIOD, d2i_POLICYINFO, d2i_POLICYQUALINFO, +d2i_PROFESSION_INFO, d2i_PROXY_CERT_INFO_EXTENSION, d2i_PROXY_POLICY, d2i_RSAPrivateKey, @@ -175,6 +179,8 @@ d2i_X509_REVOKED, d2i_X509_SIG, d2i_X509_VAL, i2d_ACCESS_DESCRIPTION, +i2d_ADMISSIONS, +i2d_ADMISSION_SYNTAX, i2d_ASIdOrRange, i2d_ASIdentifierChoice, i2d_ASIdentifiers, @@ -243,6 +249,7 @@ i2d_IPAddressFamily, i2d_IPAddressOrRange, i2d_IPAddressRange, i2d_ISSUING_DIST_POINT, +i2d_NAMING_AUTHORITY, i2d_NETSCAPE_CERT_SEQUENCE, i2d_NETSCAPE_SPKAC, i2d_NETSCAPE_SPKI, @@ -295,6 +302,7 @@ i2d_PKCS8_fp, i2d_PKEY_USAGE_PERIOD, i2d_POLICYINFO, i2d_POLICYQUALINFO, +i2d_PROFESSION_INFO, i2d_PROXY_CERT_INFO_EXTENSION, i2d_PROXY_POLICY, i2d_PublicKey, diff --git a/include/openssl/x509v3.h b/include/openssl/x509v3.h index fd1da34fd7..08344e1ed3 100644 --- a/include/openssl/x509v3.h +++ b/include/openssl/x509v3.h @@ -863,6 +863,71 @@ int X509v3_addr_validate_resource_set(STACK_OF(X509) *chain, #endif /* OPENSSL_NO_RFC3779 */ +DEFINE_STACK_OF(ASN1_STRING) + +/* + * Admission Syntax + */ +typedef struct NamingAuthority_st NAMING_AUTHORITY; +typedef struct ProfessionInfo_st PROFESSION_INFO; +typedef struct Admissions_st ADMISSIONS; +typedef struct AdmissionSyntax_st ADMISSION_SYNTAX; +DECLARE_ASN1_FUNCTIONS(NAMING_AUTHORITY) +DECLARE_ASN1_FUNCTIONS(PROFESSION_INFO) +DECLARE_ASN1_FUNCTIONS(ADMISSIONS) +DECLARE_ASN1_FUNCTIONS(ADMISSION_SYNTAX) +DEFINE_STACK_OF(ADMISSIONS) +DEFINE_STACK_OF(PROFESSION_INFO) +typedef STACK_OF(PROFESSION_INFO) PROFESSION_INFOS; + +const ASN1_OBJECT *NAMING_AUTHORITY_get0_authorityId( + const NAMING_AUTHORITY *n); +const ASN1_IA5STRING *NAMING_AUTHORITY_get0_authorityURL( + const NAMING_AUTHORITY *n); +const ASN1_STRING *NAMING_AUTHORITY_get0_authorityText( + const NAMING_AUTHORITY *n); +void NAMING_AUTHORITY_set0_authorityId(NAMING_AUTHORITY *n, + ASN1_OBJECT* namingAuthorityId); +void NAMING_AUTHORITY_set0_authorityURL(NAMING_AUTHORITY *n, + ASN1_IA5STRING* namingAuthorityUrl); +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); + # ifdef __cplusplus } # endif diff --git a/util/libcrypto.num b/util/libcrypto.num index 0b52a446cc..346d13e375 100644 --- a/util/libcrypto.num +++ b/util/libcrypto.num @@ -4448,3 +4448,53 @@ RSA_meth_get_multi_prime_keygen 4392 1_1_1 EXIST::FUNCTION:RSA RSA_meth_set_multi_prime_keygen 4393 1_1_1 EXIST::FUNCTION:RSA RAND_DRBG_get0_master 4394 1_1_1 EXIST::FUNCTION: RAND_DRBG_set_reseed_time_interval 4395 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_get0_addProfessionInfo 4396 1_1_1 EXIST::FUNCTION: +ADMISSION_SYNTAX_free 4397 1_1_1 EXIST::FUNCTION: +d2i_ADMISSION_SYNTAX 4398 1_1_1 EXIST::FUNCTION: +NAMING_AUTHORITY_set0_authorityId 4399 1_1_1 EXIST::FUNCTION: +NAMING_AUTHORITY_set0_authorityURL 4400 1_1_1 EXIST::FUNCTION: +d2i_PROFESSION_INFO 4401 1_1_1 EXIST::FUNCTION: +NAMING_AUTHORITY_it 4402 1_1_1 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +NAMING_AUTHORITY_it 4402 1_1_1 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ADMISSION_SYNTAX_get0_contentsOfAdmissions 4403 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_set0_professionItems 4404 1_1_1 EXIST::FUNCTION: +NAMING_AUTHORITY_new 4405 1_1_1 EXIST::FUNCTION: +NAMING_AUTHORITY_get0_authorityURL 4406 1_1_1 EXIST::FUNCTION: +ADMISSION_SYNTAX_get0_admissionAuthority 4407 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_new 4408 1_1_1 EXIST::FUNCTION: +ADMISSIONS_new 4409 1_1_1 EXIST::FUNCTION: +ADMISSION_SYNTAX_set0_admissionAuthority 4410 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_get0_professionOIDs 4411 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_it 4412 1_1_1 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PROFESSION_INFO_it 4412 1_1_1 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +i2d_PROFESSION_INFO 4413 1_1_1 EXIST::FUNCTION: +ADMISSIONS_set0_professionInfos 4414 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_get0_namingAuthority 4415 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_free 4416 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_set0_addProfessionInfo 4417 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_set0_registrationNumber 4418 1_1_1 EXIST::FUNCTION: +ADMISSION_SYNTAX_set0_contentsOfAdmissions 4419 1_1_1 EXIST::FUNCTION: +NAMING_AUTHORITY_get0_authorityId 4420 1_1_1 EXIST::FUNCTION: +ADMISSION_SYNTAX_it 4421 1_1_1 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ADMISSION_SYNTAX_it 4421 1_1_1 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +i2d_ADMISSION_SYNTAX 4422 1_1_1 EXIST::FUNCTION: +NAMING_AUTHORITY_get0_authorityText 4423 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_set0_namingAuthority 4424 1_1_1 EXIST::FUNCTION: +i2d_NAMING_AUTHORITY 4425 1_1_1 EXIST::FUNCTION: +NAMING_AUTHORITY_free 4426 1_1_1 EXIST::FUNCTION: +ADMISSIONS_set0_admissionAuthority 4427 1_1_1 EXIST::FUNCTION: +ADMISSIONS_free 4428 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_get0_registrationNumber 4429 1_1_1 EXIST::FUNCTION: +d2i_ADMISSIONS 4430 1_1_1 EXIST::FUNCTION: +i2d_ADMISSIONS 4431 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_get0_professionItems 4432 1_1_1 EXIST::FUNCTION: +ADMISSIONS_get0_admissionAuthority 4433 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_set0_professionOIDs 4434 1_1_1 EXIST::FUNCTION: +d2i_NAMING_AUTHORITY 4435 1_1_1 EXIST::FUNCTION: +ADMISSIONS_it 4436 1_1_1 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ADMISSIONS_it 4436 1_1_1 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ADMISSIONS_get0_namingAuthority 4437 1_1_1 EXIST::FUNCTION: +NAMING_AUTHORITY_set0_authorityText 4438 1_1_1 EXIST::FUNCTION: +ADMISSIONS_set0_namingAuthority 4439 1_1_1 EXIST::FUNCTION: +ADMISSIONS_get0_professionInfos 4440 1_1_1 EXIST::FUNCTION: +ADMISSION_SYNTAX_new 4441 1_1_1 EXIST::FUNCTION: diff --git a/util/private.num b/util/private.num index 1644dcb247..099a4f70a8 100644 --- a/util/private.num +++ b/util/private.num @@ -8,6 +8,8 @@ OPENSSL_MALLOC_FAILURES environment OPENSSL_instrument_bus assembler OPENSSL_instrument_bus2 assembler # +ADMISSION_SYNTAX datatype +ADMISSIONS datatype ASN1_STRING_TABLE datatype BIO_ADDR datatype BIO_ADDRINFO datatype @@ -24,6 +26,7 @@ EVP_PKEY_METHOD datatype EVP_PKEY_ASN1_METHOD datatype GEN_SESSION_CB datatype OPENSSL_Applink external +NAMING_AUTHORITY datatype OSSL_STORE_CTX datatype OSSL_STORE_INFO datatype OSSL_STORE_LOADER datatype @@ -35,6 +38,8 @@ OSSL_STORE_error_fn datatype OSSL_STORE_load_fn datatype OSSL_STORE_open_fn datatype OSSL_STORE_post_process_info_fn datatype +PROFESSION_INFO datatype +PROFESSION_INFOS datatype RAND_poll_cb datatype SSL_CTX_keylog_cb_func datatype SSL_client_hello_cb_fn datatype