Blame doc/enums/gnutls_init_flags_t

Packit aea12f
Packit aea12f
Packit aea12f
@c gnutls_init_flags_t
Packit aea12f
@table @code
Packit aea12f
@item GNUTLS_@-SERVER
Packit aea12f
Connection end is a server.
Packit aea12f
@item GNUTLS_@-CLIENT
Packit aea12f
Connection end is a client.
Packit aea12f
@item GNUTLS_@-DATAGRAM
Packit aea12f
Connection is datagram oriented (DTLS). Since 3.0.0.
Packit aea12f
@item GNUTLS_@-NONBLOCK
Packit aea12f
Connection should not block. Since 3.0.0.
Packit aea12f
@item GNUTLS_@-NO_@-EXTENSIONS
Packit aea12f
Do not enable any TLS extensions by default (since 3.1.2). As TLS 1.2 and later require extensions this option is considered obsolete and should not be used.
Packit aea12f
@item GNUTLS_@-NO_@-REPLAY_@-PROTECTION
Packit aea12f
Disable any replay protection in DTLS. This must only be used if  replay protection is achieved using other means. Since 3.2.2.
Packit aea12f
@item GNUTLS_@-NO_@-SIGNAL
Packit aea12f
In systems where SIGPIPE is delivered on send, it will be disabled. That flag has effect in systems which support the MSG_NOSIGNAL sockets flag (since 3.4.2).
Packit aea12f
@item GNUTLS_@-ALLOW_@-ID_@-CHANGE
Packit aea12f
Allow the peer to replace its certificate, or change its ID during a rehandshake. This change is often used in attacks and thus prohibited by default. Since 3.5.0.
Packit aea12f
@item GNUTLS_@-ENABLE_@-FALSE_@-START
Packit aea12f
Enable the TLS false start on client side if the negotiated ciphersuites allow it. This will enable sending data prior to the handshake being complete, and may introduce a risk of crypto failure when combined with certain key exchanged; for that GnuTLS may not enable that option in ciphersuites that are known to be not safe for false start. Since 3.5.0.
Packit aea12f
@item GNUTLS_@-FORCE_@-CLIENT_@-CERT
Packit aea12f
When in client side and only a single cert is specified, send that certificate irrespective of the issuers expected by the server. Since 3.5.0.
Packit aea12f
@item GNUTLS_@-NO_@-TICKETS
Packit aea12f
Flag to indicate that the session should not use resumption with session tickets.
Packit aea12f
@item GNUTLS_@-KEY_@-SHARE_@-TOP
Packit aea12f
Generate key share for the first group which is enabled.
Packit aea12f
For example x25519. This option is the most performant for client (less CPU spent
Packit aea12f
generating keys), but if the server doesn't support the advertized option it may
Packit aea12f
result to more roundtrips needed to discover the server's choice.
Packit aea12f
@item GNUTLS_@-KEY_@-SHARE_@-TOP2
Packit aea12f
Generate key shares for the top-2 different groups which are enabled.
Packit aea12f
For example (ECDH + x25519). This is the default.
Packit aea12f
@item GNUTLS_@-KEY_@-SHARE_@-TOP3
Packit aea12f
Generate key shares for the top-3 different groups which are enabled.
Packit aea12f
That is, as each group is associated with a key type (EC, finite field, x25519), generate
Packit aea12f
three keys using @code{GNUTLS_PK_DH} , @code{GNUTLS_PK_EC} , @code{GNUTLS_PK_ECDH_X25519}  if all of them are enabled.
Packit aea12f
@item GNUTLS_@-POST_@-HANDSHAKE_@-AUTH
Packit aea12f
Enable post handshake authentication for server and client. When set and
Packit aea12f
a server requests authentication after handshake @code{GNUTLS_E_REAUTH_REQUEST}  will be returned
Packit aea12f
by @code{gnutls_record_recv()} . A client should then call @code{gnutls_reauth()}  to re-authenticate.
Packit aea12f
@item GNUTLS_@-NO_@-AUTO_@-REKEY
Packit aea12f
Disable auto-rekeying under TLS1.3. If this option is not specified
Packit aea12f
gnutls will force a rekey after 2^24 records have been sent.
Packit aea12f
@item GNUTLS_@-SAFE_@-PADDING_@-CHECK
Packit aea12f
Flag to indicate that the TLS 1.3 padding check will be done in a
Packit aea12f
safe way which doesn't leak the pad size based on GnuTLS processing time. This is of use to
Packit aea12f
applications which hide the length of transferred data via the TLS1.3 padding mechanism and
Packit aea12f
are already taking steps to hide the data processing time. This comes at a performance
Packit aea12f
penalty.
Packit aea12f
@item GNUTLS_@-ENABLE_@-EARLY_@-START
Packit aea12f
Under TLS1.3 allow the server to return earlier than the full handshake
Packit aea12f
finish; similarly to false start the handshake will be completed once data are received by the
Packit aea12f
client, while the server is able to transmit sooner. This is not enabled by default as it could
Packit aea12f
break certain existing server assumptions and use-cases. Since 3.6.4.
Packit aea12f
@item GNUTLS_@-ENABLE_@-RAWPK
Packit aea12f
Allows raw public-keys to be negotiated during the handshake. Since 3.6.6.
Packit aea12f
@item GNUTLS_@-AUTO_@-REAUTH
Packit aea12f
Enable transparent re-authentication in client side when the server
Packit aea12f
requests to. That is, reauthentication is handled within @code{gnutls_record_recv()} , and
Packit aea12f
the @code{GNUTLS_E_REHANDSHAKE}  or @code{GNUTLS_E_REAUTH_REQUEST}  are not returned. This must be
Packit aea12f
enabled with @code{GNUTLS_POST_HANDSHAKE_AUTH}  for TLS1.3. Enabling this flag requires to restore
Packit aea12f
interrupted calls to @code{gnutls_record_recv()}  based on the output of @code{gnutls_record_get_direction()} ,
Packit aea12f
since @code{gnutls_record_recv()}  could be interrupted when sending when this flag is enabled.
Packit aea12f
Note this flag may not be used if you are using the same session for sending and receiving
Packit aea12f
in different threads.
Packit aea12f
@item GNUTLS_@-ENABLE_@-EARLY_@-DATA
Packit aea12f
Under TLS1.3 allow the server to receive early data sent as part of the initial ClientHello (0-RTT). 
Packit aea12f
This is not enabled by default as early data has weaker security properties than other data. Since 3.6.5.
Packit Service 991b93
@item GNUTLS_@-NO_@-AUTO_@-SEND_@-TICKET
Packit Service 991b93
Under TLS1.3 disable auto-sending of
Packit Service 991b93
session tickets during the handshake.
Packit aea12f
@end table