gnutls_x509_cr...ity_info_access(3)
π gnutls_x509_crt_get_authority_info_access β API function π
okay bestie, this one lives in the gnutls manual, and it's giving β¨certificate archaeologyβ¨ β we're digging the Authority Information Access extension out of a cert and you're gonna love it, fr fr.
πΈ SYNOPSIS πΈ
#include <gnutls/x509.h>
int gnutls_x509_crt_get_authority_info_access(gnutls_x509_crt_t crt,
unsigned int seq, int what,
gnutls_datum_t * data,
unsigned int * critical);
π ARGUMENTS π
gnutls_x509_crt_t crtβ the certificate you're holding, literally holding it, main character certificate energy πunsigned int seqβ which access descriptor in the sequence you want.0is the first one,1is the second, etc. (yes bestie, zero-indexed, we been knew π )int whatβ what data to actually get, and it's agnutls_info_access_what_ttype.gnutls_datum_t * dataβ the output data, and you gotta free it later withgnutls_free()π«Άunsigned int * criticalβ pointer to an output integer that gets set to non-zero if the extension is marked as critical. May beNULL, no pressure π
π¦ DESCRIPTION π¦
first things first, a lil heads up: there's a simpler API for grabbing authority info data, and it's provided by gnutls_x509_aia_get() and gnutls_x509_ext_import_aia(). so if that's more your vibe, go off β¨
Now the main event: this function extracts the Authority Information Access (AIA) extension. see RFC 5280 section 4.2.2.1 for more info if you want the whole lore. The AIA extension holds a sequence of AccessDescription (AD) data.
The seq input parameter is how you tell the function which member of that sequence you're interested in. The first member is 0, the second member is 1, and so on and so on. When the seq value is out of bounds, you get GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE back. rude, but okay π
The type of data that comes back in data is specified via what, which should be gnutls_info_access_what_t values. here's the breakdown:
- If
whatisGNUTLS_IA_ACCESSMETHOD_OID, thendatawill hold the accessMethod OID (e.g.,"1.3.6.1.5.5.7.48.1"). - If
whatisGNUTLS_IA_ACCESSLOCATION_GENERALNAME_TYPE,datawill hold the accessLocation GeneralName type (e.g.,"uniformResourceIdentifier"). - If
whatisGNUTLS_IA_URI,datawill hold the accessLocation URI data. Requesting thiswhatvalue leads to an error if the accessLocation is not of the"uniformResourceIdentifier"type. β οΈ - If
whatisGNUTLS_IA_OCSP_URI,datawill hold the OCSP URI. Requesting thiswhatvalue leads to an error if the accessMethod is not1.3.6.1.5.5.7.48.1aka OCSP, or if accessLocation is not of the"uniformResourceIdentifier"type. In that caseGNUTLS_E_UNKNOWN_ALGORITHMwill be returned, andseqshould be increased and this function called again. yes bestie, you loop it, it's giving persistence πͺ - If
whatisGNUTLS_IA_CAISSUERS_URI,datawill hold the caIssuers URI. Requesting thiswhatvalue leads to an error if the accessMethod is not1.3.6.1.5.5.7.48.2aka caIssuers, or if accessLocation is not of the"uniformResourceIdentifier"type. In that case handle as inGNUTLS_IA_OCSP_URI.
More what values may be allocated in the future as needed. the devs are cooking π₯
If data is NULL, the function does the same thing but without storing the output data β that is, it will set critical and do error checking as usual. vibe check only, no payload π§
The value of the critical flag is returned in *critical. Supply a NULL critical if you want the function to make sure the extension is non-critical, as required by RFC 5280. so like, NULL = "make it behave, pls" π
β RETURNS β
GNUTLS_E_SUCCESSon success πGNUTLS_E_INVALID_REQUESTon an invalidcrtGNUTLS_E_CONSTRAINT_ERRORif the extension is incorrectly marked as critical (use a non-NULLcriticalto override)GNUTLS_E_UNKNOWN_ALGORITHMif the requested OID does not match (e.g., when usingGNUTLS_IA_OCSP_URI)- otherwise, a negative error code. yeah. negative. we don't love that but we respect it π
π SINCE π
3.0 β vintage, but iconic. periodt.
π REPORTING BUGS π
Report bugs to <bugs@gnutls.org>.
Home page: https://www.gnutls.org
π COPYRIGHT π
Copyright Β© 2001-2023 Free Software Foundation, Inc., and others.
Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. slay, and also legally binding π«Ά
π SEE ALSO π
The full documentation for gnutls is maintained as a Texinfo manual. If the /usr/share/doc/gnutls/ directory does not contain the HTML form, visit
https://www.gnutls.org/manual/
okay that's the whole page bestie, you ate π
β¨ this was gnutls 3.8.13, the gnutls_x509_cr...ity_info_access(3) page β go forth and read certs, ily, bye ππ¦πΈ
π¦ where this page comes from
- alpine 3.22: gnutls-doc 3.8.13-r0 Β· LGPL-2.1-or-later
- alpine 3.23: gnutls-doc 3.8.13-r0 Β· LGPL-2.1-or-later
- alpine 3.24: gnutls-doc 3.8.13-r0 Β· LGPL-2.1-or-later
- arch rolling: gnutls 3.8.13-3 Β· GPL-3.0-or-later AND LGPL-2.1-or-later
- fedora 43: gnutls-devel 3.8.13-1.fc43 Β· GPL-3.0-or-later AND LGPL-2.1-or-later
- fedora 43: gnutls-devel 3.8.13-1.fc43 Β· GPL-3.0-or-later AND LGPL-2.1-or-later
- fedora 44: gnutls-devel 3.8.13-1.fc44 Β· GPL-3.0-or-later AND LGPL-2.1-or-later
- fedora 44: gnutls-devel 3.8.13-1.fc44 Β· GPL-3.0-or-later AND LGPL-2.1-or-later
- ubuntu stonking: gnutls-doc 3.8.13-1ubuntu1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms