
@subheading int
@anchor{int}
@deftypefun {typedef} {int} (* @var{gnutls_pin_callback_t})
@var{gnutls_pin_callback_t}: -- undescribed --

Callback function type for PKCS@code{11}  or TPM PIN entry.  It is set by
functions like @code{gnutls_pkcs11_set_pin_function()} .

The callback should provides the PIN code to unlock the token with
label  @code{token_label} , specified by the URL  @code{token_url} .

The PIN code, as a NUL-terminated ASCII string, should be copied
into the  @code{pin} buffer (of maximum size  @code{pin_max} ), and return 0 to
indicate success.  Alternatively, the callback may return a
negative gnutls error code to indicate failure and cancel PIN entry
(in which case, the contents of the  @code{pin} parameter are ignored).

When a PIN is required, the callback will be invoked repeatedly
(and indefinitely) until either the returned PIN code is correct,
the callback returns failure, or the token refuses login (e.g. when
the token is locked due to too many incorrect PINs!).  For the
first such invocation, the  @code{attempt} counter will have value zero;
it will increase by one for each subsequent attempt.

@strong{Returns:} @code{GNUTLS_E_SUCCESS}  (0) on success or a negative error code on error.

@strong{Since:} 2.12.0
@end deftypefun


@c gnutls_ext_parse_type_t
@table @code
@item GNUTLS_@-EXT_@-ANY
Any extension type.
@item GNUTLS_@-EXT_@-APPLICATION
Application extension.
@item GNUTLS_@-EXT_@-TLS
TLS-internal extension.
@item GNUTLS_@-EXT_@-MANDATORY
Extension parsed even if resuming (or extensions are disabled).
@item GNUTLS_@-EXT_@-NONE
Never parsed
@end table
