..
   NOTE This section depends on the script insert-gnutls-lists.py to
   populate the standard configuration and available algorithms.

.. meta::
   :description: Comprehensive list of available cryptographic
                 algorithms and protocols supported in ThinLinc,
                 including cipher suites, certificates, key exchange
                 algorithms, and public key systems.

Available algorithms
--------------------

Here are all the available algorithms for use in a priority string in
ThinLinc.

Cipher suites
~~~~~~~~~~~~~

::

   TLS_AES_128_GCM_SHA256
   TLS_AES_256_GCM_SHA384
   TLS_CHACHA20_POLY1305_SHA256
   TLS_AES_128_CCM_SHA256
   TLS_AES_128_CCM_8_SHA256
   TLS_RSA_NULL_MD5
   TLS_RSA_NULL_SHA1
   TLS_RSA_NULL_SHA256
   TLS_RSA_ARCFOUR_128_SHA1
   TLS_RSA_ARCFOUR_128_MD5
   TLS_RSA_3DES_EDE_CBC_SHA1
   TLS_RSA_AES_128_CBC_SHA1
   TLS_RSA_AES_256_CBC_SHA1
   TLS_RSA_CAMELLIA_128_CBC_SHA256
   TLS_RSA_CAMELLIA_256_CBC_SHA256
   TLS_RSA_CAMELLIA_128_CBC_SHA1
   TLS_RSA_CAMELLIA_256_CBC_SHA1
   TLS_RSA_AES_128_CBC_SHA256
   TLS_RSA_AES_256_CBC_SHA256
   TLS_RSA_AES_128_GCM_SHA256
   TLS_RSA_AES_256_GCM_SHA384
   TLS_RSA_CAMELLIA_128_GCM_SHA256
   TLS_RSA_CAMELLIA_256_GCM_SHA384
   TLS_RSA_AES_128_CCM
   TLS_RSA_AES_256_CCM
   TLS_RSA_AES_128_CCM_8
   TLS_RSA_AES_256_CCM_8
   TLS_DHE_DSS_ARCFOUR_128_SHA1
   TLS_DHE_DSS_3DES_EDE_CBC_SHA1
   TLS_DHE_DSS_AES_128_CBC_SHA1
   TLS_DHE_DSS_AES_256_CBC_SHA1
   TLS_DHE_DSS_CAMELLIA_128_CBC_SHA256
   TLS_DHE_DSS_CAMELLIA_256_CBC_SHA256
   TLS_DHE_DSS_CAMELLIA_128_CBC_SHA1
   TLS_DHE_DSS_CAMELLIA_256_CBC_SHA1
   TLS_DHE_DSS_AES_128_CBC_SHA256
   TLS_DHE_DSS_AES_256_CBC_SHA256
   TLS_DHE_DSS_AES_128_GCM_SHA256
   TLS_DHE_DSS_AES_256_GCM_SHA384
   TLS_DHE_DSS_CAMELLIA_128_GCM_SHA256
   TLS_DHE_DSS_CAMELLIA_256_GCM_SHA384
   TLS_DHE_RSA_3DES_EDE_CBC_SHA1
   TLS_DHE_RSA_AES_128_CBC_SHA1
   TLS_DHE_RSA_AES_256_CBC_SHA1
   TLS_DHE_RSA_CAMELLIA_128_CBC_SHA256
   TLS_DHE_RSA_CAMELLIA_256_CBC_SHA256
   TLS_DHE_RSA_CAMELLIA_128_CBC_SHA1
   TLS_DHE_RSA_CAMELLIA_256_CBC_SHA1
   TLS_DHE_RSA_AES_128_CBC_SHA256
   TLS_DHE_RSA_AES_256_CBC_SHA256
   TLS_DHE_RSA_AES_128_GCM_SHA256
   TLS_DHE_RSA_AES_256_GCM_SHA384
   TLS_DHE_RSA_CAMELLIA_128_GCM_SHA256
   TLS_DHE_RSA_CAMELLIA_256_GCM_SHA384
   TLS_DHE_RSA_CHACHA20_POLY1305
   TLS_DHE_RSA_AES_128_CCM
   TLS_DHE_RSA_AES_256_CCM
   TLS_DHE_RSA_AES_128_CCM_8
   TLS_DHE_RSA_AES_256_CCM_8
   TLS_ECDHE_RSA_NULL_SHA1
   TLS_ECDHE_RSA_3DES_EDE_CBC_SHA1
   TLS_ECDHE_RSA_AES_128_CBC_SHA1
   TLS_ECDHE_RSA_AES_256_CBC_SHA1
   TLS_ECDHE_RSA_AES_256_CBC_SHA384
   TLS_ECDHE_RSA_ARCFOUR_128_SHA1
   TLS_ECDHE_RSA_CAMELLIA_128_CBC_SHA256
   TLS_ECDHE_RSA_CAMELLIA_256_CBC_SHA384
   TLS_ECDHE_ECDSA_NULL_SHA1
   TLS_ECDHE_ECDSA_3DES_EDE_CBC_SHA1
   TLS_ECDHE_ECDSA_AES_128_CBC_SHA1
   TLS_ECDHE_ECDSA_AES_256_CBC_SHA1
   TLS_ECDHE_ECDSA_ARCFOUR_128_SHA1
   TLS_ECDHE_ECDSA_CAMELLIA_128_CBC_SHA256
   TLS_ECDHE_ECDSA_CAMELLIA_256_CBC_SHA384
   TLS_ECDHE_ECDSA_AES_128_CBC_SHA256
   TLS_ECDHE_RSA_AES_128_CBC_SHA256
   TLS_ECDHE_ECDSA_CAMELLIA_128_GCM_SHA256
   TLS_ECDHE_ECDSA_CAMELLIA_256_GCM_SHA384
   TLS_ECDHE_ECDSA_AES_128_GCM_SHA256
   TLS_ECDHE_ECDSA_AES_256_GCM_SHA384
   TLS_ECDHE_RSA_AES_128_GCM_SHA256
   TLS_ECDHE_RSA_AES_256_GCM_SHA384
   TLS_ECDHE_ECDSA_AES_256_CBC_SHA384
   TLS_ECDHE_RSA_CAMELLIA_128_GCM_SHA256
   TLS_ECDHE_RSA_CAMELLIA_256_GCM_SHA384
   TLS_ECDHE_RSA_CHACHA20_POLY1305
   TLS_ECDHE_ECDSA_CHACHA20_POLY1305
   TLS_ECDHE_ECDSA_AES_128_CCM
   TLS_ECDHE_ECDSA_AES_256_CCM
   TLS_ECDHE_ECDSA_AES_128_CCM_8
   TLS_ECDHE_ECDSA_AES_256_CCM_8
   TLS_ECDHE_PSK_3DES_EDE_CBC_SHA1
   TLS_ECDHE_PSK_AES_128_CBC_SHA1
   TLS_ECDHE_PSK_AES_256_CBC_SHA1
   TLS_ECDHE_PSK_AES_128_CBC_SHA256
   TLS_ECDHE_PSK_AES_256_CBC_SHA384
   TLS_ECDHE_PSK_ARCFOUR_128_SHA1
   TLS_ECDHE_PSK_NULL_SHA1
   TLS_ECDHE_PSK_NULL_SHA256
   TLS_ECDHE_PSK_NULL_SHA384
   TLS_ECDHE_PSK_CAMELLIA_128_CBC_SHA256
   TLS_ECDHE_PSK_CAMELLIA_256_CBC_SHA384
   TLS_PSK_ARCFOUR_128_SHA1
   TLS_PSK_3DES_EDE_CBC_SHA1
   TLS_PSK_AES_128_CBC_SHA1
   TLS_PSK_AES_256_CBC_SHA1
   TLS_PSK_AES_128_CBC_SHA256
   TLS_PSK_AES_256_GCM_SHA384
   TLS_PSK_CAMELLIA_128_GCM_SHA256
   TLS_PSK_CAMELLIA_256_GCM_SHA384
   TLS_PSK_AES_128_GCM_SHA256
   TLS_PSK_NULL_SHA1
   TLS_PSK_NULL_SHA256
   TLS_PSK_CAMELLIA_128_CBC_SHA256
   TLS_PSK_CAMELLIA_256_CBC_SHA384
   TLS_PSK_AES_256_CBC_SHA384
   TLS_PSK_NULL_SHA384
   TLS_RSA_PSK_ARCFOUR_128_SHA1
   TLS_RSA_PSK_3DES_EDE_CBC_SHA1
   TLS_RSA_PSK_AES_128_CBC_SHA1
   TLS_RSA_PSK_AES_256_CBC_SHA1
   TLS_RSA_PSK_CAMELLIA_128_GCM_SHA256
   TLS_RSA_PSK_CAMELLIA_256_GCM_SHA384
   TLS_RSA_PSK_AES_128_GCM_SHA256
   TLS_RSA_PSK_AES_128_CBC_SHA256
   TLS_RSA_PSK_NULL_SHA1
   TLS_RSA_PSK_NULL_SHA256
   TLS_RSA_PSK_AES_256_GCM_SHA384
   TLS_RSA_PSK_AES_256_CBC_SHA384
   TLS_RSA_PSK_NULL_SHA384
   TLS_RSA_PSK_CAMELLIA_128_CBC_SHA256
   TLS_RSA_PSK_CAMELLIA_256_CBC_SHA384
   TLS_DHE_PSK_ARCFOUR_128_SHA1
   TLS_DHE_PSK_3DES_EDE_CBC_SHA1
   TLS_DHE_PSK_AES_128_CBC_SHA1
   TLS_DHE_PSK_AES_256_CBC_SHA1
   TLS_DHE_PSK_AES_128_CBC_SHA256
   TLS_DHE_PSK_AES_128_GCM_SHA256
   TLS_DHE_PSK_NULL_SHA1
   TLS_DHE_PSK_NULL_SHA256
   TLS_DHE_PSK_NULL_SHA384
   TLS_DHE_PSK_AES_256_CBC_SHA384
   TLS_DHE_PSK_AES_256_GCM_SHA384
   TLS_DHE_PSK_CAMELLIA_128_CBC_SHA256
   TLS_DHE_PSK_CAMELLIA_256_CBC_SHA384
   TLS_DHE_PSK_CAMELLIA_128_GCM_SHA256
   TLS_DHE_PSK_CAMELLIA_256_GCM_SHA384
   TLS_PSK_AES_128_CCM
   TLS_PSK_AES_256_CCM
   TLS_DHE_PSK_AES_128_CCM
   TLS_DHE_PSK_AES_256_CCM
   TLS_PSK_AES_128_CCM_8
   TLS_PSK_AES_256_CCM_8
   TLS_DHE_PSK_AES_128_CCM_8
   TLS_DHE_PSK_AES_256_CCM_8
   TLS_DHE_PSK_CHACHA20_POLY1305
   TLS_ECDHE_PSK_CHACHA20_POLY1305
   TLS_RSA_PSK_CHACHA20_POLY1305
   TLS_PSK_CHACHA20_POLY1305
   TLS_DH_ANON_ARCFOUR_128_MD5
   TLS_DH_ANON_3DES_EDE_CBC_SHA1
   TLS_DH_ANON_AES_128_CBC_SHA1
   TLS_DH_ANON_AES_256_CBC_SHA1
   TLS_DH_ANON_CAMELLIA_128_CBC_SHA256
   TLS_DH_ANON_CAMELLIA_256_CBC_SHA256
   TLS_DH_ANON_CAMELLIA_128_CBC_SHA1
   TLS_DH_ANON_CAMELLIA_256_CBC_SHA1
   TLS_DH_ANON_AES_128_CBC_SHA256
   TLS_DH_ANON_AES_256_CBC_SHA256
   TLS_DH_ANON_AES_128_GCM_SHA256
   TLS_DH_ANON_AES_256_GCM_SHA384
   TLS_DH_ANON_CAMELLIA_128_GCM_SHA256
   TLS_DH_ANON_CAMELLIA_256_GCM_SHA384
   TLS_ECDH_ANON_NULL_SHA1
   TLS_ECDH_ANON_3DES_EDE_CBC_SHA1
   TLS_ECDH_ANON_AES_128_CBC_SHA1
   TLS_ECDH_ANON_AES_256_CBC_SHA1
   TLS_ECDH_ANON_ARCFOUR_128_SHA1
   TLS_GOSTR341112_256_28147_CNT_IMIT

