|
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
|