GNUTLS_CIPHER_UNKNOWN
     Value to identify an unknown/unsupported algorithm.

GNUTLS_CIPHER_NULL
     The NULL (identity) encryption algorithm.

GNUTLS_CIPHER_ARCFOUR_128
     ARCFOUR stream cipher with 128-bit keys.

GNUTLS_CIPHER_3DES_CBC
     3DES in CBC mode.

GNUTLS_CIPHER_AES_128_CBC
     AES in CBC mode with 128-bit keys.

GNUTLS_CIPHER_AES_256_CBC
     AES in CBC mode with 256-bit keys.

GNUTLS_CIPHER_ARCFOUR_40
     ARCFOUR stream cipher with 40-bit keys.

GNUTLS_CIPHER_CAMELLIA_128_CBC
     Camellia in CBC mode with 128-bit keys.

GNUTLS_CIPHER_CAMELLIA_256_CBC
     Camellia in CBC mode with 256-bit keys.

GNUTLS_CIPHER_AES_192_CBC
     AES in CBC mode with 192-bit keys.

GNUTLS_CIPHER_AES_128_GCM
     AES in GCM mode with 128-bit keys (AEAD).

GNUTLS_CIPHER_AES_256_GCM
     AES in GCM mode with 256-bit keys (AEAD).

GNUTLS_CIPHER_CAMELLIA_192_CBC
     Camellia in CBC mode with 192-bit keys.

GNUTLS_CIPHER_SALSA20_256
     Salsa20 with 256-bit keys.

GNUTLS_CIPHER_ESTREAM_SALSA20_256
     Estream's Salsa20 variant with 256-bit keys.

GNUTLS_CIPHER_CAMELLIA_128_GCM
     CAMELLIA in GCM mode with 128-bit keys (AEAD).

GNUTLS_CIPHER_CAMELLIA_256_GCM
     CAMELLIA in GCM mode with 256-bit keys (AEAD).

GNUTLS_CIPHER_RC2_40_CBC
     RC2 in CBC mode with 40-bit keys.

GNUTLS_CIPHER_DES_CBC
     DES in CBC mode (56-bit keys).

GNUTLS_CIPHER_AES_128_CCM
     AES in CCM mode with 128-bit keys (AEAD).

GNUTLS_CIPHER_AES_256_CCM
     AES in CCM mode with 256-bit keys (AEAD).

GNUTLS_CIPHER_AES_128_CCM_8
     AES in CCM mode with 64-bit tag and 128-bit keys (AEAD).

GNUTLS_CIPHER_AES_256_CCM_8
     AES in CCM mode with 64-bit tag and 256-bit keys (AEAD).

GNUTLS_CIPHER_CHACHA20_POLY1305
     The Chacha20 cipher with the Poly1305 authenticator (AEAD).

GNUTLS_CIPHER_GOST28147_TC26Z_CFB
     GOST 28147-89 (Magma) cipher in CFB mode with TC26 Z S-box.

GNUTLS_CIPHER_GOST28147_CPA_CFB
     GOST 28147-89 (Magma) cipher in CFB mode with CryptoPro A S-box.

GNUTLS_CIPHER_GOST28147_CPB_CFB
     GOST 28147-89 (Magma) cipher in CFB mode with CryptoPro B S-box.

GNUTLS_CIPHER_GOST28147_CPC_CFB
     GOST 28147-89 (Magma) cipher in CFB mode with CryptoPro C S-box.

GNUTLS_CIPHER_GOST28147_CPD_CFB
     GOST 28147-89 (Magma) cipher in CFB mode with CryptoPro D S-box.

GNUTLS_CIPHER_AES_128_CFB8
     AES in CFB8 mode with 128-bit keys.

GNUTLS_CIPHER_AES_192_CFB8
     AES in CFB8 mode with 192-bit keys.

GNUTLS_CIPHER_AES_256_CFB8
     AES in CFB8 mode with 256-bit keys.

GNUTLS_CIPHER_AES_128_XTS
     AES in XTS mode with 128-bit key + 128bit tweak key.

GNUTLS_CIPHER_AES_256_XTS
     AES in XTS mode with 256-bit key + 256bit tweak key. Note that the XTS ciphers are message oriented. The whole message needs to be provided with a single call, because cipher-stealing requires to know where the message actually terminates in order to be able to compute where the stealing occurs.

GNUTLS_CIPHER_GOST28147_TC26Z_CNT
     GOST 28147-89 (Magma) cipher in CNT mode with TC26 Z S-box.

GNUTLS_CIPHER_CHACHA20_64
     Chacha20 cipher with 64-bit nonces and 64-bit block counters.

GNUTLS_CIPHER_CHACHA20_32
     Chacha20 cipher with 96-bit nonces and 32-bit block counters.

GNUTLS_CIPHER_AES_128_SIV
     AES in SIV mode with 128-bit key.

GNUTLS_CIPHER_AES_256_SIV
     AES in SIV mode with 256-bit key. Note that the SIV ciphers can only be used with the AEAD interface, and the IV plays a role as the authentication tag while it is prepended to the cipher text.

GNUTLS_CIPHER_AES_192_GCM
     AES in GCM mode with 192-bit keys (AEAD).

GNUTLS_CIPHER_IDEA_PGP_CFB
     IDEA in CFB mode (placeholder - unsupported).

GNUTLS_CIPHER_3DES_PGP_CFB
     3DES in CFB mode (placeholder - unsupported).

GNUTLS_CIPHER_CAST5_PGP_CFB
     CAST5 in CFB mode (placeholder - unsupported).

GNUTLS_CIPHER_BLOWFISH_PGP_CFB
     Blowfish in CFB mode (placeholder - unsupported).

GNUTLS_CIPHER_SAFER_SK128_PGP_CFB
     Safer-SK in CFB mode with 128-bit keys (placeholder - unsupported).

GNUTLS_CIPHER_AES128_PGP_CFB
     AES in CFB mode with 128-bit keys (placeholder - unsupported).

GNUTLS_CIPHER_AES192_PGP_CFB
     AES in CFB mode with 192-bit keys (placeholder - unsupported).

GNUTLS_CIPHER_AES256_PGP_CFB
     AES in CFB mode with 256-bit keys (placeholder - unsupported).

GNUTLS_CIPHER_TWOFISH_PGP_CFB
     Twofish in CFB mode (placeholder - unsupported).

GNUTLS_KX_UNKNOWN
     Unknown key-exchange algorithm.

GNUTLS_KX_RSA
     RSA key-exchange algorithm.

GNUTLS_KX_DHE_DSS
     DHE-DSS key-exchange algorithm.

GNUTLS_KX_DHE_RSA
     DHE-RSA key-exchange algorithm.

GNUTLS_KX_ANON_DH
     Anon-DH key-exchange algorithm.

GNUTLS_KX_SRP
     SRP key-exchange algorithm.

GNUTLS_KX_RSA_EXPORT
     RSA-EXPORT key-exchange algorithm (defunc).

GNUTLS_KX_SRP_RSA
     SRP-RSA key-exchange algorithm.

GNUTLS_KX_SRP_DSS
     SRP-DSS key-exchange algorithm.

GNUTLS_KX_PSK
     PSK key-exchange algorithm.

GNUTLS_KX_DHE_PSK
     DHE-PSK key-exchange algorithm.

GNUTLS_KX_ANON_ECDH
     Anon-ECDH key-exchange algorithm.

GNUTLS_KX_ECDHE_RSA
     ECDHE-RSA key-exchange algorithm.

GNUTLS_KX_ECDHE_ECDSA
     ECDHE-ECDSA key-exchange algorithm.

GNUTLS_KX_ECDHE_PSK
     ECDHE-PSK key-exchange algorithm.

GNUTLS_KX_RSA_PSK
     RSA-PSK key-exchange algorithm.

GNUTLS_KX_VKO_GOST_12
     VKO GOST R 34.10-2012 key-exchange algorithm.

GNUTLS_PARAMS_RSA_EXPORT
     Session RSA-EXPORT parameters (defunc).

GNUTLS_PARAMS_DH
     Session Diffie-Hellman parameters.

GNUTLS_PARAMS_ECDH
     Session Elliptic-Curve Diffie-Hellman parameters.

GNUTLS_CRD_CERTIFICATE
     Certificate credential.

GNUTLS_CRD_ANON
     Anonymous credential.

GNUTLS_CRD_SRP
     SRP credential.

GNUTLS_CRD_PSK
     PSK credential.

GNUTLS_CRD_IA
     IA credential.

GNUTLS_MAC_UNKNOWN
     Unknown MAC algorithm.

