1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
@deftypefun {void} {gnutls_x509_trust_list_set_getissuer_function} (gnutls_x509_trust_list_t @var{tlist}, gnutls_x509_trust_list_getissuer_function * @var{func})
@var{tlist}: is a @code{gnutls_x509_trust_list_t} type.
@var{func}: is the callback function
This function sets a callback to be called when the peer's certificate
chain is incomplete due a missing intermediate certificate. The callback
may provide the missing certificate for use during verification.
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
@code{gnutls_x509_crt_get_authority_info_access()} to get a URI from which
to attempt to download the missing issuer certificate, if available.
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 @code{NULL} and
'*issuers_size' will be 0. Otherwise, the '*issuers' array shall be
allocated using @code{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.
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.
@strong{Since:} 3.7.0
@end deftypefun
|