Certificate types
~~~~~~~~~~~~~~~~~

::

    CTYPE-X.509
    CTYPE-Raw Public Key


Protocols
~~~~~~~~~

::

    VERS-TLS1.0
    VERS-TLS1.1
    VERS-TLS1.2
    VERS-TLS1.3
    VERS-DTLS0.9
    VERS-DTLS1.0
    VERS-DTLS1.2


Ciphers
~~~~~~~

::

    AES-256-CBC
    AES-192-CBC
    AES-128-CBC
    AES-128-GCM
    AES-192-GCM
    AES-256-GCM
    AES-128-CCM
    AES-256-CCM
    AES-128-CCM-8
    AES-256-CCM-8
    ARCFOUR-128
    ESTREAM-SALSA20-256
    SALSA20-256
    CHACHA20-32
    CHACHA20-64
    CAMELLIA-256-CBC
    CAMELLIA-192-CBC
    CAMELLIA-128-CBC
    CHACHA20-POLY1305
    CAMELLIA-128-GCM
    CAMELLIA-256-GCM
    GOST28147-TC26Z-CFB
    GOST28147-CPA-CFB
    GOST28147-CPB-CFB
    GOST28147-CPC-CFB
    GOST28147-CPD-CFB
    AES-128-CFB8
    AES-192-CFB8
    AES-256-CFB8
    AES-128-CFB
    AES-192-CFB
    AES-256-CFB
    AES-128-XTS
    AES-256-XTS
    AES-128-SIV
    AES-256-SIV
    AES-128-SIV-GCM
    AES-256-SIV-GCM
    GOST28147-TC26Z-CNT
    MAGMA-CTR-ACPKM
    KUZNYECHIK-CTR-ACPKM
    3DES-CBC
    DES-CBC
    RC2-40
    NULL