GNUTLS_MAC_NULL
     NULL MAC algorithm (empty output).

GNUTLS_MAC_MD5
     HMAC-MD5 algorithm.

GNUTLS_MAC_SHA1
     HMAC-SHA-1 algorithm.

GNUTLS_MAC_RMD160
     HMAC-RMD160 algorithm.

GNUTLS_MAC_MD2
     HMAC-MD2 algorithm.

GNUTLS_MAC_SHA256
     HMAC-SHA-256 algorithm.

GNUTLS_MAC_SHA384
     HMAC-SHA-384 algorithm.

GNUTLS_MAC_SHA512
     HMAC-SHA-512 algorithm.

GNUTLS_MAC_SHA224
     HMAC-SHA-224 algorithm.

GNUTLS_MAC_SHA3_224
     Reserved; unimplemented.

GNUTLS_MAC_SHA3_256
     Reserved; unimplemented.

GNUTLS_MAC_SHA3_384
     Reserved; unimplemented.

GNUTLS_MAC_SHA3_512
     Reserved; unimplemented.

GNUTLS_MAC_MD5_SHA1
     Combined MD5+SHA1 MAC placeholder.

GNUTLS_MAC_GOSTR_94
     HMAC GOST R 34.11-94 algorithm.

GNUTLS_MAC_STREEBOG_256
     HMAC GOST R 34.11-2001 (Streebog) algorithm, 256 bit.

GNUTLS_MAC_STREEBOG_512
     HMAC GOST R 34.11-2001 (Streebog) algorithm, 512 bit.

GNUTLS_MAC_AEAD
     MAC implicit through AEAD cipher.

GNUTLS_MAC_UMAC_96
     The UMAC-96 MAC algorithm (requires nonce).

GNUTLS_MAC_UMAC_128
     The UMAC-128 MAC algorithm (requires nonce).

GNUTLS_MAC_AES_CMAC_128
     The AES-CMAC-128 MAC algorithm.

GNUTLS_MAC_AES_CMAC_256
     The AES-CMAC-256 MAC algorithm.

GNUTLS_MAC_AES_GMAC_128
     The AES-GMAC-128 MAC algorithm (requires nonce).

GNUTLS_MAC_AES_GMAC_192
     The AES-GMAC-192 MAC algorithm (requires nonce).

GNUTLS_MAC_AES_GMAC_256
     The AES-GMAC-256 MAC algorithm (requires nonce).

GNUTLS_MAC_GOST28147_TC26Z_IMIT
     The GOST 28147-89 working in IMIT mode with TC26 Z S-box.

GNUTLS_MAC_SHAKE_128
     Reserved; unimplemented.

GNUTLS_MAC_SHAKE_256
     Reserved; unimplemented.

GNUTLS_DIG_UNKNOWN
     Unknown hash algorithm.

GNUTLS_DIG_NULL
     NULL hash algorithm (empty output).

GNUTLS_DIG_MD5
     MD5 algorithm.

GNUTLS_DIG_SHA1
     SHA-1 algorithm.

GNUTLS_DIG_RMD160
     RMD160 algorithm.

GNUTLS_DIG_MD2
     MD2 algorithm.

GNUTLS_DIG_SHA256
     SHA-256 algorithm.

GNUTLS_DIG_SHA384
     SHA-384 algorithm.

GNUTLS_DIG_SHA512
     SHA-512 algorithm.

GNUTLS_DIG_SHA224
     SHA-224 algorithm.

GNUTLS_DIG_SHA3_224
     SHA3-224 algorithm.

GNUTLS_DIG_SHA3_256
     SHA3-256 algorithm.

GNUTLS_DIG_SHA3_384
     SHA3-384 algorithm.

GNUTLS_DIG_SHA3_512
     SHA3-512 algorithm.

GNUTLS_DIG_MD5_SHA1
     Combined MD5+SHA1 algorithm.

GNUTLS_DIG_GOSTR_94
     GOST R 34.11-94 algorithm.

GNUTLS_DIG_STREEBOG_256
     GOST R 34.11-2001 (Streebog) algorithm, 256 bit.

GNUTLS_DIG_STREEBOG_512
     GOST R 34.11-2001 (Streebog) algorithm, 512 bit.

GNUTLS_DIG_SHAKE_128
     Reserved; unimplemented.

GNUTLS_DIG_SHAKE_256
     Reserved; unimplemented.

GNUTLS_COMP_UNKNOWN
     Unknown compression method.

GNUTLS_COMP_NULL
     The NULL compression method (no compression).

GNUTLS_COMP_DEFLATE
     The DEFLATE compression method from zlib.

GNUTLS_COMP_ZLIB
     Same as GNUTLS_COMP_DEFLATE .

GNUTLS_SERVER
     Connection end is a server.

GNUTLS_CLIENT
     Connection end is a client.

GNUTLS_DATAGRAM
     Connection is datagram oriented (DTLS). Since 3.0.0.

GNUTLS_NONBLOCK
     Connection should not block. Since 3.0.0.

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

GNUTLS_NO_REPLAY_PROTECTION
     Disable any replay protection in DTLS. This must only be used if  replay protection is achieved using other means. Since 3.2.2.

GNUTLS_NO_SIGNAL
     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).

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

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

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

GNUTLS_NO_TICKETS
     Flag to indicate that the session should not use resumption with session tickets.

GNUTLS_KEY_SHARE_TOP
     Generate key share for the first group which is enabled. For example x25519. This option is the most performant for client (less CPU spent generating keys), but if the server doesn't support the advertized option it may result to more roundtrips needed to discover the server's choice.

GNUTLS_KEY_SHARE_TOP2
     Generate key shares for the top-2 different groups which are enabled. For example (ECDH + x25519). This is the default.

GNUTLS_KEY_SHARE_TOP3
     Generate key shares for the top-3 different groups which are enabled. That is, as each group is associated with a key type (EC, finite field, x25519), generate three keys using GNUTLS_PK_DH , GNUTLS_PK_EC , GNUTLS_PK_ECDH_X25519  if all of them are enabled.

GNUTLS_POST_HANDSHAKE_AUTH
     Enable post handshake authentication for server and client. When set and a server requests authentication after handshake GNUTLS_E_REAUTH_REQUEST  will be returned by gnutls_record_recv() . A client should then call gnutls_reauth()  to re-authenticate.

GNUTLS_NO_AUTO_REKEY
     Disable auto-rekeying under TLS1.3. If this option is not specified gnutls will force a rekey after 2^24 records have been sent.

GNUTLS_SAFE_PADDING_CHECK
     Flag to indicate that the TLS 1.3 padding check will be done in a safe way which doesn't leak the pad size based on GnuTLS processing time. This is of use to applications which hide the length of transferred data via the TLS1.3 padding mechanism and are already taking steps to hide the data processing time. This comes at a performance penalty.

GNUTLS_ENABLE_EARLY_START
     Under TLS1.3 allow the server to return earlier than the full handshake finish; similarly to false start the handshake will be completed once data are received by the client, while the server is able to transmit sooner. This is not enabled by default as it could break certain existing server assumptions and use-cases. Since 3.6.4.

GNUTLS_ENABLE_RAWPK
     Allows raw public-keys to be negotiated during the handshake. Since 3.6.6.

GNUTLS_AUTO_REAUTH
     Enable transparent re-authentication in client side when the server requests to. That is, reauthentication is handled within gnutls_record_recv() , and the GNUTLS_E_REHANDSHAKE  or GNUTLS_E_REAUTH_REQUEST  are not returned. This must be enabled with GNUTLS_POST_HANDSHAKE_AUTH  for TLS1.3. Enabling this flag requires to restore interrupted calls to gnutls_record_recv()  based on the output of gnutls_record_get_direction() , since gnutls_record_recv()  could be interrupted when sending when this flag is enabled. Note this flag may not be used if you are using the same session for sending and receiving in different threads.

GNUTLS_ENABLE_EARLY_DATA
     Under TLS1.3 allow the server to receive early data sent as part of the initial ClientHello (0-RTT). This is not enabled by default as early data has weaker security properties than other data. Since 3.6.5.

GNUTLS_NO_AUTO_SEND_TICKET
     Under TLS1.3 disable auto-sending of session tickets during the handshake.

GNUTLS_AL_WARNING
     Alert of warning severity.

GNUTLS_AL_FATAL
     Alert of fatal severity.

GNUTLS_A_CLOSE_NOTIFY
     Close notify.

GNUTLS_A_UNEXPECTED_MESSAGE
     Unexpected message.

GNUTLS_A_BAD_RECORD_MAC
     Bad record MAC.

