OPENSSL-CIPHERS(1SSL)
π openssl-ciphers β SSL cipher display and cipher list command π
okay bestie, welcome to the manual page for openssl-ciphers, aka the little command that tells you which ciphers your TLS stack is actually vibing with. it's part of the OpenSSL family, and honestly? it's giving main character energy for anyone who's ever had to argue with a cipher list. π
β¨ SYNOPSIS β¨
openssl ciphers [-help] [-s] [-v] [-V] [-tls1] [-tls1_1] [-tls1_2]
[-tls1_3] [-psk] [-srp] [-stdname] [-convert name] [-ciphersuites val]
[-provider name] [-provider-path path] [-provparam [name:]key=value]
[-propquery propq] [cipherlist]
likeβ¦ look at all those flags. she's got options, and we respect that. π
πΈ DESCRIPTION πΈ
so what does this command even do? it takes a textual OpenSSL cipher list and turns it into an ordered SSL cipher preference list. basically you hand it a messy lil string of cipher names, and it hands you back the actual order your TLS handshake is gonna prefer them in. it's your go-to for figuring out what a good cipherlist even looks like. β¨
and here's a lil glow-up note: as of OpenSSL 4.0, the list of TLS 1.3 ciphersuites val and the TLS 1.2 ciphers cipherlist are both processed case-insensitively. so TLS_AES_128_GCM_SHA256 and tls_aes_128_gcm_sha256 are the same girlie. no cap. π₯
π OPTIONS π
-helpβ prints a usage message. that's it, that's the whole job. help a bestie out. π«Ά-provider name-provider-path path-provparam [name:]key=value-propquery propqβ these four are all provider-adjacent, and you should peek at "Provider Options" inopenssl(1),provider(7), andproperty(7)for the full tea. π΅-sβ only list the ciphers that are actually supported: the ones consistent with the security level, plus the minimum and maximum protocol version. this is way closer to the real cipher list an actual application would support, so it's the honest version. π―
PSK and SRP ciphers are not enabled by default β they need-pskor-srpto actually show up.
also, -s does not change the default list of supported signature algorithms. and on a server, the list of supported ciphers might also exclude other ciphers depending on the certificates that are configured and whether DH parameters are present. so many variables, so little time. π
if you don't use this option, then every cipher that matches the cipherlist gets listed. the whole buffet. π
-pskβ when you combine this with-s, it includes cipher suites that require PSK. teamwork makes the dream work. π€-srpβ when combined with-s, includes cipher suites that require SRP. heads up though: this option is deprecated. β οΈ she's old, she's tired, let her rest.-vβ verbose output, babes. for each cipher suite, it lists the details as provided bySSL_CIPHER_description(3). the full lore. π-Vβ like-v, but it also includes the official cipher suite values in hex. for when you need the receipts. π-tls1_3,-tls1_2,-tls1_1,-tls1β in combination with the-soption, these list the ciphers that could be used if the specified protocol were negotiated. note that not all protocols and flags may be available, depending on how OpenSSL was built. your mileage is literally a compile-time mystery. π-stdnameβ puts each cipher suite's standard name right before it. β¨-convert nameβ converts a standard cipher name into its OpenSSL name. translation services, provided free of charge. π§-ciphersuites valβ sets the list of TLSv1.3 ciphersuites. this list gets combined with any TLSv1.2-and-below ciphersuites that have been configured. the format is a simple colon (":") separated list of TLSv1.3 ciphersuite names. by default, this value is:
TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
iconic lineup honestly. π
cipherlistβ a cipher list of TLSv1.2 and below ciphersuites, which gets converted into a cipher preference list. this list is combined with any TLSv1.3 ciphersuites that have been configured. if you don't include it, the default cipher list is used instead. the format is described below. β¬οΈ
π CIPHER LIST FORMAT π
okay so the cipher list is made of one or more cipher strings separated by colons. commas or spaces are also acceptable separators, but colons are the normal choice because obviously. π
the cipher string can reference a cipher using its standard name from the IANA TLS Cipher Suites Registry β you know the one:
<https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-4>
the actual cipher string can take several different forms:
- it can be a single cipher suite, like
AES256-SHA. - it can represent a list of cipher suites containing a certain algorithm, or cipher suites of a certain type. for example,
SHA256represents all cipher suites using the digest algorithmSHA256, andTLSv1.2represents all cipher suites introduced in TLS v.1.2. β¨ - lists of cipher suites can be combined into a single cipher string using the
+character. this acts as a logical AND operation. for example,SHA256+AESrepresents all cipher suites using theSHA256and theAESalgorithms. both. not either. both. π«Ά
π the prefix characters π
each cipher string can optionally be preceded by one of these characters: !, -, or +. and babes, they do not mean the same thing:
- if
!is used, the ciphers are permanently deleted from the list. like, gone-gone. the ciphers deleted this way can never reappear in the list, even if they're explicitly stated later. π - if
-is used, the ciphers are deleted from the list, but some or all of them can be added back by later options. she's not petty, she's just taking a break. - if
+is used, the ciphers are moved to the end of the list. note that this option doesn't add any new ciphers β it just moves the matching existing ones. relocation, not recruitment. π
if none of these characters is present, then the string is just interpreted as a list of ciphers to be appended to the current preference list. and here's the tea: if the list includes ciphers that are already present, they will be ignored β meaning they will not be moved to the end of the list. stay in your seat, bestie. πͺ
π« the special @ strings π«
- the cipher string
@STRENGTHcan be used at any point to sort the current cipher list in order of encryption algorithm key length. gym-bro sorting, if you will. πͺ - the cipher string
@SECLEVEL=ncan be used at any point to set the security level ton, which should be a number between zero and five, inclusive. for a description of what each level actually means, check outSSL_CTX_set_security_level(3). π
π the DEFAULT keyword π
the cipher list can be prefixed with the DEFAULT keyword, which enables the default cipher list as defined below. but β and this is important, bestie β unlike cipher strings, this prefix may not be combined with other strings using the + character. for example, DEFAULT+AES is not valid. do not attempt. it will not slay, it will just fail. π
the content of the default list is determined at compile time and normally corresponds to:
ALL:!COMPLEMENTOFDEFAULT:!eNULL
periodt. π
β¨ CIPHER STRINGS β¨
Bestie, here comes the whole entire menu π β every permitted cipher string and what it actually means. No skipping, we're eating the whole plate.
COMPLEMENTOFDEFAULTβ the cipher suites that live inALLbut are not turned on by default. The reason the default list is what it is: strong security plus reasonable interoperability. A suite can get left off the default list for a bunch of reasons β it's weak, it's not "mature" enough, nobody really uses it, etc. Heads up though: this rule does not covereNULL, becauseeNULLisn't included byALLat all (if you need it, that'sCOMPLEMENTOFALL's job).ALLβ every cipher suite except theeNULLciphers (those you have to explicitly enable if you truly want them). And as of OpenSSL 1.0.0, theALLsuites come sensibly ordered by default. slay πCOMPLEMENTOFALLβ the cipher suites thatALLdoes not enable, which right now is justeNULL.HIGHβ "high" encryption cipher suites. Currently that means the ones with key lengths bigger than 128 bits, plus some 128-bit-key suites thrown in.MEDIUMβ "medium" encryption cipher suites, currently some of the ones using 128 bit encryption.LOWβ "low" encryption cipher suites, currently the ones using 64 or 56 bit encryption algorithms, but not the export cipher suites. PSA: all of these have been removed as of OpenSSL 1.1.0. gone, deceased πeNULL,NULLβ the "NULL" ciphers, aka the ones offering no encryption at all. Because they encrypt literally nothing and are a straight-up security risk, they're not enabled through either theDEFAULTorALLcipher strings. Be careful when you're building cipherlists out of lower-level primitives likekRSAoraECDSA, because those do overlap with theeNULLciphers. When in doubt, throw!eNULLinto your cipherlist.aNULLβ the cipher suites offering no authentication. Currently this is the anonymous DH algorithms and the anonymous ECDH algorithms. These are vulnerable to "man in the middle" attacks, so using them is discouraged π©. They're excluded from theDEFAULTciphers, but they are included in theALLciphers. Be careful when you build cipherlists out of lower-level primitives likekDHEorAES, because those overlap with theaNULLciphers. When in doubt, include!aNULLin your cipherlist.kRSA,aRSA,RSAβ cipher suites using RSA key exchange, RSA authentication, or both of them, respectively.kDHE,kEDH,DHβ cipher suites using ephemeral DH key agreement, anonymous cipher suites included.DHE,EDHβ cipher suites using authenticated ephemeral DH key agreement.ADHβ anonymous DH cipher suites. Note that this does not include anonymous Elliptic Curve DH (ECDH) cipher suites.kEECDH,kECDHE,ECDHβ cipher suites using ephemeral ECDH key agreement, anonymous cipher suites included.ECDHE,EECDHβ cipher suites using authenticated ephemeral ECDH key agreement.AECDHβ anonymous Elliptic Curve Diffie-Hellman cipher suites.aDSS,DSSβ cipher suites using DSS authentication, i.e. the certificates carry DSS keys.aECDSA,ECDSAβ cipher suites using ECDSA authentication, i.e. the certificates carry ECDSA keys.TLSv1.2,TLSv1.0,SSLv3β lists the cipher suites introduced in TLS v1.2, TLS v1.0 or SSL v3.0, respectively. Note: there are no cipher suites specific to TLS v1.1, bestie, don't go looking. Since this is only the minimum version, if, say, TLSv1.0 gets negotiated, then both TLSv1.0 and SSLv3.0 cipher suites are available.
Note: these cipher strings do not change the negotiated version of SSL or TLS. They only affect the list of available cipher suites. π«Ά
AES128,AES256,AESβ cipher suites using 128 bit AES, 256 bit AES, or either 128 or 256 bit AES.AESGCMβ AES in Galois Counter Mode (GCM). These cipher suites are only supported in TLS v1.2.AESCCM,AESCCM8β AES in Cipher Block Chaining - Message Authentication Mode (CCM). These cipher suites are only supported in TLS v1.2.AESCCMreferences CCM cipher suites using both 16 and 8 octet Integrity Check Value (ICV), whileAESCCM8only references the 8 octet ICV.ARIA128,ARIA256β cipher suites using 128 bit ARIA or 256 bit ARIA, respectively.ARIA,ARIAGCMβ cipher suites using either 128 or 256 bit ARIA.CAMELLIA128,CAMELLIA256,CAMELLIAβ cipher suites using 128 bit CAMELLIA, 256 bit CAMELLIA, or either 128 or 256 bit CAMELLIA.CHACHA20β cipher suites using ChaCha20.3DESβ cipher suites using triple DES.DESβ cipher suites using DES (not triple DES). All of these cipher suites have been removed in OpenSSL 1.1.0. R.I.P. πRC4β cipher suites using RC4.RC2β cipher suites using RC2.IDEAβ cipher suites using IDEA.SEEDβ cipher suites using SEED.MD5β cipher suites using MD5.SHA1,SHAβ cipher suites using SHA1.SHA256,SHA384β cipher suites using SHA256 or SHA384.aGOSTβ cipher suites using GOST R 34.10 (either 2001 or 2012) for authentication (this needs a provider that supports GOST algorithms).aGOST01β cipher suites that can be uses with GOST R 34.10-2001 keys for authentication.aGOST12β cipher suites that can be used with GOST R 34.10-2012 keys for authentication.kGOSTβ cipher suites using VKO 34.10 key exchange and key wrap specified in the RFC 4357 or RFC 7836.kGOST18β cipher suites using VKO 34.10 key exchange specified in the RFC 7836 and KExp15 key export specified in the RFC 9189.GOST94β cipher suites using HMAC based on GOST R 34.11-94.GOST12β cipher suites using HMAC based on GOST R 34.11-2012 256 bits.GOST89MACβ cipher suites using GOST 28147-89 MAC instead of HMAC with S-boxes A.GOST89MAC12β cipher suites using GOST 28147-89 MAC instead of HMAC with S-boxes Z.GOST89β cipher suites using any GOST cipher (GOST 28147-89, Magma or Kuznyechik).PSKβ all cipher suites using pre-shared keys (PSK).kPSK,kECDHEPSK,kDHEPSK,kRSAPSKβ cipher suites using PSK key exchange, ECDHE_PSK, DHE_PSK or RSA_PSK.aPSKβ cipher suites using PSK authentication (currently all PSK modes apart from RSA_PSK).kSRP,SRPβ cipher suites using SRP key exchange.aSRPβ cipher suites using SRP authentication.SUITEB128,SUITEB128ONLY,SUITEB192β enables suite B mode of operation using 128 (permitting 192 bit mode by peer) 128 bit (not permitting 192 bit by peer) or 192 bit level of security respectively. If you use these, these cipherstrings should appear first in the cipher list, and anything after them is ignored. Setting Suite B mode has additional consequences required to comply with RFC6460. In particular: the supported signature algorithms is reduced to support only ECDSA and SHA256 or SHA384, only the elliptic curves P-256 and P-384 can be used, and only the two suite B compliant cipher suites (ECDHE-ECDSA-AES128-GCM-SHA256andECDHE-ECDSA-AES256-GCM-SHA384) are permissible. That's a lot of rules, but okay πCBCβ all cipher suites using encryption algorithm in Cipher Block Chaining (CBC) mode. These cipher suites are only supported in TLS v1.2 and earlier. Currently it's an alias for the following cipherstrings:SSL_DES,SSL_3DES,SSL_RC2,SSL_IDEA,SSL_AES128,SSL_AES256,SSL_CAMELLIA128,SSL_CAMELLIA256,SSL_SEED.
πΈ CIPHER SUITE NAMES πΈ
The lists below hand you the standard SSL or TLS cipher suites names from the relevant specification, plus their OpenSSL equivalents. You can use either standard names or OpenSSL names in cipher lists β or a lil mix of both, your call bestie π
It should be noted, that several cipher suite names do not include the authentication used, e.g. DES-CBC3-SHA. In these cases, RSA authentication is used.
π¦ AES cipher suites for TLS v1.2 π¦
okay so first up, the AES girlies π these are the ones you'll actually meet in the wild, and here's the full roster β IANA name on the left, the OpenSSL name on the right, in a code block so nothing gets mangled:
TLS_DH_anon_WITH_AES_128_CBC_SHA256 ADH-AES128-SHA256
TLS_DH_anon_WITH_AES_128_CBC_SHA ADH-AES128-SHA
TLS_DH_anon_WITH_AES_128_GCM_SHA256 ADH-AES128-GCM-SHA256
TLS_DH_anon_WITH_AES_256_CBC_SHA256 ADH-AES256-SHA256
TLS_DH_anon_WITH_AES_256_CBC_SHA ADH-AES256-SHA
TLS_DH_anon_WITH_AES_256_GCM_SHA384 ADH-AES256-GCM-SHA384
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 DHE-DSS-AES128-SHA256
TLS_DHE_DSS_WITH_AES_128_CBC_SHA DHE-DSS-AES128-SHA
TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 DHE-DSS-AES128-GCM-SHA256
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 DHE-DSS-AES256-SHA256
TLS_DHE_DSS_WITH_AES_256_CBC_SHA DHE-DSS-AES256-SHA
TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 DHE-DSS-AES256-GCM-SHA384
TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 DHE-PSK-AES128-CBC-SHA256
TLS_DHE_PSK_WITH_AES_128_CBC_SHA DHE-PSK-AES128-CBC-SHA
TLS_DHE_PSK_WITH_AES_128_CCM_8 DHE-PSK-AES128-CCM8
TLS_DHE_PSK_WITH_AES_128_CCM DHE-PSK-AES128-CCM
TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 DHE-PSK-AES128-GCM-SHA256
TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 DHE-PSK-AES256-CBC-SHA384
TLS_DHE_PSK_WITH_AES_256_CBC_SHA DHE-PSK-AES256-CBC-SHA
TLS_DHE_PSK_WITH_AES_256_CCM_8 DHE-PSK-AES256-CCM8
TLS_DHE_PSK_WITH_AES_256_CCM DHE-PSK-AES256-CCM
TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 DHE-PSK-AES256-GCM-SHA384
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 DHE-RSA-AES128-SHA256
TLS_DHE_RSA_WITH_AES_128_CBC_SHA DHE-RSA-AES128-SHA
TLS_DHE_RSA_WITH_AES_128_CCM_8 DHE-RSA-AES128-CCM8
TLS_DHE_RSA_WITH_AES_128_CCM DHE-RSA-AES128-CCM
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 DHE-RSA-AES128-GCM-SHA256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 DHE-RSA-AES256-SHA256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA DHE-RSA-AES256-SHA
TLS_DHE_RSA_WITH_AES_256_CCM_8 DHE-RSA-AES256-CCM8
TLS_DHE_RSA_WITH_AES_256_CCM DHE-RSA-AES256-CCM
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 DHE-RSA-AES256-GCM-SHA384
TLS_ECDH_anon_WITH_AES_128_CBC_SHA AECDH-AES128-SHA
TLS_ECDH_anon_WITH_AES_128_CCM_8 AECDH-AES128-CCM8
TLS_ECDH_anon_WITH_AES_128_CCM AECDH-AES128-CCM
TLS_ECDH_anon_WITH_AES_256_CBC_SHA AECDH-AES256-SHA
TLS_ECDH_anon_WITH_AES_256_CCM_8 AECDH-AES256-CCM8
TLS_ECDH_anon_WITH_AES_256_CCM AECDH-AES256-CCM
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 ECDH-ECDSA-AES128-SHA256
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA ECDH-ECDSA-AES128-SHA
TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 ECDH-ECDSA-AES128-GCM-SHA256
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 ECDH-ECDSA-AES256-SHA384
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA ECDH-ECDSA-AES256-SHA
TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 ECDH-ECDSA-AES256-GCM-SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 ECDHE-ECDSA-AES128-SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA ECDHE-ECDSA-AES128-SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 ECDHE-ECDSA-AES128-CCM8
TLS_ECDHE_ECDSA_WITH_AES_128_CCM ECDHE-ECDSA-AES128-CCM
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 ECDHE-ECDSA-AES128-GCM-SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 ECDHE-ECDSA-AES256-SHA384
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA ECDHE-ECDSA-AES256-SHA
TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 ECDHE-ECDSA-AES256-CCM8
TLS_ECDHE_ECDSA_WITH_AES_256_CCM ECDHE-ECDSA-AES256-CCM
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 ECDHE-ECDSA-AES256-GCM-SHA384
TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 ECDHE-PSK-AES128-CBC-SHA256
TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA ECDHE-PSK-AES128-CBC-SHA
TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256 ECDHE-PSK-AES128-CCM8
TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256 ECDHE-PSK-AES128-CCM
TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 ECDHE-PSK-AES128-GCM-SHA256
TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 ECDHE-PSK-AES256-CBC-SHA384
TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA ECDHE-PSK-AES256-CBC-SHA
TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384 ECDHE-PSK-AES256-GCM-SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 ECDHE-RSA-AES128-SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA ECDHE-RSA-AES128-SHA
TLS_ECDHE_RSA_WITH_AES_128_CCM_8 ECDHE-RSA-AES128-CCM8
TLS_ECDHE_RSA_WITH_AES_128_CCM ECDHE-RSA-AES128-CCM
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 ECDHE-RSA-AES256-SHA384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA ECDHE-RSA-AES256-SHA
TLS_ECDHE_RSA_WITH_AES_256_CCM_8 ECDHE-RSA-AES256-CCM8
TLS_ECDHE_RSA_WITH_AES_256_CCM ECDHE-RSA-AES256-CCM
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 ECDHE-RSA-AES256-GCM-SHA384
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 ECDH-RSA-AES128-SHA256
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA ECDH-RSA-AES128-SHA
TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 ECDH-RSA-AES128-GCM-SHA256
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 ECDH-RSA-AES256-SHA384
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA ECDH-RSA-AES256-SHA
TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 ECDH-RSA-AES256-GCM-SHA384
TLS_PSK_WITH_AES_128_CBC_SHA256 PSK-AES128-CBC-SHA256
TLS_PSK_WITH_AES_128_CBC_SHA PSK-AES128-CBC-SHA
TLS_PSK_WITH_AES_128_CCM_8 PSK-AES128-CCM8
TLS_PSK_WITH_AES_128_CCM PSK-AES128-CCM
TLS_PSK_WITH_AES_128_GCM_SHA256 PSK-AES128-GCM-SHA256
TLS_PSK_WITH_AES_256_CBC_SHA384 PSK-AES256-CBC-SHA384
TLS_PSK_WITH_AES_256_CBC_SHA PSK-AES256-CBC-SHA
TLS_PSK_WITH_AES_256_CCM_8 PSK-AES256-CCM8
TLS_PSK_WITH_AES_256_CCM PSK-AES256-CCM
TLS_PSK_WITH_AES_256_GCM_SHA384 PSK-AES256-GCM-SHA384
TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 RSA-PSK-AES128-CBC-SHA256
TLS_RSA_PSK_WITH_AES_128_CBC_SHA RSA-PSK-AES128-CBC-SHA
TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 RSA-PSK-AES128-GCM-SHA256
TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 RSA-PSK-AES256-CBC-SHA384
TLS_RSA_PSK_WITH_AES_256_CBC_SHA RSA-PSK-AES256-CBC-SHA
TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 RSA-PSK-AES256-GCM-SHA384
TLS_RSA_WITH_AES_128_CBC_SHA256 AES128-SHA256
TLS_RSA_WITH_AES_128_CBC_SHA AES128-SHA
TLS_RSA_WITH_AES_128_CCM_8 AES128-CCM8
TLS_RSA_WITH_AES_128_CCM AES128-CCM
TLS_RSA_WITH_AES_128_GCM_SHA256 AES128-GCM-SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256 AES256-SHA256
TLS_RSA_WITH_AES_256_CBC_SHA AES256-SHA
TLS_RSA_WITH_AES_256_CCM_8 AES256-CCM8
TLS_RSA_WITH_AES_256_CCM AES256-CCM
TLS_RSA_WITH_AES_256_GCM_SHA384 AES256-GCM-SHA384
like, yes, it's a lot π but that's the whole list, no skips, we don't do skips here.
πΈ Camellia cipher suites for TLS v1.2 πΈ
next up: Camellia, the underrated icon π same deal β IANA name left, OpenSSL name right:
TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 ADH-CAMELLIA128-SHA256
TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA ADH-CAMELLIA128-SHA
TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256 ADH-CAMELLIA128-GCM-SHA256
TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 ADH-CAMELLIA256-SHA256
TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA ADH-CAMELLIA256-SHA
TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384 ADH-CAMELLIA256-GCM-SHA384
TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 DHE-DSS-CAMELLIA128-SHA256
TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA DHE-DSS-CAMELLIA128-SHA
TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 DHE-DSS-CAMELLIA128-GCM-SHA256
TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 DHE-DSS-CAMELLIA256-SHA256
TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA DHE-DSS-CAMELLIA256-SHA
TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 DHE-DSS-CAMELLIA256-GCM-SHA384
TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 DHE-RSA-CAMELLIA128-SHA256
TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA DHE-RSA-CAMELLIA128-SHA
TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 DHE-RSA-CAMELLIA128-GCM-SHA256
TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 DHE-RSA-CAMELLIA256-SHA256
TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA DHE-RSA-CAMELLIA256-SHA
TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 DHE-RSA-CAMELLIA256-GCM-SHA384
TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 ECDH-ECDSA-CAMELLIA128-SHA256
TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 ECDH-ECDSA-CAMELLIA256-SHA384
TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 ECDHE-ECDSA-CAMELLIA128-SHA256
TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 ECDHE-ECDSA-CAMELLIA256-SHA384
TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 ECDHE-PSK-CAMELLIA128-SHA256
TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 ECDHE-PSK-CAMELLIA256-SHA384
TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 ECDHE-RSA-CAMELLIA128-SHA256
TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 ECDHE-RSA-CAMELLIA256-SHA384
TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 ECDH-RSA-CAMELLIA128-SHA256
TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 ECDH-RSA-CAMELLIA256-SHA384
TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 CAMELLIA128-SHA256
TLS_RSA_WITH_CAMELLIA_128_CBC_SHA CAMELLIA128-SHA
TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 CAMELLIA128-GCM-SHA256
TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 CAMELLIA256-SHA256
TLS_RSA_WITH_CAMELLIA_256_CBC_SHA CAMELLIA256-SHA
TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 CAMELLIA256-GCM-SHA384
π SEED cipher suites for TLS v1.2 π
and then SEED, the little guy of the group, only four entries, we love a short list fr fr:
TLS_DH_anon_WITH_SEED_CBC_SHA ADH-SEED-SHA
TLS_DHE_DSS_WITH_SEED_CBC_SHA DHE-DSS-SEED-SHA
TLS_DHE_RSA_WITH_SEED_CBC_SHA DHE-RSA-SEED-SHA
TLS_RSA_WITH_SEED_CBC_SHA SEED-SHA
π GOST cipher suites for TLS v1.2 π
okay so GOST time, and bestie listen up, there's a whole thing here π
Note: these ciphers require a provider that supports GOST cryptographic algorithms, such as the gostprov provider, which isn't part of the OpenSSL distribution.
so like, you literally cannot just vibe-check these β you need the extra provider or they're not showing up to the party, no cap.
TLS_GOSTR341001_WITH_28147_CNT_IMIT GOST2001-GOST89-GOST89
TLS_GOSTR341001_WITH_NULL_GOSTR3411 GOST2001-NULL-GOST94
IANA-GOST2012-GOST8912-GOST8912
LEGACY-GOST2012-GOST8912-GOST8912
GOST2012-NULL-GOST12
GOST2012-KUZNYECHIK-KUZNYECHIKOMAC
GOST2012-MAGMA-MAGMAOMAC
(note that some of these only have the OpenSSL-side name filled in β the left column being empty is literally how they're listed, not me being lazy π )
β ARIA cipher suites from RFC6209, extending TLS v1.2 β
last one for this stretch, and there's a lil catch:
Note: the CBC modes mentioned in this RFC are not supported.
so the ARIA CBC modes? not invited. the rest of it, go read RFC6209, iykyk π¦
TLS_DH_anon_WITH_ARIA_128_CBC_SHA256βADH-ARIA128-CBC-SHA256TLS_DH_anon_WITH_ARIA_128_GCM_SHA256βADH-ARIA128-GCM-SHA256TLS_DH_anon_WITH_ARIA_256_CBC_SHA384βADH-ARIA256-CBC-SHA384TLS_DH_anon_WITH_ARIA_256_GCM_SHA384βADH-ARIA256-GCM-SHA384TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256βDHE-DSS-ARIA128-GCM-SHA256TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384βDHE-DSS-ARIA256-GCM-SHA384TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256βDHE-PSK-ARIA128-CBC-SHA256TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256βDHE-PSK-ARIA128-GCM-SHA256TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384βDHE-PSK-ARIA256-CBC-SHA384TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384βDHE-PSK-ARIA256-GCM-SHA384TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256βDHE-RSA-ARIA128-CBC-SHA256TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256βDHE-RSA-ARIA128-GCM-SHA256TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384βDHE-RSA-ARIA256-CBC-SHA384TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384βDHE-RSA-ARIA256-GCM-SHA384TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256βECDHE-ECDSA-ARIA128-CBC-SHA256TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256βECDHE-ECDSA-ARIA128-GCM-SHA256TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384βECDHE-ECDSA-ARIA256-CBC-SHA384TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384βECDHE-ECDSA-ARIA256-GCM-SHA384TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256βECDHE-PSK-ARIA128-CBC-SHA256TLS_ECDHE_PSK_WITH_ARIA_128_GCM_SHA256βECDHE-PSK-ARIA128-GCM-SHA256TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384βECDHE-PSK-ARIA256-CBC-SHA384TLS_ECDHE_PSK_WITH_ARIA_256_GCM_SHA384βECDHE-PSK-ARIA256-GCM-SHA384TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256βECDHE-RSA-ARIA128-CBC-SHA256TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256βECDHE-RSA-ARIA128-GCM-SHA256TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384βECDHE-RSA-ARIA256-CBC-SHA384TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384βECDHE-RSA-ARIA256-GCM-SHA384TLS_PSK_WITH_ARIA_128_CBC_SHA256βPSK-ARIA128-CBC-SHA256TLS_PSK_WITH_ARIA_128_GCM_SHA256βPSK-ARIA128-GCM-SHA256TLS_PSK_WITH_ARIA_256_GCM_SHA384βPSK-ARIA256-GCM-SHA384TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256βRSA-PSK-ARIA128-CBC-SHA256TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256βRSA-PSK-ARIA128-GCM-SHA256TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384βRSA-PSK-ARIA256-CBC-SHA384TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384βRSA-PSK-ARIA256-GCM-SHA384TLS_RSA_WITH_ARIA_128_CBC_SHA256βARIA128-CBC-SHA256TLS_RSA_WITH_ARIA_128_GCM_SHA256βARIA128-GCM-SHA256TLS_RSA_WITH_ARIA_256_CBC_SHA384βARIA256-CBC-SHA384TLS_RSA_WITH_ARIA_256_GCM_SHA384βARIA256-GCM-SHA384
β¨ ChaCha20-Poly1305 cipher suites, extending TLS v1.2 β¨
No cap, this group is the moment β seven suites only, all of them iconic. π¦
TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256βDHE-PSK-CHACHA20-POLY1305TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256βDHE-RSA-CHACHA20-POLY1305TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256βECDHE-ECDSA-CHACHA20-POLY1305TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256βECDHE-PSK-CHACHA20-POLY1305TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256βECDHE-RSA-CHACHA20-POLY1305TLS_PSK_WITH_CHACHA20_POLY1305_SHA256βPSK-CHACHA20-POLY1305TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256βRSA-PSK-CHACHA20-POLY1305
πΈ Elliptic curve cipher suites for TLS v.1.2 πΈ
okay this is the BIG one, bestie β grab a snack, hydrate, we're going through every single one of these and they all matter. π Every line here is TLS name β OpenSSL name, and you can use either side in your cipher string, fr fr.
TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHAβAECDH-DES-CBC3-SHATLS_ECDH_anon_WITH_AES_128_CBC_SHAβAECDH-AES128-SHATLS_ECDH_anon_WITH_AES_128_CCM_8βAECDH-AES128-CCM8TLS_ECDH_anon_WITH_AES_128_CCMβAECDH-AES128-CCMTLS_ECDH_anon_WITH_AES_256_CBC_SHAβAECDH-AES256-SHATLS_ECDH_anon_WITH_AES_256_CCM_8βAECDH-AES256-CCM8TLS_ECDH_anon_WITH_AES_256_CCMβAECDH-AES256-CCMTLS_ECDH_anon_WITH_RC4_128_SHAβAECDH-RC4-SHATLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHAβECDH-ECDSA-DES-CBC3-SHATLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256βECDH-ECDSA-AES128-SHA256TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHAβECDH-ECDSA-AES128-SHATLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256βECDH-ECDSA-AES128-GCM-SHA256TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384βECDH-ECDSA-AES256-SHA384TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHAβECDH-ECDSA-AES256-SHATLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384βECDH-ECDSA-AES256-GCM-SHA384TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256βECDH-ECDSA-CAMELLIA128-SHA256TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384βECDH-ECDSA-CAMELLIA256-SHA384TLS_ECDH_ECDSA_WITH_RC4_128_SHAβECDH-ECDSA-RC4-SHATLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHAβECDH-RSA-DES-CBC3-SHATLS_ECDH_RSA_WITH_AES_128_CBC_SHA256βECDH-RSA-AES128-SHA256TLS_ECDH_RSA_WITH_AES_128_CBC_SHAβECDH-RSA-AES128-SHATLS_ECDH_RSA_WITH_AES_128_GCM_SHA256βECDH-RSA-AES128-GCM-SHA256TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384βECDH-RSA-AES256-SHA384TLS_ECDH_RSA_WITH_AES_256_CBC_SHAβECDH-RSA-AES256-SHATLS_ECDH_RSA_WITH_AES_256_GCM_SHA384βECDH-RSA-AES256-GCM-SHA384TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256βECDH-RSA-CAMELLIA128-SHA256TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384βECDH-RSA-CAMELLIA256-SHA384TLS_ECDH_RSA_WITH_RC4_128_SHAβECDH-RSA-RC4-SHATLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHAβECDHE-ECDSA-DES-CBC3-SHATLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256βECDHE-ECDSA-AES128-SHA256TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHAβECDHE-ECDSA-AES128-SHATLS_ECDHE_ECDSA_WITH_AES_128_CCM_8βECDHE-ECDSA-AES128-CCM8TLS_ECDHE_ECDSA_WITH_AES_128_CCMβECDHE-ECDSA-AES128-CCMTLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256βECDHE-ECDSA-AES128-GCM-SHA256TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384βECDHE-ECDSA-AES256-SHA384TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHAβECDHE-ECDSA-AES256-SHATLS_ECDHE_ECDSA_WITH_AES_256_CCM_8βECDHE-ECDSA-AES256-CCM8TLS_ECDHE_ECDSA_WITH_AES_256_CCMβECDHE-ECDSA-AES256-CCMTLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384βECDHE-ECDSA-AES256-GCM-SHA384TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256βECDHE-ECDSA-ARIA128-CBC-SHA256TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256βECDHE-ECDSA-ARIA128-GCM-SHA256TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384βECDHE-ECDSA-ARIA256-CBC-SHA384TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384βECDHE-ECDSA-ARIA256-GCM-SHA384TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256βECDHE-ECDSA-CAMELLIA128-SHA256TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384βECDHE-ECDSA-CAMELLIA256-SHA384TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256βECDHE-ECDSA-CHACHA20-POLY1305TLS_ECDHE_ECDSA_WITH_RC4_128_SHAβECDHE-ECDSA-RC4-SHATLS_ECDHE_ECDSA_WITH_SM4_CCM_SM3βECDHE-ECDSA-SM4-CCM-SM3TLS_ECDHE_ECDSA_WITH_SM4_GCM_SM3βECDHE-ECDSA-SM4-GCM-SM3TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHAβECDHE-RSA-DES-CBC3-SHATLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256βECDHE-RSA-AES128-SHA256TLS_ECDHE_RSA_WITH_AES_128_CBC_SHAβECDHE-RSA-AES128-SHATLS_ECDHE_RSA_WITH_AES_128_CCM_8βECDHE-RSA-AES128-CCM8TLS_ECDHE_RSA_WITH_AES_128_CCMβECDHE-RSA-AES128-CCMTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256βECDHE-RSA-AES128-GCM-SHA256TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384βECDHE-RSA-AES256-SHA384TLS_ECDHE_RSA_WITH_AES_256_CBC_SHAβECDHE-RSA-AES256-SHATLS_ECDHE_RSA_WITH_AES_256_CCM_8βECDHE-RSA-AES256-CCM8TLS_ECDHE_RSA_WITH_AES_256_CCMβECDHE-RSA-AES256-CCMTLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384βECDHE-RSA-AES256-GCM-SHA384TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256βECDHE-RSA-ARIA128-CBC-SHA256TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256βECDHE-RSA-ARIA128-GCM-SHA256TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384βECDHE-RSA-ARIA256-CBC-SHA384TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384βECDHE-RSA-ARIA256-GCM-SHA384TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256βECDHE-RSA-CAMELLIA128-SHA256TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384βECDHE-RSA-CAMELLIA256-SHA384TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256βECDHE-RSA-CHACHA20-POLY1305TLS_ECDHE_RSA_WITH_RC4_128_SHAβECDHE-RSA-RC4-SHATLS_ECDHE_RSA_WITH_SM4_CCM_SM3βECDHE-RSA-SM4-CCM-SM3TLS_ECDHE_RSA_WITH_SM4_GCM_SM3βECDHE-RSA-SM4-GCM-SM3TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHAβECDHE-PSK-DES-CBC3-SHATLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256βECDHE-PSK-AES128-CBC-SHA256TLS_ECDHE_PSK_WITH_AES_128_CBC_SHAβECDHE-PSK-AES128-CBC-SHATLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256βECDHE-PSK-AES128-CCM8TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256βECDHE-PSK-AES128-CCMTLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256βECDHE-PSK-AES128-GCM-SHA256TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384βECDHE-PSK-AES256-CBC-SHA384TLS_ECDHE_PSK_WITH_AES_256_CBC_SHAβECDHE-PSK-AES256-CBC-SHATLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384βECDHE-PSK-AES256-GCM-SHA384TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256βECDHE-PSK-ARIA128-CBC-SHA256TLS_ECDHE_PSK_WITH_ARIA_128_GCM_SHA256βECDHE-PSK-ARIA128-GCM-SHA256TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384βECDHE-PSK-ARIA256-CBC-SHA384TLS_ECDHE_PSK_WITH_ARIA_256_GCM_SHA384βECDHE-PSK-ARIA256-GCM-SHA384TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256βECDHE-PSK-CAMELLIA128-SHA256TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384βECDHE-PSK-CAMELLIA256-SHA384TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256βECDHE-PSK-CHACHA20-POLY1305TLS_ECDHE_PSK_WITH_RC4_128_SHAβECDHE-PSK-RC4-SHATLS_ECDHE_PSK_WITH_SM4_CCM_SM3βECDHE-PSK-SM4-CCM-SM3TLS_ECDHE_PSK_WITH_SM4_GCM_SM3βECDHE-PSK-SM4-GCM-SM3
and that's the whole elliptic-curve roster, every last one of them π keep going bestie, there's more below
π Pre-shared keying (PSK) cipher suites π
These are the PSK girlies β everything that runs on pre-shared keys instead of certs, from the classic DHE and ECDHE flavours to plain PSK and RSA-PSK. Both the IANA long name and the short name are listed, so you can use either, no cap:
TLS_DHE_PSK_WITH_AES_128_CBC_SHA256βDHE-PSK-AES128-CBC-SHA256TLS_DHE_PSK_WITH_AES_128_CBC_SHAβDHE-PSK-AES128-CBC-SHATLS_DHE_PSK_WITH_AES_128_CCM_8βDHE-PSK-AES128-CCM8TLS_DHE_PSK_WITH_AES_128_CCMβDHE-PSK-AES128-CCMTLS_DHE_PSK_WITH_AES_128_GCM_SHA256βDHE-PSK-AES128-GCM-SHA256TLS_DHE_PSK_WITH_AES_256_CBC_SHA384βDHE-PSK-AES256-CBC-SHA384TLS_DHE_PSK_WITH_AES_256_CBC_SHAβDHE-PSK-AES256-CBC-SHATLS_DHE_PSK_WITH_AES_256_CCM_8βDHE-PSK-AES256-CCM8TLS_DHE_PSK_WITH_AES_256_CCMβDHE-PSK-AES256-CCMTLS_DHE_PSK_WITH_AES_256_GCM_SHA384βDHE-PSK-AES256-GCM-SHA384TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256βDHE-PSK-ARIA128-CBC-SHA256TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256βDHE-PSK-ARIA128-GCM-SHA256TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384βDHE-PSK-ARIA256-CBC-SHA384TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384βDHE-PSK-ARIA256-GCM-SHA384TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256βDHE-PSK-CHACHA20-POLY1305TLS_DHE_PSK_WITH_SM4_CCM_SM3βDHE-PSK-SM4-CCM-SM3TLS_DHE_PSK_WITH_SM4_GCM_SM3βDHE-PSK-SM4-GCM-SM3TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHAβECDHE-PSK-DES-CBC3-SHATLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256βECDHE-PSK-AES128-CBC-SHA256TLS_ECDHE_PSK_WITH_AES_128_CBC_SHAβECDHE-PSK-AES128-CBC-SHATLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256βECDHE-PSK-AES128-CCM8TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256βECDHE-PSK-AES128-CCMTLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256βECDHE-PSK-AES128-GCM-SHA256TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384βECDHE-PSK-AES256-CBC-SHA384TLS_ECDHE_PSK_WITH_AES_256_CBC_SHAβECDHE-PSK-AES256-CBC-SHATLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384βECDHE-PSK-AES256-GCM-SHA384TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256βECDHE-PSK-ARIA128-CBC-SHA256TLS_ECDHE_PSK_WITH_ARIA_128_GCM_SHA256βECDHE-PSK-ARIA128-GCM-SHA256TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384βECDHE-PSK-ARIA256-CBC-SHA384TLS_ECDHE_PSK_WITH_ARIA_256_GCM_SHA384βECDHE-PSK-ARIA256-GCM-SHA384TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256βECDHE-PSK-CAMELLIA128-SHA256TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384βECDHE-PSK-CAMELLIA256-SHA384TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256βECDHE-PSK-CHACHA20-POLY1305TLS_ECDHE_PSK_WITH_RC4_128_SHAβECDHE-PSK-RC4-SHATLS_ECDHE_PSK_WITH_SM4_CCM_SM3βECDHE-PSK-SM4-CCM-SM3TLS_ECDHE_PSK_WITH_SM4_GCM_SM3βECDHE-PSK-SM4-GCM-SM3TLS_PSK_WITH_AES_128_CBC_SHA256βPSK-AES128-CBC-SHA256TLS_PSK_WITH_AES_128_CBC_SHAβPSK-AES128-CBC-SHATLS_PSK_WITH_AES_128_CCM_8βPSK-AES128-CCM8TLS_PSK_WITH_AES_128_CCMβPSK-AES128-CCMTLS_PSK_WITH_AES_128_GCM_SHA256βPSK-AES128-GCM-SHA256TLS_PSK_WITH_AES_256_CBC_SHA384βPSK-AES256-CBC-SHA384TLS_PSK_WITH_AES_256_CBC_SHAβPSK-AES256-CBC-SHATLS_PSK_WITH_AES_256_CCM_8βPSK-AES256-CCM8TLS_PSK_WITH_AES_256_CCMβPSK-AES256-CCMTLS_PSK_WITH_AES_256_GCM_SHA384βPSK-AES256-GCM-SHA384TLS_PSK_WITH_ARIA_128_CBC_SHA256βPSK-ARIA128-CBC-SHA256TLS_PSK_WITH_ARIA_128_GCM_SHA256βPSK-ARIA128-GCM-SHA256TLS_PSK_WITH_ARIA_256_GCM_SHA384βPSK-ARIA256-GCM-SHA384TLS_PSK_WITH_CHACHA20_POLY1305_SHA256βPSK-CHACHA20-POLY1305TLS_RSA_PSK_WITH_AES_128_CBC_SHA256βRSA-PSK-AES128-CBC-SHA256TLS_RSA_PSK_WITH_AES_128_CBC_SHAβRSA-PSK-AES128-CBC-SHATLS_RSA_PSK_WITH_AES_128_GCM_SHA256βRSA-PSK-AES128-GCM-SHA256TLS_RSA_PSK_WITH_AES_256_CBC_SHA384βRSA-PSK-AES256-CBC-SHA384TLS_RSA_PSK_WITH_AES_256_CBC_SHAβRSA-PSK-AES256-CBC-SHATLS_RSA_PSK_WITH_AES_256_GCM_SHA384βRSA-PSK-AES256-GCM-SHA384TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256βRSA-PSK-ARIA128-CBC-SHA256TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256βRSA-PSK-ARIA128-GCM-SHA256TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384βRSA-PSK-ARIA256-CBC-SHA384TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384βRSA-PSK-ARIA256-GCM-SHA384TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256βRSA-PSK-CHACHA20-POLY1305TLS_RSA_PSK_WITH_SM4_CCM_SM3βRSA-PSK-SM4-CCM-SM3TLS_RSA_PSK_WITH_SM4_GCM_SM3βRSA-PSK-SM4-GCM-SM3
π Other TLS v1.2 cipher suites π
The remaining TLS v1.2 stragglers β the NULL ones, the RC4 ones, the 3DES ones, the anon DH ones, and the SM4 ones. Yes bestie, some of these are deeply cursed, but they're all still listed here so you know exactly what you're looking at:
TLS_RSA_WITH_NULL_MD5βNULL-MD5TLS_RSA_WITH_NULL_SHAβNULL-SHATLS_RSA_WITH_NULL_SHA256βNULL-SHA256TLS_RSA_WITH_RC4_128_MD5βRC4-MD5TLS_RSA_WITH_RC4_128_SHAβRC4-SHATLS_RSA_WITH_IDEA_CBC_SHAβIDEA-CBC-SHATLS_RSA_WITH_3DES_EDE_CBC_SHAβDES-CBC3-SHATLS_RSA_WITH_SM4_CCM_SM3βSM4-CCM-SM3TLS_RSA_WITH_SM4_GCM_SM3βSM4-GCM-SM3TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHAβDHE-DSS-DES-CBC3-SHATLS_DHE_RSA_WITH_3DES_EDE_CBC_SHAβDHE-RSA-DES-CBC3-SHATLS_DHE_RSA_WITH_SM4_CCM_SM3βDHE-RSA-SM4-CCM-SM3TLS_DHE_RSA_WITH_SM4_GCM_SM3βDHE-RSA-SM4-GCM-SM3TLS_DH_anon_WITH_RC4_128_MD5βADH-RC4-MD5TLS_DH_anon_WITH_3DES_EDE_CBC_SHAβADH-DES-CBC3-SHA
π TLS v1.3 cipher suites π
TLS v1.3 keeps it simple, honestly β the "name" and the "long name" are literally the same string here, so no alias drama:
TLS_AES_128_GCM_SHA256βTLS_AES_128_GCM_SHA256TLS_AES_256_GCM_SHA384βTLS_AES_256_GCM_SHA384TLS_CHACHA20_POLY1305_SHA256βTLS_CHACHA20_POLY1305_SHA256TLS_AES_128_CCM_SHA256βTLS_AES_128_CCM_SHA256TLS_AES_128_CCM_8_SHA256βTLS_AES_128_CCM_8_SHA256TLS_SM4_GCM_SM3βTLS_SM4_GCM_SM3TLS_SM4_CCM_SM3βTLS_SM4_CCM_SM3
β¨ TLS v1.3 integrity-only cipher suites according to RFC 9150 β¨
TLS_SHA256_SHA256βTLS_SHA256_SHA256TLS_SHA384_SHA384βTLS_SHA384_SHA384
Okay so heads up, bestie, this one matters: these ciphers are purely HMAC based and do not provide any confidentiality and thus are disabled by default. These ciphers are only available at security level 0. (Translation: they protect that nobody tampered with your bytes, and absolutely nothing about who can read them. Do not use these thinking you got privacy. You did not. π)
π«Ά "EDH-" aliases to "DHE-" names for backward compatibility π«Ά
For the old-school girlies β the following names are accepted by older releases:
EDH-RSA-DES-CBC3-SHAβ alias ofDHE-RSA-DES-CBC3-SHAEDH-DSS-DES-CBC3-SHAβ alias ofDHE-DSS-DES-CBC3-SHA
π NOTES π
Some compiled versions of OpenSSL may not include all the ciphers listed here because some ciphers were excluded at compile time. So if a cipher you swear exists is ghosting you, that's probably why β it got compiled out. π
π EXAMPLES π
Verbose listing of all OpenSSL ciphers including NULL ciphers:
openssl ciphers -v 'ALL:eNULL'
Include all ciphers except NULL and anonymous DH then sort by strength:
openssl ciphers -v 'ALL:!ADH:@STRENGTH'
Include all ciphers except ones with no encryption (eNULL) or no authentication (aNULL):
openssl ciphers -v 'ALL:!aNULL'
Include only AES ciphers and then place RSA ciphers last:
openssl ciphers -v 'AES:+RSA'
Include all ciphers with RSA authentication but leave out ciphers without encryption.
openssl ciphers -v 'RSA:!COMPLEMENTOFALL'
Set security level to 2 and display all ciphers consistent with level 2:
openssl ciphers -s -v 'ALL:@SECLEVEL=2'
π SEE ALSO π
π HISTORY π
- The
-Voption was added in OpenSSL 1.0.0. - The
-stdnameis only available if OpenSSL is built with tracing enabled (enable-ssl-traceargument toConfigure) before OpenSSL 1.1.1. - The
-convertoption was added in OpenSSL 1.1.1. - Support for standard IANA names in cipher lists was added in OpenSSL 3.2.0.
- The support for TLS v1.3 integrity-only cipher suites was added in OpenSSL 3.4.
- The list of TLS 1.3 ciphersuites val and TLS 1.2 ciphers cipherlist were case-sensitive prior to OpenSSL 4.0.
Β©οΈ COPYRIGHT Β©οΈ
Copyright 2000-2026 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>.
and that's the whole page, bestie β you read every single cipher name and I'm so proud of you π₯Ήπ
This was OPENSSL-CIPHERS(1SSL) from OpenSSL 4.0.3, dated 2026-09-29. Go secure something cute. Periodt. πβ¨
π¦ where this page comes from
- ubuntu stonking: openssl 4.0.3-1ubuntu1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms