gnutls_x509_tr...issuer_function(3)
β¨ NAME β¨
gnutls_x509_trust_list_set_getissuer_function β the API function that lets you install your very own "bestie, where's the missing cert??" callback π
This one lives in the gnutls manual, section 3, and it's genuinely iconic if you've ever stared at an incomplete certificate chain like ποΈπποΈ
πΈ SYNOPSIS πΈ
#include <gnutls/x509.h>
void
gnutls_x509_trust_list_set_getissuer_function(gnutls_x509_trust_list_t
tlist, gnutls_x509_trust_list_getissuer_function * func);
π ARGUMENTS π
gnutls_x509_trust_list_t tlistβ bestie, this is agnutls_x509_trust_list_ttype. That's the whole vibe of it.gnutls_x509_trust_list_getissuer_function * funcβ the callback function. The main character. The one who's gonna go find the missing cert. π«Ά
π¦ DESCRIPTION π¦
Okay so here's the tea β β this function sets a callback that gnutls will call when the peer's certificate chain is incomplete because an intermediate certificate went missing. Rude of it, honestly. The callback may provide that missing certificate so it can be used during verification. Not me fixing a broken chain at 2am π
The callback's function prototype is defined in gnutls/x509.h as:
int (*callback)(gnutls_x509_trust_list_t list, const gnutls_x509_crt_t
cert, gnutls_x509_crt_t **issuers, unsigned int *issuers_size);
If the callback function is provided, then gnutls will call it during the certificate verification procedure. The callback may wish to use gnutls_x509_crt_get_authority_info_access() to get a URI from which to attempt to download the missing issuer certificate, if available. Like, go fetch, girlie π
On a successful call, the callback shall set *issuers and *issuers_size even if the result is empty; in that case *issuers will point to NULL and allocated using gnutls_x509_crt_list_import2(). The ownership of both the array and the elements is transferred to the caller, and thus the application does not need to maintain the memory after the call. So no memory-management anxiety, periodt π
The callback function should return 0 if the attempt to retrieve the issuer certificates for crt succeeded, or non-zero to indicate any error occurred during the attempt. In the latter case, *issuers and *issuers_size are not set. Zero means slay, nonzero means π
Lowkey important: if you return non-zero,*issuersand*issuers_sizeare not set. Don't go reading them expecting a gift, bestie.
β SINCE β
3.7.0
π 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.
π 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/
And that's the whole page, no cap β¨ This was gnutls version 3.8.13, section 3, aka gnutls_x509_tr...issuer_function(3) β go forth and complete those chains, bestie π§π
π¦ 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