GNUTLS_A_DECRYPTION_FAILED
     Decryption failed.

GNUTLS_A_RECORD_OVERFLOW
     Record overflow.

GNUTLS_A_DECOMPRESSION_FAILURE
     Decompression failed.

GNUTLS_A_HANDSHAKE_FAILURE
     Handshake failed.

GNUTLS_A_SSL3_NO_CERTIFICATE
     No certificate.

GNUTLS_A_BAD_CERTIFICATE
     Certificate is bad.

GNUTLS_A_UNSUPPORTED_CERTIFICATE
     Certificate is not supported.

GNUTLS_A_CERTIFICATE_REVOKED
     Certificate was revoked.

GNUTLS_A_CERTIFICATE_EXPIRED
     Certificate is expired.

GNUTLS_A_CERTIFICATE_UNKNOWN
     Unknown certificate.

GNUTLS_A_ILLEGAL_PARAMETER
     Illegal parameter.

GNUTLS_A_UNKNOWN_CA
     CA is unknown.

GNUTLS_A_ACCESS_DENIED
     Access was denied.

GNUTLS_A_DECODE_ERROR
     Decode error.

GNUTLS_A_DECRYPT_ERROR
     Decrypt error.

GNUTLS_A_EXPORT_RESTRICTION
     Export restriction.

GNUTLS_A_PROTOCOL_VERSION
     Error in protocol version.

GNUTLS_A_INSUFFICIENT_SECURITY
     Insufficient security.

GNUTLS_A_INTERNAL_ERROR
     Internal error.

GNUTLS_A_INAPPROPRIATE_FALLBACK
     Inappropriate fallback,

GNUTLS_A_USER_CANCELED
     User canceled.

GNUTLS_A_NO_RENEGOTIATION
     No renegotiation is allowed.

GNUTLS_A_MISSING_EXTENSION
     An extension was expected but was not seen

GNUTLS_A_UNSUPPORTED_EXTENSION
     An unsupported extension was sent.

GNUTLS_A_CERTIFICATE_UNOBTAINABLE
     Could not retrieve the specified certificate.

GNUTLS_A_UNRECOGNIZED_NAME
     The server name sent was not recognized.

GNUTLS_A_UNKNOWN_PSK_IDENTITY
     The SRP/PSK username is missing or not known.

GNUTLS_A_CERTIFICATE_REQUIRED
     Certificate is required.

GNUTLS_A_NO_APPLICATION_PROTOCOL
     The ALPN protocol requested is not supported by the peer.

GNUTLS_A_MAX
     -- undescribed --

GNUTLS_HANDSHAKE_HELLO_REQUEST
     Hello request.

GNUTLS_HANDSHAKE_CLIENT_HELLO
     Client hello.

GNUTLS_HANDSHAKE_SERVER_HELLO
     Server hello.

GNUTLS_HANDSHAKE_HELLO_VERIFY_REQUEST
     DTLS Hello verify request.

GNUTLS_HANDSHAKE_NEW_SESSION_TICKET
     New session ticket.

GNUTLS_HANDSHAKE_END_OF_EARLY_DATA
     End of early data.

GNUTLS_HANDSHAKE_ENCRYPTED_EXTENSIONS
     Encrypted extensions message.

GNUTLS_HANDSHAKE_CERTIFICATE_PKT
     Certificate packet.

GNUTLS_HANDSHAKE_SERVER_KEY_EXCHANGE
     Server key exchange.

GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST
     Certificate request.

GNUTLS_HANDSHAKE_SERVER_HELLO_DONE
     Server hello done.

GNUTLS_HANDSHAKE_CERTIFICATE_VERIFY
     Certificate verify.

GNUTLS_HANDSHAKE_CLIENT_KEY_EXCHANGE
     Client key exchange.

GNUTLS_HANDSHAKE_FINISHED
     Finished.

GNUTLS_HANDSHAKE_CERTIFICATE_STATUS
     Certificate status (OCSP).

GNUTLS_HANDSHAKE_SUPPLEMENTAL
     Supplemental.

GNUTLS_HANDSHAKE_KEY_UPDATE
     TLS1.3 key update message.

GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC
     Change Cipher Spec.

GNUTLS_HANDSHAKE_CLIENT_HELLO_V2
     SSLv2 Client Hello.

GNUTLS_HANDSHAKE_HELLO_RETRY_REQUEST
     Hello retry request.

GNUTLS_CERT_INVALID
     The certificate is not signed by one of the known authorities or the signature is invalid (deprecated by the flags GNUTLS_CERT_SIGNATURE_FAILURE  and GNUTLS_CERT_SIGNER_NOT_FOUND ).

GNUTLS_CERT_REVOKED
     Certificate is revoked by its authority.  In X.509 this will be set only if CRLs are checked.

GNUTLS_CERT_SIGNER_NOT_FOUND
     The certificate's issuer is not known. This is the case if the issuer is not included in the trusted certificate list.

GNUTLS_CERT_SIGNER_NOT_CA
     The certificate's signer was not a CA. This may happen if this was a version 1 certificate, which is common with some CAs, or a version 3 certificate without the basic constrains extension.

GNUTLS_CERT_INSECURE_ALGORITHM
     The certificate was signed using an insecure algorithm such as MD2 or MD5. These algorithms have been broken and should not be trusted.

GNUTLS_CERT_NOT_ACTIVATED
     The certificate is not yet activated.

GNUTLS_CERT_EXPIRED
     The certificate has expired.

GNUTLS_CERT_SIGNATURE_FAILURE
     The signature verification failed.

GNUTLS_CERT_REVOCATION_DATA_SUPERSEDED
     The revocation data are old and have been superseded.

GNUTLS_CERT_UNEXPECTED_OWNER
     The owner is not the expected one.

GNUTLS_CERT_REVOCATION_DATA_ISSUED_IN_FUTURE
     The revocation data have a future issue date.

GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE
     The certificate's signer constraints were violated.

GNUTLS_CERT_MISMATCH
     The certificate presented isn't the expected one (TOFU)

GNUTLS_CERT_PURPOSE_MISMATCH
     The certificate or an intermediate does not match the intended purpose (extended key usage).

GNUTLS_CERT_MISSING_OCSP_STATUS
     The certificate requires the server to send the certifiate status, but no status was received.

GNUTLS_CERT_INVALID_OCSP_STATUS
     The received OCSP status response is invalid.

GNUTLS_CERT_UNKNOWN_CRIT_EXTENSIONS
     The certificate has extensions marked as critical which are not supported.

GNUTLS_CERT_IGNORE
     Ignore certificate.

GNUTLS_CERT_REQUEST
     Request certificate.

GNUTLS_CERT_REQUIRE
     Require certificate.

GNUTLS_OPENPGP_CERT
     Send entire certificate.

GNUTLS_OPENPGP_CERT_FINGERPRINT
     Send only certificate fingerprint.

GNUTLS_SHUT_RDWR
     Disallow further receives/sends.

GNUTLS_SHUT_WR
     Disallow further sends.

GNUTLS_SSL3
     SSL version 3.0.

GNUTLS_TLS1_0
     TLS version 1.0.

GNUTLS_TLS1
     Same as GNUTLS_TLS1_0 .

GNUTLS_TLS1_1
     TLS version 1.1.

GNUTLS_TLS1_2
     TLS version 1.2.

GNUTLS_TLS1_3
     TLS version 1.3.

GNUTLS_DTLS0_9
     DTLS version 0.9 (Cisco AnyConnect / OpenSSL 0.9.8e).

GNUTLS_DTLS1_0
     DTLS version 1.0.

GNUTLS_DTLS1_2
     DTLS version 1.2.

GNUTLS_DTLS_VERSION_MIN
     -- undescribed --

GNUTLS_DTLS_VERSION_MAX
     Maps to the highest supported DTLS version.

GNUTLS_TLS_VERSION_MAX
     Maps to the highest supported TLS version.

GNUTLS_VERSION_UNKNOWN
     Unknown SSL/TLS version.

GNUTLS_CRT_UNKNOWN
     Unknown certificate type.

GNUTLS_CRT_X509
     X.509 Certificate.

GNUTLS_CRT_OPENPGP
     OpenPGP certificate.

GNUTLS_CRT_RAWPK
     Raw public-key (SubjectPublicKeyInfo)

GNUTLS_CRT_MAX
     -- undescribed --

GNUTLS_X509_FMT_DER
     X.509 certificate in DER format (binary).

GNUTLS_X509_FMT_PEM
     X.509 certificate in PEM format (text).

GNUTLS_CRT_PRINT_FULL
     Full information about certificate.