MACs
~~~~

::

    SHA1
    SHA256
    SHA384
    SHA512
    SHA224
    UMAC-96
    UMAC-128
    AEAD
    MD5
    GOSTR341194
    STREEBOG-256
    STREEBOG-512
    AES-CMAC-128
    AES-CMAC-256
    AES-GMAC-128
    AES-GMAC-192
    AES-GMAC-256
    GOST28147-TC26Z-IMIT
    OMAC-MAGMA
    OMAC-KUZNYECHIK
    PBMAC1


Digests
~~~~~~~

::

    SHA1
    SHA256
    SHA384
    SHA512
    SHA224
    MD5
    GOSTR341194
    STREEBOG-256
    STREEBOG-512


Key exchange algorithms
~~~~~~~~~~~~~~~~~~~~~~~

::

    ECDHE-RSA
    ECDHE-ECDSA
    RSA
    DHE-RSA
    DHE-DSS
    PSK
    RSA-PSK
    DHE-PSK
    ECDHE-PSK
    ANON-DH
    ANON-ECDH
    VKO-GOST-12
    RSA-EXPORT


Compression
~~~~~~~~~~~

::

    COMP-NULL
    COMP-ZLIB
    COMP-ZSTD


Groups
~~~~~~

::

    GROUP-SECP192R1
    GROUP-SECP224R1
    GROUP-SECP256R1
    GROUP-SECP384R1
    GROUP-SECP521R1
    GROUP-X25519
    GROUP-GC256B
    GROUP-GC512A
    GROUP-X448
    GROUP-FFDHE2048
    GROUP-FFDHE3072
    GROUP-FFDHE4096
    GROUP-FFDHE6144
    GROUP-FFDHE8192


