1*e7be843bSPierre Pronchery=pod 2*e7be843bSPierre Pronchery 3*e7be843bSPierre Pronchery=head1 NAME 4*e7be843bSPierre Pronchery 5*e7be843bSPierre ProncheryX509_ACERT_get_attr, 6*e7be843bSPierre ProncheryX509_ACERT_get_attr_by_NID, 7*e7be843bSPierre ProncheryX509_ACERT_get_attr_by_OBJ, 8*e7be843bSPierre ProncheryX509_ACERT_get_attr_count 9*e7be843bSPierre Pronchery- Retrieve attributes from an X509_ACERT structure 10*e7be843bSPierre Pronchery 11*e7be843bSPierre Pronchery=head1 SYNOPSIS 12*e7be843bSPierre Pronchery 13*e7be843bSPierre Pronchery #include <openssl/x509_acert.h> 14*e7be843bSPierre Pronchery 15*e7be843bSPierre Pronchery X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); 16*e7be843bSPierre Pronchery int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); 17*e7be843bSPierre Pronchery int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, 18*e7be843bSPierre Pronchery int lastpos); 19*e7be843bSPierre Pronchery int X509_ACERT_get_attr_count(const X509_ACERT *x); 20*e7be843bSPierre Pronchery 21*e7be843bSPierre Pronchery=head1 DESCRIPTION 22*e7be843bSPierre Pronchery 23*e7be843bSPierre ProncheryX509_ACERT_get0_attr() retrieves the I<loc>th B<X509_ATTRIBUTE> from an 24*e7be843bSPierre ProncheryB<X509_ACERT> I<x>. X509_ACERT_get_attr_count() returns the total number 25*e7be843bSPierre Proncheryof attributes in the B<X509_ACERT>. 26*e7be843bSPierre Pronchery 27*e7be843bSPierre ProncheryX509_ACERT_get_attr_by_NID() and X509_ACERT_get_attr_by_OBJ() retrieve the next 28*e7be843bSPierre Proncheryattribute location matching I<nid> or I<obj> after I<lastpos>. I<lastpos> 29*e7be843bSPierre Proncheryshould initially be set to -1. 30*e7be843bSPierre ProncheryIf there are no more entries -1 is returned. If I<nid> is invalid 31*e7be843bSPierre Pronchery(doesn't correspond to a valid OID) then -2 is returned. 32*e7be843bSPierre Pronchery 33*e7be843bSPierre Pronchery=head1 RETURN VALUES 34*e7be843bSPierre Pronchery 35*e7be843bSPierre ProncheryX509_ACERT_get0_attr() return a B<X509_ATTRIBUTE> from an attribute 36*e7be843bSPierre Proncherycertificate, or NULL if the specified attribute is not found. 37*e7be843bSPierre Pronchery 38*e7be843bSPierre ProncheryX509_ACERT_get_attr_by_NID() and X509_ACERT_get_attr_by_OBJ() return 39*e7be843bSPierre Proncherythe location of the next attribute requested or -1 if not found. 40*e7be843bSPierre ProncheryX509_ACERT_get_attr_by_NID() can also return -2 if the supplied NID is invalid. 41*e7be843bSPierre Pronchery 42*e7be843bSPierre ProncheryX509_ACERT_get_attr_count() returns the number of attributes in the given 43*e7be843bSPierre Proncheryattribute certificate. 44*e7be843bSPierre Pronchery 45*e7be843bSPierre Pronchery=head1 HISTORY 46*e7be843bSPierre Pronchery 47*e7be843bSPierre ProncheryX509_ACERT_get0_attr(), X509_ACERT_get_attr_by_NID(), X509_ACERT_get_attr_by_OBJ() and 48*e7be843bSPierre ProncheryX509_ACERT_get_attr_count() were added in OpenSSL 3.4. 49*e7be843bSPierre Pronchery 50*e7be843bSPierre Pronchery=head1 COPYRIGHT 51*e7be843bSPierre Pronchery 52*e7be843bSPierre ProncheryCopyright 2023-2024 The OpenSSL Project Authors. All Rights Reserved. 53*e7be843bSPierre Pronchery 54*e7be843bSPierre ProncheryLicensed under the Apache License 2.0 (the "License"). You may not use 55*e7be843bSPierre Proncherythis file except in compliance with the License. You can obtain a copy 56*e7be843bSPierre Proncheryin the file LICENSE in the source distribution or at 57*e7be843bSPierre ProncheryL<https://www.openssl.org/source/license.html>. 58*e7be843bSPierre Pronchery 59*e7be843bSPierre Pronchery=cut 60