GNUTLS_CRT_PRINT_ONELINE
     Information about certificate in one line.

GNUTLS_CRT_PRINT_UNSIGNED_FULL
     All info for an unsigned certificate.

GNUTLS_CRT_PRINT_COMPACT
     Information about certificate name in one line, plus identification of the public key.

GNUTLS_CRT_PRINT_FULL_NUMBERS
     Full information about certificate and include easy to parse public key parameters.

GNUTLS_PK_UNKNOWN
     Unknown public-key algorithm.

GNUTLS_PK_RSA
     RSA public-key algorithm.

GNUTLS_PK_DSA
     DSA public-key algorithm.

GNUTLS_PK_DH
     Diffie-Hellman algorithm. Used to generate parameters.

GNUTLS_PK_ECDSA
     Elliptic curve algorithm. These parameters are compatible with the ECDSA and ECDH algorithm.

GNUTLS_PK_ECDH_X25519
     Elliptic curve algorithm, restricted to ECDH as per rfc7748.

GNUTLS_PK_RSA_PSS
     RSA public-key algorithm, with PSS padding.

GNUTLS_PK_EDDSA_ED25519
     Edwards curve Digital signature algorithm. Used with SHA512 on signatures.

GNUTLS_PK_GOST_01
     GOST R 34.10-2001 algorithm per rfc5832.

GNUTLS_PK_GOST_12_256
     GOST R 34.10-2012 algorithm, 256-bit key per rfc7091.

GNUTLS_PK_GOST_12_512
     GOST R 34.10-2012 algorithm, 512-bit key per rfc7091.

GNUTLS_PK_ECDH_X448
     Elliptic curve algorithm, restricted to ECDH as per rfc7748.

GNUTLS_PK_EDDSA_ED448
     Edwards curve Digital signature algorithm. Used with SHAKE256 on signatures.

GNUTLS_PK_MAX
     -- undescribed --

GNUTLS_SIGN_UNKNOWN
     Unknown signature algorithm.

GNUTLS_SIGN_RSA_SHA1
     Digital signature algorithm RSA with SHA-1

GNUTLS_SIGN_RSA_SHA
     Same as GNUTLS_SIGN_RSA_SHA1 .

GNUTLS_SIGN_DSA_SHA1
     Digital signature algorithm DSA with SHA-1

GNUTLS_SIGN_DSA_SHA
     Same as GNUTLS_SIGN_DSA_SHA1 .

GNUTLS_SIGN_RSA_MD5
     Digital signature algorithm RSA with MD5.

GNUTLS_SIGN_RSA_MD2
     Digital signature algorithm RSA with MD2.

GNUTLS_SIGN_RSA_RMD160
     Digital signature algorithm RSA with RMD-160.

GNUTLS_SIGN_RSA_SHA256
     Digital signature algorithm RSA with SHA-256.

GNUTLS_SIGN_RSA_SHA384
     Digital signature algorithm RSA with SHA-384.

GNUTLS_SIGN_RSA_SHA512
     Digital signature algorithm RSA with SHA-512.

GNUTLS_SIGN_RSA_SHA224
     Digital signature algorithm RSA with SHA-224.

GNUTLS_SIGN_DSA_SHA224
     Digital signature algorithm DSA with SHA-224

GNUTLS_SIGN_DSA_SHA256
     Digital signature algorithm DSA with SHA-256

GNUTLS_SIGN_ECDSA_SHA1
     ECDSA with SHA1.

GNUTLS_SIGN_ECDSA_SHA224
     Digital signature algorithm ECDSA with SHA-224.

GNUTLS_SIGN_ECDSA_SHA256
     Digital signature algorithm ECDSA with SHA-256.

GNUTLS_SIGN_ECDSA_SHA384
     Digital signature algorithm ECDSA with SHA-384.

GNUTLS_SIGN_ECDSA_SHA512
     Digital signature algorithm ECDSA with SHA-512.

GNUTLS_SIGN_DSA_SHA384
     Digital signature algorithm DSA with SHA-384

GNUTLS_SIGN_DSA_SHA512
     Digital signature algorithm DSA with SHA-512

GNUTLS_SIGN_ECDSA_SHA3_224
     Digital signature algorithm ECDSA with SHA3-224.

GNUTLS_SIGN_ECDSA_SHA3_256
     Digital signature algorithm ECDSA with SHA3-256.

GNUTLS_SIGN_ECDSA_SHA3_384
     Digital signature algorithm ECDSA with SHA3-384.

GNUTLS_SIGN_ECDSA_SHA3_512
     Digital signature algorithm ECDSA with SHA3-512.

GNUTLS_SIGN_DSA_SHA3_224
     Digital signature algorithm DSA with SHA3-224.

GNUTLS_SIGN_DSA_SHA3_256
     Digital signature algorithm DSA with SHA3-256.

GNUTLS_SIGN_DSA_SHA3_384
     Digital signature algorithm DSA with SHA3-384.

GNUTLS_SIGN_DSA_SHA3_512
     Digital signature algorithm DSA with SHA3-512.

GNUTLS_SIGN_RSA_SHA3_224
     Digital signature algorithm RSA with SHA3-224.

GNUTLS_SIGN_RSA_SHA3_256
     Digital signature algorithm RSA with SHA3-256.

GNUTLS_SIGN_RSA_SHA3_384
     Digital signature algorithm RSA with SHA3-384.

GNUTLS_SIGN_RSA_SHA3_512
     Digital signature algorithm RSA with SHA3-512.

GNUTLS_SIGN_RSA_PSS_SHA256
     Digital signature algorithm RSA with SHA-256, with PSS padding (RSA-PSS certificate).

GNUTLS_SIGN_RSA_PSS_SHA384
     Digital signature algorithm RSA with SHA-384, with PSS padding (RSA-PSS certificate).

GNUTLS_SIGN_RSA_PSS_SHA512
     Digital signature algorithm RSA with SHA-512, with PSS padding (RSA-PSS certificate).

GNUTLS_SIGN_EDDSA_ED25519
     Digital signature algorithm EdDSA with Ed25519 curve.

GNUTLS_SIGN_RSA_RAW
     Digital signature algorithm RSA with DigestInfo formatted data

GNUTLS_SIGN_ECDSA_SECP256R1_SHA256
     Digital signature algorithm ECDSA-SECP256R1 with SHA-256 (used in TLS 1.3 but not PKIX).

GNUTLS_SIGN_ECDSA_SECP384R1_SHA384
     Digital signature algorithm ECDSA-SECP384R1 with SHA-384 (used in TLS 1.3 but not PKIX).

GNUTLS_SIGN_ECDSA_SECP521R1_SHA512
     Digital signature algorithm ECDSA-SECP521R1 with SHA-512 (used in TLS 1.3 but not PKIX).

GNUTLS_SIGN_RSA_PSS_RSAE_SHA256
     Digital signature algorithm RSA with SHA-256, with PSS padding (RSA PKCS1  1.5 certificate). This signature is identical to GNUTLS_SIGN_RSA_PSS_SHA256 , but they are distinct as the TLS1.3 protocol treats them differently.

GNUTLS_SIGN_RSA_PSS_RSAE_SHA384
     Digital signature algorithm RSA with SHA-384, with PSS padding (RSA PKCS1  1.5 certificate). This signature is identical to GNUTLS_SIGN_RSA_PSS_SHA384 , but they are distinct as the TLS1.3 protocol treats them differently.

GNUTLS_SIGN_RSA_PSS_RSAE_SHA512
     Digital signature algorithm RSA with SHA-512, with PSS padding (RSA PKCS1  1.5 certificate). This signature is identical to GNUTLS_SIGN_RSA_PSS_SHA512 , but they are distinct as the TLS1.3 protocol treats them differently.

GNUTLS_SIGN_GOST_94
     Digital signature algorithm GOST R 34.10-2001 with GOST R 34.11-94

GNUTLS_SIGN_GOST_256
     Digital signature algorithm GOST R 34.10-2012 with GOST R 34.11-2012 256 bit

GNUTLS_SIGN_GOST_512
     Digital signature algorithm GOST R 34.10-2012 with GOST R 34.11-2012 512 bit

GNUTLS_SIGN_EDDSA_ED448
     Digital signature algorithm EdDSA with Ed448 curve.

GNUTLS_SIGN_MAX
     -- undescribed --

GNUTLS_ECC_CURVE_INVALID
     Cannot be known

GNUTLS_ECC_CURVE_SECP224R1
     the SECP224R1 curve

GNUTLS_ECC_CURVE_SECP256R1
     the SECP256R1 curve

