Initialize GnuTLS client for process PROC with TYPE+PROPLIST.
Currently only client mode is supported. Return a success/failure
value you can check with `gnutls-errorp'.
TYPE is a symbol, either `gnutls-anon' or `gnutls-x509pki'.
PROPLIST is a property list with the following keys:
:hostname is a string naming the remote host.
:priority is a GnuTLS priority string, defaults to "NORMAL".
:trustfiles is a list of PEM-encoded trust files for `gnutls-x509pki'.
:crlfiles is a list of PEM-encoded CRL lists for `gnutls-x509pki'.
:keylist is an alist of PEM-encoded key files and PEM-encoded
certificates for `gnutls-x509pki'.
:callbacks is an alist of callback functions, see below.
:loglevel is the debug level requested from GnuTLS, try 4.
:verify-flags is a bitset as per GnuTLS'
gnutls_certificate_set_verify_flags.
:verify-hostname-error, if non-nil, makes a hostname mismatch an
error. Otherwise it will be just a warning.
:min-prime-bits is the minimum accepted number of bits the client will
accept in Diffie-Hellman key exchange.
The debug level will be set for this process AND globally for GnuTLS.
So if you set it higher or lower at any point, it affects global
debugging.
Note that the priority is set on the client. The server does not use
the protocols's priority except for disabling protocols that were not
specified.
Processes must be initialized with this function before other GnuTLS
functions are used. This function allocates resources which can only
be deallocated by calling `gnutls-deinit' or by calling it again.
The callbacks alist can have a `verify' key, associated with a
verification function (UNUSED).
Each authentication type may need additional information in order to
work. For X.509 PKI (`gnutls-x509pki'), you probably need at least
one trustfile (usually a CA bundle).
(fn PROC TYPE PROPLIST)