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 a gnutls_x509_trust_list_t type. 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, *issuers and *issuers_size are 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 Β© 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