GNUTLS_ECC_CURVE_SECP384R1
     the SECP384R1 curve

GNUTLS_ECC_CURVE_SECP521R1
     the SECP521R1 curve

GNUTLS_ECC_CURVE_SECP192R1
     the SECP192R1 curve

GNUTLS_ECC_CURVE_X25519
     the X25519 curve (ECDH only)

GNUTLS_ECC_CURVE_ED25519
     the Ed25519 curve

GNUTLS_ECC_CURVE_GOST256CPA
     GOST R 34.10 CryptoPro 256 A curve

GNUTLS_ECC_CURVE_GOST256CPB
     GOST R 34.10 CryptoPro 256 B curve

GNUTLS_ECC_CURVE_GOST256CPC
     GOST R 34.10 CryptoPro 256 C curve

GNUTLS_ECC_CURVE_GOST256CPXA
     GOST R 34.10 CryptoPro 256 XchA curve

GNUTLS_ECC_CURVE_GOST256CPXB
     GOST R 34.10 CryptoPro 256 XchB curve

GNUTLS_ECC_CURVE_GOST512A
     GOST R 34.10 TC26 512 A curve

GNUTLS_ECC_CURVE_GOST512B
     GOST R 34.10 TC26 512 B curve

GNUTLS_ECC_CURVE_GOST512C
     GOST R 34.10 TC26 512 C curve

GNUTLS_ECC_CURVE_GOST256A
     GOST R 34.10 TC26 256 A curve

GNUTLS_ECC_CURVE_GOST256B
     GOST R 34.10 TC26 256 B curve

GNUTLS_ECC_CURVE_GOST256C
     GOST R 34.10 TC26 256 C curve

GNUTLS_ECC_CURVE_GOST256D
     GOST R 34.10 TC26 256 D curve

GNUTLS_ECC_CURVE_X448
     the X448 curve (ECDH only)

GNUTLS_ECC_CURVE_ED448
     the Ed448 curve

GNUTLS_ECC_CURVE_MAX
     -- undescribed --

GNUTLS_GROUP_INVALID
     Indicates unknown/invalid group

GNUTLS_GROUP_SECP192R1
     the SECP192R1 curve group (legacy, only for TLS 1.2 compatibility)

GNUTLS_GROUP_SECP224R1
     the SECP224R1 curve group (legacy, only for TLS 1.2 compatibility)

GNUTLS_GROUP_SECP256R1
     the SECP256R1 curve group

GNUTLS_GROUP_SECP384R1
     the SECP384R1 curve group

GNUTLS_GROUP_SECP521R1
     the SECP521R1 curve group

GNUTLS_GROUP_X25519
     the X25519 curve group

GNUTLS_GROUP_X448
     the X448 curve group

GNUTLS_GROUP_GC256A
     the GOST R 34.10 TC26 256 A curve group

GNUTLS_GROUP_GC256B
     the GOST R 34.10 TC26 256 B curve group

GNUTLS_GROUP_GC256C
     the GOST R 34.10 TC26 256 C curve group

GNUTLS_GROUP_GC256D
     the GOST R 34.10 TC26 256 D curve group

GNUTLS_GROUP_GC512A
     the GOST R 34.10 TC26 512 A curve group

GNUTLS_GROUP_GC512B
     the GOST R 34.10 TC26 512 B curve group

GNUTLS_GROUP_GC512C
     the GOST R 34.10 TC26 512 C curve group

GNUTLS_GROUP_FFDHE2048
     the FFDHE2048 group

GNUTLS_GROUP_FFDHE3072
     the FFDHE3072 group

GNUTLS_GROUP_FFDHE4096
     the FFDHE4096 group

GNUTLS_GROUP_FFDHE8192
     the FFDHE8192 group

GNUTLS_GROUP_FFDHE6144
     the FFDHE6144 group

GNUTLS_GROUP_MAX
     -- undescribed --

GNUTLS_SEC_PARAM_UNKNOWN
     Cannot be known

GNUTLS_SEC_PARAM_INSECURE
     Less than 42 bits of security

GNUTLS_SEC_PARAM_EXPORT
     42 bits of security

GNUTLS_SEC_PARAM_VERY_WEAK
     64 bits of security

GNUTLS_SEC_PARAM_WEAK
     72 bits of security

GNUTLS_SEC_PARAM_LOW
     80 bits of security

GNUTLS_SEC_PARAM_LEGACY
     96 bits of security

GNUTLS_SEC_PARAM_MEDIUM
     112 bits of security (used to be GNUTLS_SEC_PARAM_NORMAL )

GNUTLS_SEC_PARAM_HIGH
     128 bits of security

GNUTLS_SEC_PARAM_ULTRA
     192 bits of security

GNUTLS_SEC_PARAM_FUTURE
     256 bits of security

GNUTLS_SEC_PARAM_MAX
     -- undescribed --

GNUTLS_CB_TLS_UNIQUE
     "tls-unique" (RFC 5929) channel binding

GNUTLS_GOST_PARAMSET_UNKNOWN
     Unknown/default parameter set

GNUTLS_GOST_PARAMSET_TC26_Z
     Specified by TC26, see rfc7836

GNUTLS_GOST_PARAMSET_CP_A
     CryptoPro-A, see rfc4357

GNUTLS_GOST_PARAMSET_CP_B
     CryptoPro-B, see rfc4357

GNUTLS_GOST_PARAMSET_CP_C
     CryptoPro-C, see rfc4357

GNUTLS_GOST_PARAMSET_CP_D
     CryptoPro-D, see rfc4357

GNUTLS_CTYPE_CLIENT
     for requesting client certificate type values.

GNUTLS_CTYPE_SERVER
     for requesting server certificate type values.

GNUTLS_CTYPE_OURS
     for requesting our certificate type values.

GNUTLS_CTYPE_PEERS
     for requesting the peers' certificate type values.

GNUTLS_NAME_DNS
     Domain Name System name type.

GNUTLS_SFLAGS_SAFE_RENEGOTIATION
     Safe renegotiation (RFC5746) was used

GNUTLS_SFLAGS_EXT_MASTER_SECRET
     The extended master secret (RFC7627) extension was used

GNUTLS_SFLAGS_ETM
     The encrypt then MAC (RFC7366) extension was used

GNUTLS_SFLAGS_HB_LOCAL_SEND
     The heartbeat negotiation allows the local side to send heartbeat messages

GNUTLS_SFLAGS_HB_PEER_SEND
     The heartbeat negotiation allows the peer to send heartbeat messages

GNUTLS_SFLAGS_FALSE_START
     False start was used in this client session.

GNUTLS_SFLAGS_RFC7919
     The RFC7919 Diffie-Hellman parameters were negotiated

GNUTLS_SFLAGS_SESSION_TICKET
     A session ticket has been received by the server.

GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH
     Indicates client capability for post-handshake auth; set only on server side.

GNUTLS_SFLAGS_EARLY_START
     The TLS1.3 server session returned early.

GNUTLS_SFLAGS_EARLY_DATA
     The TLS1.3 early data has been received by the server.

GNUTLS_SFLAGS_CLI_REQUESTED_OCSP
     Set when the client has requested OCSP staple during handshake.

GNUTLS_SFLAGS_SERV_REQUESTED_OCSP
     Set when the server has requested OCSP staple during handshake.

GNUTLS_SUPPLEMENTAL_UNKNOWN
     Unknown data format

GNUTLS_SRTP_AES128_CM_HMAC_SHA1_80
     128 bit AES with a 80 bit HMAC-SHA1

GNUTLS_SRTP_AES128_CM_HMAC_SHA1_32
     128 bit AES with a 32 bit HMAC-SHA1

GNUTLS_SRTP_NULL_HMAC_SHA1_80
     NULL cipher with a 80 bit HMAC-SHA1

GNUTLS_SRTP_NULL_HMAC_SHA1_32
     NULL cipher with a 32 bit HMAC-SHA1

GNUTLS_ALPN_MANDATORY
     Require ALPN negotiation. The connection will be aborted if no matching ALPN protocol is found.

GNUTLS_ALPN_SERVER_PRECEDENCE
     The choices set by the server will take precedence over the client's.

GNUTLS_DT_UNKNOWN
     Unknown data type.

GNUTLS_DT_DNS_HOSTNAME
     The data contain a null-terminated DNS hostname; the hostname will be matched using the RFC6125 rules. If the data contain a textual IP (v4 or v6) address it will be marched against the IPAddress Alternative name, unless the verification flag GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES is specified.

GNUTLS_DT_KEY_PURPOSE_OID
     The data contain a null-terminated key purpose OID. It will be matched against the certificate's Extended Key Usage extension.