Public Key Systems
~~~~~~~~~~~~~~~~~~

::

    RSA
    RSA-PSS
    RSA-OAEP
    RSA
    DSA
    GOST R 34.10-2012-512
    GOST R 34.10-2012-256
    GOST R 34.10-2001
    EC/ECDSA
    EdDSA (Ed25519)
    EdDSA (Ed448)
    DH
    ECDH (X25519)
    ECDH (X448)


PK-signatures
~~~~~~~~~~~~~

::

    SIGN-RSA-SHA256
    SIGN-RSA-SHA384
    SIGN-RSA-SHA512
    SIGN-RSA-PSS-SHA256
    SIGN-RSA-PSS-RSAE-SHA256
    SIGN-RSA-PSS-SHA384
    SIGN-RSA-PSS-RSAE-SHA384
    SIGN-RSA-PSS-SHA512
    SIGN-RSA-PSS-RSAE-SHA512
    SIGN-EdDSA-Ed25519
    SIGN-EdDSA-Ed448
    SIGN-ECDSA-SHA256
    SIGN-ECDSA-SHA384
    SIGN-ECDSA-SHA512
    SIGN-ECDSA-SECP256R1-SHA256
    SIGN-ECDSA-SECP384R1-SHA384
    SIGN-ECDSA-SECP521R1-SHA512
    SIGN-ECDSA-SHA3-224
    SIGN-ECDSA-SHA3-256
    SIGN-ECDSA-SHA3-384
    SIGN-ECDSA-SHA3-512
    SIGN-RSA-SHA3-224
    SIGN-RSA-SHA3-256
    SIGN-RSA-SHA3-384
    SIGN-RSA-SHA3-512
    SIGN-DSA-SHA3-224
    SIGN-DSA-SHA3-256
    SIGN-DSA-SHA3-384
    SIGN-DSA-SHA3-512
    SIGN-RSA-RAW
    SIGN-RSA-SHA1
    SIGN-RSA-SHA1
    SIGN-RSA-SHA224
    SIGN-RSA-RMD160
    SIGN-DSA-SHA1
    SIGN-DSA-SHA1
    SIGN-DSA-SHA224
    SIGN-DSA-SHA256
    SIGN-RSA-MD5
    SIGN-RSA-MD5
    SIGN-RSA-MD2
    SIGN-ECDSA-SHA1
    SIGN-ECDSA-SHA224
    SIGN-GOSTR341012-512
    SIGN-GOSTR341012-256
    SIGN-GOSTR341001
    SIGN-DSA-SHA384
    SIGN-DSA-SHA512