GNUTLS_DT_RFC822NAME
     The data contain a null-terminated email address; the email will be matched against the RFC822Name Alternative name of the certificate, or the EMAIL DN component if the former isn't available. Prior to matching the email address will be converted to ACE (ASCII-compatible-encoding).

GNUTLS_DT_IP_ADDRESS
     The data contain a raw IP address (4 or 16 bytes). If will be matched against the IPAddress Alternative name; option available since 3.6.0.

GNUTLS_CERTIFICATE_SKIP_KEY_CERT_MATCH
     Skip the key and certificate matching check.

GNUTLS_CERTIFICATE_API_V2
     If set the gnutls_certificate_set_*key* functions will return an index of the added key pair instead of zero.

GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK
     If set, the gnutls_certificate_set_ocsp_status_request_file function, will not check whether the response set matches any of the certificates.

GNUTLS_CERTIFICATE_VERIFY_CRLS
     This will enable CRL verification when added in the certificate structure. When used, it requires CAs to be added before CRLs.

GNUTLS_PSK_KEY_RAW
     PSK-key in raw format.

GNUTLS_PSK_KEY_HEX
     PSK-key in hex format.

GNUTLS_SAN_DNSNAME
     DNS-name SAN.

GNUTLS_SAN_RFC822NAME
     E-mail address SAN.

GNUTLS_SAN_URI
     URI SAN.

GNUTLS_SAN_IPADDRESS
     IP address SAN.

GNUTLS_SAN_OTHERNAME
     OtherName SAN.

GNUTLS_SAN_DN
     DN SAN.

GNUTLS_SAN_REGISTERED_ID
     RegisteredID.

GNUTLS_SAN_MAX
     -- undescribed --

GNUTLS_SAN_OTHERNAME_XMPP
     Virtual SAN, used by certain functions for convenience.

GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL
     Virtual SAN, used by certain functions for convenience.

GNUTLS_PRIVKEY_X509
     X.509 private key, gnutls_x509_privkey_t .

GNUTLS_PRIVKEY_OPENPGP
     OpenPGP private key, gnutls_openpgp_privkey_t .

GNUTLS_PRIVKEY_PKCS11
     PKCS11 private key, gnutls_pkcs11_privkey_t .

GNUTLS_PRIVKEY_EXT
     External private key, operating using callbacks.

GNUTLS_PIN_USER
     The PIN for the user.

GNUTLS_PIN_SO
     The PIN for the security officer (admin).

GNUTLS_PIN_FINAL_TRY
     This is the final try before blocking.

GNUTLS_PIN_COUNT_LOW
     Few tries remain before token blocks.

GNUTLS_PIN_CONTEXT_SPECIFIC
     The PIN is for a specific action and key like signing.

GNUTLS_PIN_WRONG
     Last given PIN was not correct.

GNUTLS_EXT_ANY
     Any extension type (should not be used as it is used only internally).

GNUTLS_EXT_APPLICATION
     Parsed after  GNUTLS_EXT_MANDATORY

GNUTLS_EXT_TLS
     TLS-internal extensions, parsed after  GNUTLS_EXT_APPLICATION .

GNUTLS_EXT_MANDATORY
     Parsed after  GNUTLS_EXT_VERSION_NEG and even when resuming.

GNUTLS_EXT_NONE
     Never to be parsed

GNUTLS_EXT_VERSION_NEG
     Extensions to be parsed first for TLS version negotiation.

GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL
     If specified the extension registered will override the internal; this does not work with extensions existing prior to 3.6.0.

GNUTLS_EXT_FLAG_CLIENT_HELLO
     This extension can be present in a client hello

GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO
     This extension can be present in a TLS1.2 or earlier server hello

GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO
     This extension can be present in a TLS1.3 server hello

GNUTLS_EXT_FLAG_EE
     This extension can be present in encrypted extensions message

GNUTLS_EXT_FLAG_HRR
     This extension can be present in hello retry request message

GNUTLS_EXT_FLAG_IGNORE_CLIENT_REQUEST
     When flag is present, this extension will be send even if the client didn't advertise it. An extension of this type is the Cookie TLS1.3 extension.

GNUTLS_EXT_FLAG_TLS
     This extension can be present under TLS; otherwise ignored.

GNUTLS_EXT_FLAG_DTLS
     This extension can be present under DTLS; otherwise ignored.

GNUTLS_FIPS140_DISABLED
     The FIPS140-2 mode is disabled.

GNUTLS_FIPS140_STRICT
     The default mode; all forbidden operations will cause an operation failure via error code.

GNUTLS_FIPS140_SELFTESTS
     A transient state during library initialization. That state cannot be set or seen by applications.

GNUTLS_FIPS140_LAX
     The library still uses the FIPS140-2 relevant algorithms but all forbidden by FIPS140-2 operations are allowed; this is useful when the application is aware of the followed security policy, and needs to utilize disallowed operations for other reasons (e.g., compatibility).

GNUTLS_FIPS140_LOG
     Similarly to GNUTLS_FIPS140_LAX , it allows forbidden operations; any use of them results to a message to the audit callback functions.

GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED
     Fail if the certificates in the buffer are more than the space allocated for certificates. The error code will be GNUTLS_E_SHORT_MEMORY_BUFFER .

GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED
     Fail if the certificates in the buffer are not ordered starting from subject to issuer. The error code will be GNUTLS_E_CERTIFICATE_LIST_UNSORTED .

GNUTLS_X509_CRT_LIST_SORT
     Sort the certificate chain if unsorted.

GNUTLS_X509_CRT_FLAG_IGNORE_SANITY
     Ignore any sanity checks at the import of the certificate; i.e., ignore checks such as version/field matching and strict time field checks. Intended to be used for debugging.

GNUTLS_KEYID_USE_SHA1
     Use SHA1 as the key ID algorithm (default).

GNUTLS_KEYID_USE_SHA256
     Use SHA256 as the key ID algorithm.

GNUTLS_KEYID_USE_SHA512
     Use SHA512 as the key ID algorithm.

GNUTLS_KEYID_USE_BEST_KNOWN
     Use the best known algorithm to calculate key ID. Using that option will make your program behavior depend on the version of gnutls linked with. That option has a cap of 64-bytes key IDs.

GNUTLS_VERIFY_DISABLE_CA_SIGN
     If set a signer does not have to be a certificate authority. This flag should normally be disabled, unless you know what this means.

GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES
     When verifying a hostname prevent textual IP addresses from matching IP addresses in the certificate. Treat the input only as a DNS name.

GNUTLS_VERIFY_DO_NOT_ALLOW_SAME
     If a certificate is not signed by anyone trusted but exists in the trusted CA list do not treat it as trusted.

GNUTLS_VERIFY_ALLOW_ANY_X509_V1_CA_CRT
     Allow CA certificates that have version 1 (both root and intermediate). This might be dangerous since those haven't the basicConstraints extension.

GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD2
     Allow certificates to be signed using the broken MD2 algorithm.

GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5
     Allow certificates to be signed using the broken MD5 algorithm.

GNUTLS_VERIFY_DISABLE_TIME_CHECKS
     Disable checking of activation and expiration validity periods of certificate chains. Don't set this unless you understand the security implications.

GNUTLS_VERIFY_DISABLE_TRUSTED_TIME_CHECKS
     If set a signer in the trusted list is never checked for expiration or activation.

GNUTLS_VERIFY_DO_NOT_ALLOW_X509_V1_CA_CRT
     Do not allow trusted CA certificates that have version 1.  This option is to be used to deprecate all certificates of version 1.

GNUTLS_VERIFY_DISABLE_CRL_CHECKS
     Disable checking for validity using certificate revocation lists or the available OCSP data.

GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN
     A certificate chain is tolerated if unsorted (the case with many TLS servers out there). This is the default since GnuTLS 3.1.4.

GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN
     Do not tolerate an unsorted certificate chain.

GNUTLS_VERIFY_DO_NOT_ALLOW_WILDCARDS
     When including a hostname check in the verification, do not consider any wildcards.

GNUTLS_VERIFY_USE_TLS1_RSA
     This indicates that a (raw) RSA signature is provided as in the TLS 1.0 protocol. Not all functions accept this flag.

GNUTLS_VERIFY_IGNORE_UNKNOWN_CRIT_EXTENSIONS
     This signals the verification process, not to fail on unknown critical extensions.

GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1
     Allow certificates to be signed using the broken SHA1 hash algorithm.

GNUTLS_PROFILE_UNKNOWN
     An invalid/unknown profile.

GNUTLS_PROFILE_VERY_WEAK
     A verification profile that corresponds to  GNUTLS_SEC_PARAM_VERY_WEAK (64 bits)

GNUTLS_PROFILE_LOW
     A verification profile that corresponds to  GNUTLS_SEC_PARAM_LOW (80 bits)

GNUTLS_PROFILE_LEGACY
     A verification profile that corresponds to  GNUTLS_SEC_PARAM_LEGACY (96 bits)

GNUTLS_PROFILE_MEDIUM
     A verification profile that corresponds to  GNUTLS_SEC_PARAM_MEDIUM (112 bits)

GNUTLS_PROFILE_HIGH
     A verification profile that corresponds to  GNUTLS_SEC_PARAM_HIGH (128 bits)

GNUTLS_PROFILE_ULTRA
     A verification profile that corresponds to  GNUTLS_SEC_PARAM_ULTRA (192 bits)

GNUTLS_PROFILE_FUTURE
     A verification profile that corresponds to  GNUTLS_SEC_PARAM_FUTURE (256 bits)

GNUTLS_PROFILE_SUITEB128
     A verification profile that applies the SUITEB128 rules

GNUTLS_PROFILE_SUITEB192
     A verification profile that applies the SUITEB192 rules

GNUTLS_PKCS_PLAIN
     Unencrypted private key.

GNUTLS_PKCS_PKCS12_3DES
     PKCS-12 3DES.

GNUTLS_PKCS_PKCS12_ARCFOUR
     PKCS-12 ARCFOUR.

GNUTLS_PKCS_PKCS12_RC2_40
     PKCS-12 RC2-40.

GNUTLS_PKCS_PBES2_3DES
     PBES2 3DES.

GNUTLS_PKCS_PBES2_AES_128
     PBES2 AES-128.

GNUTLS_PKCS_PBES2_AES_192
     PBES2 AES-192.

GNUTLS_PKCS_PBES2_AES_256
     PBES2 AES-256.

GNUTLS_PKCS_NULL_PASSWORD
     Some schemas distinguish between an empty and a NULL password.

GNUTLS_PKCS_PBES2_DES
     PBES2 single DES.

GNUTLS_PKCS_PBES1_DES_MD5
     PBES1 with single DES; for compatibility with openssl only.

GNUTLS_PKCS_PBES2_GOST_TC26Z
     PBES2 GOST 28147-89 CFB with TC26-Z S-box.

GNUTLS_PKCS_PBES2_GOST_CPA
     PBES2 GOST 28147-89 CFB with CryptoPro-A S-box.

GNUTLS_PKCS_PBES2_GOST_CPB
     PBES2 GOST 28147-89 CFB with CryptoPro-B S-box.

GNUTLS_PKCS_PBES2_GOST_CPC
     PBES2 GOST 28147-89 CFB with CryptoPro-C S-box.

GNUTLS_PKCS_PBES2_GOST_CPD
     PBES2 GOST 28147-89 CFB with CryptoPro-D S-box.

GNUTLS_KEYGEN_SEED
     Specifies the seed to be used in key generation.

GNUTLS_KEYGEN_DIGEST
     The size field specifies the hash algorithm to be used in key generation.

GNUTLS_KEYGEN_SPKI
     data points to a gnutls_x509_spki_t  structure; it is not used after the key generation call.

GNUTLS_BAG_EMPTY
     Empty PKCS-12 bag.

GNUTLS_BAG_PKCS8_ENCRYPTED_KEY
     PKCS-12 bag with PKCS-8 encrypted key.

GNUTLS_BAG_PKCS8_KEY
     PKCS-12 bag with PKCS-8 key.

GNUTLS_BAG_CERTIFICATE
     PKCS-12 bag with certificate.

GNUTLS_BAG_CRL
     PKCS-12 bag with CRL.

GNUTLS_BAG_SECRET
     PKCS-12 bag with secret PKCS-9 keys.

GNUTLS_BAG_ENCRYPTED
     Encrypted PKCS-12 bag.

GNUTLS_BAG_UNKNOWN
     Unknown PKCS-12 bag.

GNUTLS_PKCS11_OBJ_FLAG_LOGIN
     Force login in the token for the operation (seek+store).

GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED
     object marked as trusted (seek+store).

GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE
     object is explicitly marked as sensitive -unexportable (store).

GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO
     force login as a security officer in the token for the operation (seek+store).

GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE
     marked as private -requires PIN to access (store).

GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE
     marked as not private (store).

GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_ANY
     When retrieving an object, do not set any requirements (store).

GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED
     When retrieving an object, only retrieve the marked as trusted (alias to GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED ). In gnutls_pkcs11_crt_is_known()  it implies GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_COMPARE  if GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY  is not given.

GNUTLS_PKCS11_OBJ_FLAG_MARK_DISTRUSTED
     When writing an object, mark it as distrusted (store).

GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED
     When retrieving an object, only retrieve the marked as distrusted (seek).

GNUTLS_PKCS11_OBJ_FLAG_COMPARE
     When checking an object's presence, fully compare it before returning any result (seek).

GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE
     The object must be present in a marked as trusted module (seek).

GNUTLS_PKCS11_OBJ_FLAG_MARK_CA
     Mark the object as a CA (seek+store).

GNUTLS_PKCS11_OBJ_FLAG_MARK_KEY_WRAP
     Mark the generated key pair as wrapping and unwrapping keys (store).

GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY
     When checking an object's presence, compare the key before returning any result (seek).

GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT
     When an issuer is requested, override its extensions with the ones present in the trust module (seek).

GNUTLS_PKCS11_OBJ_FLAG_MARK_ALWAYS_AUTH
     Mark the key pair as requiring authentication (pin entry) before every operation (seek+store).

GNUTLS_PKCS11_OBJ_FLAG_MARK_EXTRACTABLE
     Mark the key pair as being extractable (store).

GNUTLS_PKCS11_OBJ_FLAG_NEVER_EXTRACTABLE
     If set, the object was never marked as extractable (store).

GNUTLS_PKCS11_OBJ_FLAG_CRT
     When searching, restrict to certificates only (seek).

GNUTLS_PKCS11_OBJ_FLAG_WITH_PRIVKEY
     -- undescribed --

GNUTLS_PKCS11_OBJ_FLAG_PUBKEY
     When searching, restrict to public key objects only (seek).

GNUTLS_PKCS11_OBJ_FLAG_NO_STORE_PUBKEY
     When generating a keypair don't store the public key (store).

GNUTLS_PKCS11_OBJ_FLAG_PRIVKEY
     When searching, restrict to private key objects only (seek).

GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_SENSITIVE
     object marked as not sensitive -exportable (store).

GNUTLS_PKCS11_URL_GENERIC
     A generic-purpose URL.

GNUTLS_PKCS11_URL_LIB
     A URL that specifies the library used as well.

GNUTLS_PKCS11_URL_LIB_VERSION
     A URL that specifies the library and its version.

GNUTLS_PKCS11_OBJ_ID_HEX
     The object ID in hex. Null-terminated text.

GNUTLS_PKCS11_OBJ_LABEL
     The object label. Null-terminated text.

GNUTLS_PKCS11_OBJ_TOKEN_LABEL
     The token's label. Null-terminated text.

GNUTLS_PKCS11_OBJ_TOKEN_SERIAL
     The token's serial number. Null-terminated text.

GNUTLS_PKCS11_OBJ_TOKEN_MANUFACTURER
     The token's manufacturer. Null-terminated text.

GNUTLS_PKCS11_OBJ_TOKEN_MODEL
     The token's model. Null-terminated text.

GNUTLS_PKCS11_OBJ_ID
     The object ID. Raw bytes.

GNUTLS_PKCS11_OBJ_LIBRARY_VERSION
     The library's version. Null-terminated text.

GNUTLS_PKCS11_OBJ_LIBRARY_DESCRIPTION
     The library's description. Null-terminated text.

GNUTLS_PKCS11_OBJ_LIBRARY_MANUFACTURER
     The library's manufacturer name. Null-terminated text.

GNUTLS_PKCS11_TOKEN_LABEL
     The token's label (string)

GNUTLS_PKCS11_TOKEN_SERIAL
     The token's serial number (string)

GNUTLS_PKCS11_TOKEN_MANUFACTURER
     The token's manufacturer (string)

GNUTLS_PKCS11_TOKEN_MODEL
     The token's model (string)

GNUTLS_PKCS11_TOKEN_MODNAME
     The token's module name (string - since 3.4.3). This value is unavailable for providers which were manually loaded.

GNUTLS_PKCS11_OBJ_UNKNOWN
     Unknown PKCS11 object.

GNUTLS_PKCS11_OBJ_X509_CRT
     X.509 certificate.

GNUTLS_PKCS11_OBJ_PUBKEY
     Public key.

GNUTLS_PKCS11_OBJ_PRIVKEY
     Private key.

GNUTLS_PKCS11_OBJ_SECRET_KEY
     Secret key.

GNUTLS_PKCS11_OBJ_DATA
     Data object.

GNUTLS_PKCS11_OBJ_X509_CRT_EXTENSION
     X.509 certificate extension (supported by p11-kit trust module only).

GNUTLS_PUBKEY_DISABLE_CALLBACKS
     The following flag disables call to PIN callbacks. Only relevant to TPM keys.

GNUTLS_PUBKEY_GET_OPENPGP_FINGERPRINT
     request an OPENPGP fingerprint instead of the default.

GNUTLS_EXPORT_FLAG_NO_LZ
     do not prepend a leading zero to exported values

GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE
     When importing a private key, automatically release it when the structure it was imported is released.

GNUTLS_PRIVKEY_IMPORT_COPY
     Copy required values during import.

GNUTLS_PRIVKEY_DISABLE_CALLBACKS
     The following flag disables call to PIN callbacks etc. Only relevant to TPM keys.

GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA
     Make an RSA signature on the hashed data as in the TLS protocol.

GNUTLS_PRIVKEY_FLAG_PROVABLE
     When generating a key involving prime numbers, use provable primes; a seed may be required.

GNUTLS_PRIVKEY_FLAG_EXPORT_COMPAT
     Keys generated or imported as provable require an extended format which cannot be read by previous versions of gnutls or other applications. By setting this flag the key will be exported in a backwards compatible way, even if the information about the seed used will be lost.

GNUTLS_PRIVKEY_SIGN_FLAG_RSA_PSS
     Make an RSA signature on the hashed data with the PSS padding.

GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE
     Make a signature on the hashed data with reproducible parameters. For RSA-PSS, that means to use empty salt instead of random value. To verify a signature created using this flag, the corresponding SPKI needs to be set on the public key. Use gnutls_pubkey_set_spki()  for that. For ECDSA/DSA, it uses the deterministic construction of random parameter according to RFC 6979. Note that this only supports the NIST curves and DSA subgroup bits up to 512.

GNUTLS_PRIVKEY_FLAG_CA
     The generated private key is going to be used as a CA (relevant for RSA-PSS keys).

GNUTLS_RND_NONCE
     Non-predictable random number.  Fatal in parts of session if broken, i.e., vulnerable to statistical analysis.

GNUTLS_RND_RANDOM
     Pseudo-random cryptographic random number. Fatal in session if broken. Example use: temporal keys.

GNUTLS_RND_KEY
     Fatal in many sessions if broken. Example use: Long-term keys.

GNUTLS_OCSP_PRINT_FULL
     Full information about OCSP request/response.

GNUTLS_OCSP_PRINT_COMPACT
     More compact information about OCSP request/response.

GNUTLS_OCSP_RESP_SUCCESSFUL
     Response has valid confirmations.

GNUTLS_OCSP_RESP_MALFORMEDREQUEST
     Illegal confirmation request

GNUTLS_OCSP_RESP_INTERNALERROR
     Internal error in issuer

GNUTLS_OCSP_RESP_TRYLATER
     Try again later

GNUTLS_OCSP_RESP_SIGREQUIRED
     Must sign the request

GNUTLS_OCSP_RESP_UNAUTHORIZED
     Request unauthorized

GNUTLS_OCSP_CERT_GOOD
     Positive response to status inquiry.

GNUTLS_OCSP_CERT_REVOKED
     Certificate has been revoked.

GNUTLS_OCSP_CERT_UNKNOWN
     The responder doesn't know about the certificate.

GNUTLS_X509_CRLREASON_UNSPECIFIED
     Unspecified reason.

GNUTLS_X509_CRLREASON_KEYCOMPROMISE
     Private key compromised.

GNUTLS_X509_CRLREASON_CACOMPROMISE
     CA compromised.

GNUTLS_X509_CRLREASON_AFFILIATIONCHANGED
     Affiliation has changed.

GNUTLS_X509_CRLREASON_SUPERSEDED
     Certificate superseded.

GNUTLS_X509_CRLREASON_CESSATIONOFOPERATION
     Operation has ceased.

GNUTLS_X509_CRLREASON_CERTIFICATEHOLD
     Certificate is on hold.

GNUTLS_X509_CRLREASON_REMOVEFROMCRL
     Will be removed from delta CRL.

GNUTLS_X509_CRLREASON_PRIVILEGEWITHDRAWN
     Privilege withdrawn.

GNUTLS_X509_CRLREASON_AACOMPROMISE
     AA compromised.

GNUTLS_OCSP_VERIFY_SIGNER_NOT_FOUND
     Signer cert not found.

GNUTLS_OCSP_VERIFY_SIGNER_KEYUSAGE_ERROR
     Signer keyusage bits incorrect.

GNUTLS_OCSP_VERIFY_UNTRUSTED_SIGNER
     Signer is not trusted.

GNUTLS_OCSP_VERIFY_INSECURE_ALGORITHM
     Signature using insecure algorithm.

GNUTLS_OCSP_VERIFY_SIGNATURE_FAILURE
     Signature mismatch.

GNUTLS_OCSP_VERIFY_CERT_NOT_ACTIVATED
     Signer cert is not yet activated.

GNUTLS_OCSP_VERIFY_CERT_EXPIRED
     Signer cert has expired.

GNUTLS_TPMKEY_FMT_RAW
     The portable data format.

GNUTLS_TPMKEY_FMT_DER
     An alias for the raw format.

GNUTLS_TPMKEY_FMT_CTK_PEM
     A custom data format used by some TPM tools.

DANE_CERT_USAGE_CA
     CA constraint. The certificate/key presented must have signed the verified key.

DANE_CERT_USAGE_EE
     The key or the certificate of the end entity.

DANE_CERT_USAGE_LOCAL_CA
     The remote CA is local and possibly untrusted by the verifier.

DANE_CERT_USAGE_LOCAL_EE
     The remote end-entity key is local and possibly untrusted by the verifier (not signed by a CA).

DANE_CERT_X509
     An X.509 certificate.

DANE_CERT_PK
     A public key.

DANE_MATCH_EXACT
     The full content.

DANE_MATCH_SHA2_256
     A SHA-256 hash of the content.

DANE_MATCH_SHA2_512
     A SHA-512 hash of the content.

DANE_QUERY_UNKNOWN
     There was no query.

DANE_QUERY_DNSSEC_VERIFIED
     The query was verified using DNSSEC.

DANE_QUERY_BOGUS
     The query has wrong DNSSEC signature.

DANE_QUERY_NO_DNSSEC
     The query has no DNSSEC data.

DANE_F_IGNORE_LOCAL_RESOLVER
     Many systems are not DNSSEC-ready. In that case the local resolver is ignored, and a direct recursive resolve occurs.

DANE_F_INSECURE
     Ignore any DNSSEC signature verification errors.

DANE_F_IGNORE_DNSSEC
     Do not try to initialize DNSSEC as we will not use it (will then not try to load the DNSSEC root certificate).  Useful if the TLSA data does not come from DNS.

DANE_VFLAG_FAIL_IF_NOT_CHECKED
     If irrelevant to this certificate DANE entries are received fail instead of succeeding.

DANE_VFLAG_ONLY_CHECK_EE_USAGE
     The provided certificates will be verified only against any EE field. Combine with DANE_VFLAG_FAIL_IF_NOT_CHECKED  to fail if EE entries are not present.

DANE_VFLAG_ONLY_CHECK_CA_USAGE
     The provided certificates will be verified only against any CA field. Combine with DANE_VFLAG_FAIL_IF_NOT_CHECKED  to fail if CA entries are not present.

DANE_VERIFY_CA_CONSTRAINTS_VIOLATED
     The CA constraints were violated.

DANE_VERIFY_CERT_DIFFERS
     The certificate obtained via DNS differs.

DANE_VERIFY_UNKNOWN_DANE_INFO
     No known DANE data was found in the DNS record.

GNUTLS_PKCS7_EMBED_DATA
     The signed data will be embedded in the structure.

GNUTLS_PKCS7_INCLUDE_TIME
     The signing time will be included in the structure.

GNUTLS_PKCS7_INCLUDE_CERT
     The signer's certificate will be included in the cert list.

GNUTLS_PKCS7_WRITE_SPKI
     Use the signer's key identifier instead of name.