Author: markt
Date: Fri Jun 19 11:18:08 2015
New Revision: 1686386
URL: http://svn.apache.org/r1686386
Log:
Preparation for supporting multiple certificate types.
Add the cipher ID to the cipher enumeration.
Add some additional commentary to explain gaps etc.
Modified:
tomcat/trunk/java/org/apache/tomcat/util/net/jsse/openssl/Cipher.java
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/jsse/openssl/Cipher.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/jsse/openssl/Cipher.java?rev=1686386&r1=1686385&r2=1686386&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/jsse/openssl/Cipher.java
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/jsse/openssl/Cipher.java Fri
Jun 19 11:18:08 2015
@@ -19,7 +19,9 @@ package org.apache.tomcat.util.net.jsse.
import java.util.Arrays;
import java.util.Collections;
+import java.util.HashMap;
import java.util.HashSet;
+import java.util.Map;
import java.util.Set;
/**
@@ -41,9 +43,17 @@ import java.util.Set;
* >OpenJDK source code</a>
*/
public enum Cipher {
+
+ /* Cipher 0
+ * TLS_NULL_WITH_NULL_NULL
+ * Must never be negotiated. Used internally to represent the initial
+ * unprotected state of a connection.
+ */
+
/* The RSA ciphers */
// Cipher 01
TLS_RSA_WITH_NULL_MD5(
+ 0x0001,
"NULL-MD5",
KeyExchange.RSA,
Authentication.RSA,
@@ -59,6 +69,7 @@ public enum Cipher {
),
// Cipher 02
TLS_RSA_WITH_NULL_SHA(
+ 0x0002,
"NULL-SHA",
KeyExchange.RSA,
Authentication.RSA,
@@ -74,6 +85,7 @@ public enum Cipher {
),
// Cipher 03
TLS_RSA_EXPORT_WITH_RC4_40_MD5(
+ 0x0003,
"EXP-RC4-MD5",
KeyExchange.RSA,
Authentication.RSA,
@@ -89,6 +101,7 @@ public enum Cipher {
),
// Cipher 04
TLS_RSA_WITH_RC4_128_MD5(
+ 0x0004,
"RC4-MD5",
KeyExchange.RSA,
Authentication.RSA,
@@ -104,6 +117,7 @@ public enum Cipher {
),
// Cipher 05
TLS_RSA_WITH_RC4_128_SHA(
+ 0x0005,
"RC4-SHA",
KeyExchange.RSA,
Authentication.RSA,
@@ -119,6 +133,7 @@ public enum Cipher {
),
// Cipher 06
TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5(
+ 0x0006,
"EXP-RC2-CBC-MD5",
KeyExchange.RSA,
Authentication.RSA,
@@ -134,6 +149,7 @@ public enum Cipher {
),
// Cipher 07
TLS_RSA_WITH_IDEA_CBC_SHA(
+ 0x0007,
"IDEA-CBC-SHA",
KeyExchange.RSA,
Authentication.RSA,
@@ -149,6 +165,7 @@ public enum Cipher {
),
// Cipher 08
TLS_RSA_EXPORT_WITH_DES40_CBC_SHA(
+ 0x0008,
"EXP-DES-CBC-SHA",
KeyExchange.RSA,
Authentication.RSA,
@@ -164,6 +181,7 @@ public enum Cipher {
),
// Cipher 09
TLS_RSA_WITH_DES_CBC_SHA(
+ 0x0009,
"DES-CBC-SHA",
KeyExchange.RSA,
Authentication.RSA,
@@ -179,6 +197,7 @@ public enum Cipher {
),
// Cipher 0A
TLS_RSA_WITH_3DES_EDE_CBC_SHA(
+ 0x000A,
"DES-CBC3-SHA",
KeyExchange.RSA,
Authentication.RSA,
@@ -195,6 +214,7 @@ public enum Cipher {
/* The DH ciphers */
// Cipher 0B
TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA(
+ 0x000B,
"EXP-DH-DSS-DES-CBC-SHA",
KeyExchange.DHd,
Authentication.DH,
@@ -210,6 +230,7 @@ public enum Cipher {
),
// Cipher 0C
TLS_DH_DSS_WITH_DES_CBC_SHA(
+ 0x000C,
"DH-DSS-DES-CBC-SHA",
KeyExchange.DHd,
Authentication.DH,
@@ -225,6 +246,7 @@ public enum Cipher {
),
// Cipher 0D
TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA(
+ 0x000D,
"DH-DSS-DES-CBC3-SHA",
KeyExchange.DHd,
Authentication.DH,
@@ -240,6 +262,7 @@ public enum Cipher {
),
// Cipher 0E
TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA(
+ 0x000E,
"EXP-DH-RSA-DES-CBC-SHA",
KeyExchange.DHr,
Authentication.DH,
@@ -255,6 +278,7 @@ public enum Cipher {
),
// Cipher 0F
TLS_DH_RSA_WITH_DES_CBC_SHA(
+ 0x000F,
"DH-RSA-DES-CBC-SHA",
KeyExchange.DHr,
Authentication.DH,
@@ -270,6 +294,7 @@ public enum Cipher {
),
// Cipher 10
TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA(
+ 0x0010,
"DH-RSA-DES-CBC3-SHA",
KeyExchange.DHr,
Authentication.DH,
@@ -286,6 +311,7 @@ public enum Cipher {
/* The Ephemeral DH ciphers */
// Cipher 11
TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA(
+ 0x0011,
"EXP-DHE-DSS-DES-CBC-SHA",
KeyExchange.EDH,
Authentication.DSS,
@@ -301,6 +327,7 @@ public enum Cipher {
),
// Cipher 12
TLS_DHE_DSS_WITH_DES_CBC_SHA(
+ 0x0012,
"DHE-DSS-DES-CBC-SHA",
KeyExchange.EDH,
Authentication.DSS,
@@ -316,6 +343,7 @@ public enum Cipher {
),
// Cipher 13
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA(
+ 0x0013,
"DHE-DSS-DES-CBC3-SHA",
KeyExchange.EDH,
Authentication.DSS,
@@ -331,6 +359,7 @@ public enum Cipher {
),
// Cipher 14
TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA(
+ 0x0014,
"EXP-DHE-RSA-DES-CBC-SHA",
KeyExchange.EDH,
Authentication.RSA,
@@ -346,6 +375,7 @@ public enum Cipher {
),
// Cipher 15
TLS_DHE_RSA_WITH_DES_CBC_SHA(
+ 0x0015,
"DHE-RSA-DES-CBC-SHA",
KeyExchange.EDH,
Authentication.RSA,
@@ -361,6 +391,7 @@ public enum Cipher {
),
// Cipher 16
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA(
+ 0x0016,
"DHE-RSA-DES-CBC3-SHA",
KeyExchange.EDH,
Authentication.RSA,
@@ -376,6 +407,7 @@ public enum Cipher {
),
// Cipher 17
TLS_DH_anon_EXPORT_WITH_RC4_40_MD5(
+ 0x0017,
"EXP-ADH-RC4-MD5",
KeyExchange.EDH,
Authentication.aNULL,
@@ -391,6 +423,7 @@ public enum Cipher {
),
// Cipher 18
TLS_DH_anon_WITH_RC4_128_MD5(
+ 0x0018,
"ADH-RC4-MD5",
KeyExchange.EDH,
Authentication.aNULL,
@@ -406,6 +439,7 @@ public enum Cipher {
),
// Cipher 19
TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA(
+ 0x0019,
"EXP-ADH-DES-CBC-SHA",
KeyExchange.EDH,
Authentication.aNULL,
@@ -421,6 +455,7 @@ public enum Cipher {
),
// Cipher 1A
TLS_DH_anon_WITH_DES_CBC_SHA(
+ 0x001A,
"ADH-DES-CBC-SHA",
KeyExchange.EDH,
Authentication.aNULL,
@@ -436,6 +471,7 @@ public enum Cipher {
),
// Cipher 1B
TLS_DH_anon_WITH_3DES_EDE_CBC_SHA(
+ 0x001B,
"ADH-DES-CBC3-SHA",
KeyExchange.EDH,
Authentication.aNULL,
@@ -449,7 +485,9 @@ public enum Cipher {
168,
"SSL_DH_anon_WITH_3DES_EDE_CBC_SHA"
),
- /* Fortezza ciphersuite from SSL 3.0 spec */
+ /* Fortezza ciphersuite from SSL 3.0 spec
+ * Neither OpenSSL nor Java implement these ciphers and the IDs used
+ * overlap partially with the IDs used by the Kerberos ciphers
// Cipher 1C
SSL_FORTEZZA_DMS_WITH_NULL_SHA(
"FZA-NULL-SHA",
@@ -478,7 +516,7 @@ public enum Cipher {
0,
0
),
- // Cipher 1E - duplicate
+ // Cipher 1E - overlaps with Kerberos below
SSL_FORTEZZA_DMS_WITH_RC4_128_SHA(
"FZA-RC4-SHA",
KeyExchange.FZA,
@@ -492,8 +530,11 @@ public enum Cipher {
128,
128
),
- /* The Kerberos ciphers*/
- // Cipher 1E - duplicate
+ */
+ /* The Kerberos ciphers. OpenSSL doesn't support these. Java does but they
+ * are used for Kerberos authentication.
+ */
+ // Cipher 1E - overlaps with Fortezza above
/*TLS_KRB5_WITH_DES_CBC_SHA(
"KRB5-DES-CBC-SHA",
KeyExchange.KRB5,
@@ -689,9 +730,23 @@ public enum Cipher {
40,
128
),*/
+
+ /* PSK cipher suites from RFC 4785
+ * Unsupported by both Java and OpenSSL.
+ // Cipher 2C
+ TLS_PSK_WITH_NULL_SHA
+
+ // Cipher 2D
+ TLS_DHE_PSK_WITH_NULL_SHA
+
+ // Cipher 2E
+ TLS_RSA_PSK_WITH_NULL_SHA
+ */
+
/* New AES ciphersuites */
// Cipher 2F
TLS_RSA_WITH_AES_128_CBC_SHA(
+ 0x002f,
"AES128-SHA",
KeyExchange.RSA,
Authentication.RSA,
@@ -706,6 +761,7 @@ public enum Cipher {
),
// Cipher 30
TLS_DH_DSS_WITH_AES_128_CBC_SHA(
+ 0x0030,
"DH-DSS-AES128-SHA",
KeyExchange.DHd,
Authentication.DH,
@@ -720,6 +776,7 @@ public enum Cipher {
),
// Cipher 31
TLS_DH_RSA_WITH_AES_128_CBC_SHA(
+ 0x0031,
"DH-RSA-AES128-SHA",
KeyExchange.DHr,
Authentication.DH,
@@ -734,6 +791,7 @@ public enum Cipher {
),
// Cipher 32
TLS_DHE_DSS_WITH_AES_128_CBC_SHA(
+ 0x0032,
"DHE-DSS-AES128-SHA",
KeyExchange.EDH,
Authentication.DSS,
@@ -748,6 +806,7 @@ public enum Cipher {
),
// Cipher 33
TLS_DHE_RSA_WITH_AES_128_CBC_SHA(
+ 0x0033,
"DHE-RSA-AES128-SHA",
KeyExchange.EDH,
Authentication.RSA,
@@ -762,6 +821,7 @@ public enum Cipher {
),
// Cipher 34
TLS_DH_anon_WITH_AES_128_CBC_SHA(
+ 0x0034,
"ADH-AES128-SHA",
KeyExchange.EDH,
Authentication.aNULL,
@@ -776,6 +836,7 @@ public enum Cipher {
),
// Cipher 35
TLS_RSA_WITH_AES_256_CBC_SHA(
+ 0x0035,
"AES256-SHA",
KeyExchange.RSA,
Authentication.RSA,
@@ -790,6 +851,7 @@ public enum Cipher {
),
// Cipher 36
TLS_DH_DSS_WITH_AES_256_CBC_SHA(
+ 0x0036,
"DH-DSS-AES256-SHA",
KeyExchange.DHd,
Authentication.DH,
@@ -804,6 +866,7 @@ public enum Cipher {
),
// Cipher 37
TLS_DH_RSA_WITH_AES_256_CBC_SHA(
+ 0x0037,
"DH-RSA-AES256-SHA",
KeyExchange.DHr,
Authentication.DH,
@@ -818,6 +881,7 @@ public enum Cipher {
),
// Cipher 38
TLS_DHE_DSS_WITH_AES_256_CBC_SHA(
+ 0x0038,
"DHE-DSS-AES256-SHA",
KeyExchange.EDH,
Authentication.DSS,
@@ -832,6 +896,7 @@ public enum Cipher {
),
// Cipher 39
TLS_DHE_RSA_WITH_AES_256_CBC_SHA(
+ 0x0039,
"DHE-RSA-AES256-SHA",
KeyExchange.EDH,
Authentication.RSA,
@@ -846,6 +911,7 @@ public enum Cipher {
),
// Cipher 3A
TLS_DH_anon_WITH_AES_256_CBC_SHA(
+ 0x003A,
"ADH-AES256-SHA",
KeyExchange.EDH,
Authentication.aNULL,
@@ -861,6 +927,7 @@ public enum Cipher {
/* TLS v1.2 ciphersuites */
// Cipher 3B
TLS_RSA_WITH_NULL_SHA256(
+ 0x003B,
"NULL-SHA256",
KeyExchange.RSA,
Authentication.RSA,
@@ -875,6 +942,7 @@ public enum Cipher {
),
// Cipher 3C
TLS_RSA_WITH_AES_128_CBC_SHA256(
+ 0x003C,
"AES128-SHA256",
KeyExchange.RSA,
Authentication.RSA,
@@ -889,6 +957,7 @@ public enum Cipher {
),
// Cipher 3D
TLS_RSA_WITH_AES_256_CBC_SHA256(
+ 0x003D,
"AES256-SHA256",
KeyExchange.RSA,
Authentication.RSA,
@@ -903,6 +972,7 @@ public enum Cipher {
),
// Cipher 3E
TLS_DH_DSS_WITH_AES_128_CBC_SHA256(
+ 0x003E,
"DH-DSS-AES128-SHA256",
KeyExchange.DHd,
Authentication.DH,
@@ -917,6 +987,7 @@ public enum Cipher {
),
// Cipher 3F
TLS_DH_RSA_WITH_AES_128_CBC_SHA256(
+ 0x003F,
"DH-RSA-AES128-SHA256",
KeyExchange.DHr,
Authentication.DH,
@@ -931,6 +1002,7 @@ public enum Cipher {
),
// Cipher 40
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256(
+ 0x0040,
"DHE-DSS-AES128-SHA256",
KeyExchange.EDH,
Authentication.DSS,
@@ -947,6 +1019,7 @@ public enum Cipher {
128-bit portion) */
// Cipher 41
TLS_RSA_WITH_CAMELLIA_128_CBC_SHA(
+ 0x0041,
"CAMELLIA128-SHA",
KeyExchange.RSA,
Authentication.RSA,
@@ -961,6 +1034,7 @@ public enum Cipher {
),
// Cipher 42
TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA(
+ 0x0042,
"DH-DSS-CAMELLIA128-SHA",
KeyExchange.DHd,
Authentication.DH,
@@ -975,6 +1049,7 @@ public enum Cipher {
),
// Cipher 43
TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA(
+ 0x0043,
"DH-RSA-CAMELLIA128-SHA",
KeyExchange.DHr,
Authentication.DH,
@@ -989,6 +1064,7 @@ public enum Cipher {
),
// Cipher 44
TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA(
+ 0x0044,
"DHE-DSS-CAMELLIA128-SHA",
KeyExchange.EDH,
Authentication.DSS,
@@ -1003,6 +1079,7 @@ public enum Cipher {
),
// Cipher 45
TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA(
+ 0x0045,
"DHE-RSA-CAMELLIA128-SHA",
KeyExchange.EDH,
Authentication.RSA,
@@ -1017,6 +1094,7 @@ public enum Cipher {
),
// Cipher 46
TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA(
+ 0x0046,
"ADH-CAMELLIA128-SHA",
KeyExchange.EDH,
Authentication.aNULL,
@@ -1029,7 +1107,8 @@ public enum Cipher {
128,
128
),
- /* New TLS Export CipherSuites from expired ID */
+ /* Experimental (and now expired) TLSv1 versions of SSLv3 ciphers.
+ * Unsupported by Java and OpenSSL.
// Cipher 60
TLS_RSA_EXPORT1024_WITH_RC4_56_MD5(
"EXP1024-RC4-MD5",
@@ -1134,10 +1213,11 @@ public enum Cipher {
128,
128,
"SSL_DHE_DSS_WITH_RC4_128_SHA"
- ),
+ ),*/
/* TLS v1.2 ciphersuites */
// Cipher 67
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256(
+ 0x0067,
"DHE-RSA-AES128-SHA256",
KeyExchange.EDH,
Authentication.RSA,
@@ -1152,6 +1232,7 @@ public enum Cipher {
),
// Cipher 68
TLS_DH_DSS_WITH_AES_256_CBC_SHA256(
+ 0x0068,
"DH-DSS-AES256-SHA256",
KeyExchange.DHd,
Authentication.DH,
@@ -1166,6 +1247,7 @@ public enum Cipher {
),
// Cipher 69
TLS_DH_RSA_WITH_AES_256_CBC_SHA256(
+ 0x0069,
"DH-RSA-AES256-SHA256",
KeyExchange.DHr,
Authentication.DH,
@@ -1180,6 +1262,7 @@ public enum Cipher {
),
// Cipher 6A
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256(
+ 0x006A,
"DHE-DSS-AES256-SHA256",
KeyExchange.EDH,
Authentication.DSS,
@@ -1194,6 +1277,7 @@ public enum Cipher {
),
// Cipher 6B
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256(
+ 0x006B,
"DHE-RSA-AES256-SHA256",
KeyExchange.EDH,
Authentication.RSA,
@@ -1208,6 +1292,7 @@ public enum Cipher {
),
// Cipher 6C
TLS_DH_anon_WITH_AES_128_CBC_SHA256(
+ 0x006C,
"ADH-AES128-SHA256",
KeyExchange.EDH,
Authentication.aNULL,
@@ -1222,6 +1307,7 @@ public enum Cipher {
),
// Cipher 6D
TLS_DH_anon_WITH_AES_256_CBC_SHA256(
+ 0x006D,
"ADH-AES256-SHA256",
KeyExchange.EDH,
Authentication.aNULL,
@@ -1234,7 +1320,8 @@ public enum Cipher {
256,
256
),
- /* GOST Ciphersuites */
+ /* GOST Ciphersuites. Unsupported by Java. OpenSSl lists them with IDs
+ * 0x3000080 to 0x3000083 */
/*
// Cipher 80
TLS_GOSTR341094_WITH_28147_CNT_IMIT(
@@ -1296,6 +1383,7 @@ public enum Cipher {
256-bit portion) */
// Cipher 84
TLS_RSA_WITH_CAMELLIA_256_CBC_SHA(
+ 0x0084,
"CAMELLIA256-SHA",
KeyExchange.RSA,
Authentication.RSA,
@@ -1310,6 +1398,7 @@ public enum Cipher {
),
// Cipher 85
TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA(
+ 0x0085,
"DH-DSS-CAMELLIA256-SHA",
KeyExchange.DHd,
Authentication.DH,
@@ -1324,6 +1413,7 @@ public enum Cipher {
),
// Cipher 86
TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA(
+ 0x0086,
"DH-RSA-CAMELLIA256-SHA",
KeyExchange.DHr,
Authentication.DH,
@@ -1338,6 +1428,7 @@ public enum Cipher {
),
// Cipher 87
TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA(
+ 0x0087,
"DHE-DSS-CAMELLIA256-SHA",
KeyExchange.EDH,
Authentication.DSS,
@@ -1352,6 +1443,7 @@ public enum Cipher {
),
// Cipher 88
TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA(
+ 0x0088,
"DHE-RSA-CAMELLIA256-SHA",
KeyExchange.EDH,
Authentication.RSA,
@@ -1366,6 +1458,7 @@ public enum Cipher {
),
// Cipher 89
TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA(
+ 0x0089,
"ADH-CAMELLIA256-SHA",
KeyExchange.EDH,
Authentication.aNULL,
@@ -1380,6 +1473,7 @@ public enum Cipher {
),
// Cipher 8A
TLS_PSK_WITH_RC4_128_SHA(
+ 0x008A,
"PSK-RC4-SHA",
KeyExchange.PSK,
Authentication.PSK,
@@ -1394,6 +1488,7 @@ public enum Cipher {
),
// Cipher 8B
TLS_PSK_WITH_3DES_EDE_CBC_SHA(
+ 0x008B,
"PSK-3DES-EDE-CBC-SHA",
KeyExchange.PSK,
Authentication.PSK,
@@ -1408,6 +1503,7 @@ public enum Cipher {
),
// Cipher 8C
TLS_PSK_WITH_AES_128_CBC_SHA(
+ 0x008C,
"PSK-AES128-CBC-SHA",
KeyExchange.PSK,
Authentication.PSK,
@@ -1422,6 +1518,7 @@ public enum Cipher {
),
// Cipher 8D
TLS_PSK_WITH_AES_256_CBC_SHA(
+ 0x008D,
"PSK-AES256-CBC-SHA",
KeyExchange.PSK,
Authentication.PSK,
@@ -1434,9 +1531,15 @@ public enum Cipher {
256,
256
),
+
+ /* PSK ciphers 0x008E to 0x0095
+ * Unsupported by both Java and OpenSSL
+ */
+
/* SEED ciphersuites from RFC4162 */
// Cipher 96
TLS_RSA_WITH_SEED_CBC_SHA(
+ 0x0096,
"SEED-SHA",
KeyExchange.RSA,
Authentication.RSA,
@@ -1451,6 +1554,7 @@ public enum Cipher {
),
// Cipher 97
TLS_DH_DSS_WITH_SEED_CBC_SHA(
+ 0x0097,
"DH-DSS-SEED-SHA",
KeyExchange.DHd,
Authentication.DH,
@@ -1465,6 +1569,7 @@ public enum Cipher {
),
// Cipher 98
TLS_DH_RSA_WITH_SEED_CBC_SHA(
+ 0x0098,
"DH-RSA-SEED-SHA",
KeyExchange.DHr,
Authentication.DH,
@@ -1479,6 +1584,7 @@ public enum Cipher {
),
// Cipher 99
TLS_DHE_DSS_WITH_SEED_CBC_SHA(
+ 0x0099,
"DHE-DSS-SEED-SHA",
KeyExchange.EDH,
Authentication.DSS,
@@ -1493,6 +1599,7 @@ public enum Cipher {
),
// Cipher 9A
TLS_DHE_RSA_WITH_SEED_CBC_SHA(
+ 0x009A,
"DHE-RSA-SEED-SHA",
KeyExchange.EDH,
Authentication.RSA,
@@ -1507,6 +1614,7 @@ public enum Cipher {
),
// Cipher 9B
TLS_DH_anon_WITH_SEED_CBC_SHA(
+ 0x009B,
"ADH-SEED-SHA",
KeyExchange.EDH,
Authentication.aNULL,
@@ -1522,6 +1630,7 @@ public enum Cipher {
/* GCM ciphersuites from RFC5288 */
// Cipher 9C
TLS_RSA_WITH_AES_128_GCM_SHA256(
+ 0x009C,
"AES128-GCM-SHA256",
KeyExchange.RSA,
Authentication.RSA,
@@ -1536,6 +1645,7 @@ public enum Cipher {
),
// Cipher 9D
TLS_RSA_WITH_AES_256_GCM_SHA384(
+ 0x009D,
"AES256-GCM-SHA384",
KeyExchange.RSA,
Authentication.RSA,
@@ -1550,6 +1660,7 @@ public enum Cipher {
),
// Cipher 9E
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256(
+ 0x009E,
"DHE-RSA-AES128-GCM-SHA256",
KeyExchange.EDH,
Authentication.RSA,
@@ -1564,6 +1675,7 @@ public enum Cipher {
),
// Cipher 9F
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384(
+ 0x009F,
"DHE-RSA-AES256-GCM-SHA384",
KeyExchange.EDH,
Authentication.RSA,
@@ -1578,6 +1690,7 @@ public enum Cipher {
),
// Cipher A0
TLS_DH_RSA_WITH_AES_128_GCM_SHA256(
+ 0x00A0,
"DH-RSA-AES128-GCM-SHA256",
KeyExchange.DHr,
Authentication.DH,
@@ -1592,6 +1705,7 @@ public enum Cipher {
),
// Cipher A1
TLS_DH_RSA_WITH_AES_256_GCM_SHA384(
+ 0x00A1,
"DH-RSA-AES256-GCM-SHA384",
KeyExchange.DHr,
Authentication.DH,
@@ -1606,6 +1720,7 @@ public enum Cipher {
),
// Cipher A2
TLS_DHE_DSS_WITH_AES_128_GCM_SHA256(
+ 0x00A2,
"DHE-DSS-AES128-GCM-SHA256",
KeyExchange.EDH,
Authentication.DSS,
@@ -1620,6 +1735,7 @@ public enum Cipher {
),
// Cipher A3
TLS_DHE_DSS_WITH_AES_256_GCM_SHA384(
+ 0x00A3,
"DHE-DSS-AES256-GCM-SHA384",
KeyExchange.EDH,
Authentication.DSS,
@@ -1634,6 +1750,7 @@ public enum Cipher {
),
// Cipher A4
TLS_DH_DSS_WITH_AES_128_GCM_SHA256(
+ 0x00A4,
"DH-DSS-AES128-GCM-SHA256",
KeyExchange.DHd,
Authentication.DH,
@@ -1648,6 +1765,7 @@ public enum Cipher {
),
// Cipher A5
TLS_DH_DSS_WITH_AES_256_GCM_SHA384(
+ 0x00A5,
"DH-DSS-AES256-GCM-SHA384",
KeyExchange.DHd,
Authentication.DH,
@@ -1662,6 +1780,7 @@ public enum Cipher {
),
// Cipher A6
TLS_DH_anon_WITH_AES_128_GCM_SHA256(
+ 0x00A6,
"ADH-AES128-GCM-SHA256",
KeyExchange.EDH,
Authentication.aNULL,
@@ -1676,6 +1795,7 @@ public enum Cipher {
),
// Cipher A7
TLS_DH_anon_WITH_AES_256_GCM_SHA384(
+ 0x00A7,
"ADH-AES256-GCM-SHA384",
KeyExchange.EDH,
Authentication.aNULL,
@@ -1688,8 +1808,14 @@ public enum Cipher {
256,
256
),
+
+ /* PSK ciphers 0x00A8 to 0x00B9
+ * Unsupported by both Java and OpenSSL
+ */
+
// Cipher BA
TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256(
+ 0x00BA,
"CAMELLIA128-SHA256",
KeyExchange.RSA,
Authentication.RSA,
@@ -1704,6 +1830,7 @@ public enum Cipher {
),
// Cipher BB
TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256(
+ 0x00BB,
"DH-DSS-CAMELLIA128-SHA256",
KeyExchange.DHd,
Authentication.DH,
@@ -1718,6 +1845,7 @@ public enum Cipher {
),
// Cipher BC
TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256(
+ 0x00BC,
"DH-RSA-CAMELLIA128-SHA256",
KeyExchange.DHr,
Authentication.DH,
@@ -1732,6 +1860,7 @@ public enum Cipher {
),
// Cipher BD
TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256(
+ 0x00BD,
"DHE-DSS-CAMELLIA128-SHA256",
KeyExchange.EDH,
Authentication.DSS,
@@ -1746,6 +1875,7 @@ public enum Cipher {
),
// Cipher BE
TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256(
+ 0x00BE,
"DHE-RSA-CAMELLIA128-SHA256",
KeyExchange.EDH,
Authentication.RSA,
@@ -1760,6 +1890,7 @@ public enum Cipher {
),
// Cipher BF
TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256(
+ 0x00BF,
"ADH-CAMELLIA128-SHA256",
KeyExchange.EDH,
Authentication.aNULL,
@@ -1774,6 +1905,7 @@ public enum Cipher {
),
// Cipher C0
TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256(
+ 0x00C0,
"CAMELLIA256-SHA256",
KeyExchange.RSA,
Authentication.RSA,
@@ -1788,6 +1920,7 @@ public enum Cipher {
),
// Cipher C1
TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256(
+ 0x00C1,
"DH-DSS-CAMELLIA256-SHA256",
KeyExchange.DHd,
Authentication.DH,
@@ -1802,6 +1935,7 @@ public enum Cipher {
),
// Cipher C2
TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256(
+ 0x00C2,
"DH-RSA-CAMELLIA256-SHA256",
KeyExchange.DHr,
Authentication.DH,
@@ -1816,6 +1950,7 @@ public enum Cipher {
),
// Cipher C3
TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256(
+ 0x00C3,
"DHE-DSS-CAMELLIA256-SHA256",
KeyExchange.EDH,
Authentication.DSS,
@@ -1830,6 +1965,7 @@ public enum Cipher {
),
// Cipher C4
TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256(
+ 0x00C4,
"DHE-RSA-CAMELLIA256-SHA256",
KeyExchange.EDH,
Authentication.RSA,
@@ -1844,6 +1980,7 @@ public enum Cipher {
),
// Cipher C5
TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256(
+ 0x00C5,
"ADH-CAMELLIA256-SHA256",
KeyExchange.EDH,
Authentication.aNULL,
@@ -1856,10 +1993,18 @@ public enum Cipher {
256,
256
),
+
+ /* Cipher 0x00FF TLS_EMPTY_RENEGOTIATION_INFO_SCSV
+ * Cipher 0x5600 TLS_FALLBACK_SCSV
+ *
+ * No other ciphers defined until 0xC001 below
+ */
+
/* ECC ciphersuites from draft-ietf-tls-ecc-01.txt (
Mar 15, 2001) */
// Cipher C001
TLS_ECDH_ECDSA_WITH_NULL_SHA(
+ 0xC001,
"ECDH-ECDSA-NULL-SHA",
KeyExchange.ECDHe,
Authentication.ECDH,
@@ -1874,6 +2019,7 @@ public enum Cipher {
),
// Cipher C002
TLS_ECDH_ECDSA_WITH_RC4_128_SHA(
+ 0xC002,
"ECDH-ECDSA-RC4-SHA",
KeyExchange.ECDHe,
Authentication.ECDH,
@@ -1888,6 +2034,7 @@ public enum Cipher {
),
// Cipher C003
TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA(
+ 0xC003,
"ECDH-ECDSA-DES-CBC3-SHA",
KeyExchange.ECDHe,
Authentication.ECDH,
@@ -1902,6 +2049,7 @@ public enum Cipher {
),
// Cipher C004
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA(
+ 0xC004,
"ECDH-ECDSA-AES128-SHA",
KeyExchange.ECDHe,
Authentication.ECDH,
@@ -1916,6 +2064,7 @@ public enum Cipher {
),
// Cipher C005
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA(
+ 0xC005,
"ECDH-ECDSA-AES256-SHA",
KeyExchange.ECDHe,
Authentication.ECDH,
@@ -1930,6 +2079,7 @@ public enum Cipher {
),
// Cipher C006
TLS_ECDHE_ECDSA_WITH_NULL_SHA(
+ 0xC006,
"ECDHE-ECDSA-NULL-SHA",
KeyExchange.EECDH,
Authentication.ECDSA,
@@ -1944,6 +2094,7 @@ public enum Cipher {
),
// Cipher C007
TLS_ECDHE_ECDSA_WITH_RC4_128_SHA(
+ 0xC007,
"ECDHE-ECDSA-RC4-SHA",
KeyExchange.EECDH,
Authentication.ECDSA,
@@ -1958,6 +2109,7 @@ public enum Cipher {
),
// Cipher C008
TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA(
+ 0xC008,
"ECDHE-ECDSA-DES-CBC3-SHA",
KeyExchange.EECDH,
Authentication.ECDSA,
@@ -1972,6 +2124,7 @@ public enum Cipher {
),
// Cipher C009
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA(
+ 0xC009,
"ECDHE-ECDSA-AES128-SHA",
KeyExchange.EECDH,
Authentication.ECDSA,
@@ -1986,6 +2139,7 @@ public enum Cipher {
),
// Cipher C00A
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA(
+ 0xC00A,
"ECDHE-ECDSA-AES256-SHA",
KeyExchange.EECDH,
Authentication.ECDSA,
@@ -2000,6 +2154,7 @@ public enum Cipher {
),
// Cipher C00B
TLS_ECDH_RSA_WITH_NULL_SHA(
+ 0xC00B,
"ECDH-RSA-NULL-SHA",
KeyExchange.ECDHr,
Authentication.ECDH,
@@ -2014,6 +2169,7 @@ public enum Cipher {
),
// Cipher C00C
TLS_ECDH_RSA_WITH_RC4_128_SHA(
+ 0xC00C,
"ECDH-RSA-RC4-SHA",
KeyExchange.ECDHr,
Authentication.ECDH,
@@ -2028,6 +2184,7 @@ public enum Cipher {
),
// Cipher C00D
TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA(
+ 0xC00D,
"ECDH-RSA-DES-CBC3-SHA",
KeyExchange.ECDHr,
Authentication.ECDH,
@@ -2042,6 +2199,7 @@ public enum Cipher {
),
// Cipher C00E
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA(
+ 0xC00E,
"ECDH-RSA-AES128-SHA",
KeyExchange.ECDHr,
Authentication.ECDH,
@@ -2056,6 +2214,7 @@ public enum Cipher {
),
// Cipher C00F
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA(
+ 0xC00F,
"ECDH-RSA-AES256-SHA",
KeyExchange.ECDHr,
Authentication.ECDH,
@@ -2070,6 +2229,7 @@ public enum Cipher {
),
// Cipher C010
TLS_ECDHE_RSA_WITH_NULL_SHA(
+ 0xC010,
"ECDHE-RSA-NULL-SHA",
KeyExchange.EECDH,
Authentication.RSA,
@@ -2084,6 +2244,7 @@ public enum Cipher {
),
// Cipher C011
TLS_ECDHE_RSA_WITH_RC4_128_SHA(
+ 0xC011,
"ECDHE-RSA-RC4-SHA",
KeyExchange.EECDH,
Authentication.RSA,
@@ -2098,6 +2259,7 @@ public enum Cipher {
),
// Cipher C012
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA(
+ 0xC012,
"ECDHE-RSA-DES-CBC3-SHA",
KeyExchange.EECDH,
Authentication.RSA,
@@ -2112,6 +2274,7 @@ public enum Cipher {
),
// Cipher C013
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA(
+ 0xC013,
"ECDHE-RSA-AES128-SHA",
KeyExchange.EECDH,
Authentication.RSA,
@@ -2126,6 +2289,7 @@ public enum Cipher {
),
// Cipher C014
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(
+ 0xC014,
"ECDHE-RSA-AES256-SHA",
KeyExchange.EECDH,
Authentication.RSA,
@@ -2140,6 +2304,7 @@ public enum Cipher {
),
// Cipher C015
TLS_ECDH_anon_WITH_NULL_SHA(
+ 0xC015,
"AECDH-NULL-SHA",
KeyExchange.EECDH,
Authentication.aNULL,
@@ -2154,6 +2319,7 @@ public enum Cipher {
),
// Cipher C016
TLS_ECDH_anon_WITH_RC4_128_SHA(
+ 0xC016,
"AECDH-RC4-SHA",
KeyExchange.EECDH,
Authentication.aNULL,
@@ -2168,6 +2334,7 @@ public enum Cipher {
),
// Cipher C017
TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA(
+ 0xC017,
"AECDH-DES-CBC3-SHA",
KeyExchange.EECDH,
Authentication.aNULL,
@@ -2182,6 +2349,7 @@ public enum Cipher {
),
// Cipher C018
TLS_ECDH_anon_WITH_AES_128_CBC_SHA(
+ 0xC018,
"AECDH-AES128-SHA",
KeyExchange.EECDH,
Authentication.aNULL,
@@ -2196,6 +2364,7 @@ public enum Cipher {
),
// Cipher C019
TLS_ECDH_anon_WITH_AES_256_CBC_SHA(
+ 0xC019,
"AECDH-AES256-SHA",
KeyExchange.EECDH,
Authentication.aNULL,
@@ -2211,6 +2380,7 @@ public enum Cipher {
/* SRP ciphersuite from RFC 5054 */
// Cipher C01A
TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA(
+ 0xC01A,
"SRP-3DES-EDE-CBC-SHA",
KeyExchange.SRP,
Authentication.SRP,
@@ -2225,6 +2395,7 @@ public enum Cipher {
),
// Cipher C01B
TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA(
+ 0xC01B,
"SRP-RSA-3DES-EDE-CBC-SHA",
KeyExchange.SRP,
Authentication.RSA,
@@ -2239,6 +2410,7 @@ public enum Cipher {
),
// Cipher C01C
TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA(
+ 0xC01C,
"SRP-DSS-3DES-EDE-CBC-SHA",
KeyExchange.SRP,
Authentication.DSS,
@@ -2253,6 +2425,7 @@ public enum Cipher {
),
// Cipher C01D
TLS_SRP_SHA_WITH_AES_128_CBC_SHA(
+ 0xC01D,
"SRP-AES-128-CBC-SHA",
KeyExchange.SRP,
Authentication.SRP,
@@ -2267,6 +2440,7 @@ public enum Cipher {
),
// Cipher C01E
TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA(
+ 0xC01E,
"SRP-RSA-AES-128-CBC-SHA",
KeyExchange.SRP,
Authentication.RSA,
@@ -2281,6 +2455,7 @@ public enum Cipher {
),
// Cipher C01F
TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA(
+ 0xC01F,
"SRP-DSS-AES-128-CBC-SHA",
KeyExchange.SRP,
Authentication.DSS,
@@ -2295,6 +2470,7 @@ public enum Cipher {
),
// Cipher C020
TLS_SRP_SHA_WITH_AES_256_CBC_SHA(
+ 0xC020,
"SRP-AES-256-CBC-SHA",
KeyExchange.SRP,
Authentication.SRP,
@@ -2309,6 +2485,7 @@ public enum Cipher {
),
// Cipher C021
TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA(
+ 0xC021,
"SRP-RSA-AES-256-CBC-SHA",
KeyExchange.SRP,
Authentication.RSA,
@@ -2323,6 +2500,7 @@ public enum Cipher {
),
// Cipher C022
TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA(
+ 0xC022,
"SRP-DSS-AES-256-CBC-SHA",
KeyExchange.SRP,
Authentication.DSS,
@@ -2338,6 +2516,7 @@ public enum Cipher {
/* HMAC based TLS v1.2 ciphersuites from RFC5289 */
// Cipher C023
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256(
+ 0xC023,
"ECDHE-ECDSA-AES128-SHA256",
KeyExchange.EECDH,
Authentication.ECDSA,
@@ -2352,6 +2531,7 @@ public enum Cipher {
),
// Cipher C024
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384(
+ 0xC024,
"ECDHE-ECDSA-AES256-SHA384",
KeyExchange.EECDH,
Authentication.ECDSA,
@@ -2366,6 +2546,7 @@ public enum Cipher {
),
// Cipher C025
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256(
+ 0xC025,
"ECDH-ECDSA-AES128-SHA256",
KeyExchange.ECDHe,
Authentication.ECDH,
@@ -2380,6 +2561,7 @@ public enum Cipher {
),
// Cipher C026
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384(
+ 0xC026,
"ECDH-ECDSA-AES256-SHA384",
KeyExchange.ECDHe,
Authentication.ECDH,
@@ -2394,6 +2576,7 @@ public enum Cipher {
),
// Cipher C027
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256(
+ 0xC027,
"ECDHE-RSA-AES128-SHA256",
KeyExchange.EECDH,
Authentication.RSA,
@@ -2408,6 +2591,7 @@ public enum Cipher {
),
// Cipher C028
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384(
+ 0xC028,
"ECDHE-RSA-AES256-SHA384",
KeyExchange.EECDH,
Authentication.RSA,
@@ -2422,6 +2606,7 @@ public enum Cipher {
),
// Cipher C029
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256(
+ 0xC029,
"ECDH-RSA-AES128-SHA256",
KeyExchange.ECDHr,
Authentication.ECDH,
@@ -2436,6 +2621,7 @@ public enum Cipher {
),
// Cipher C02A
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384(
+ 0xC02A,
"ECDH-RSA-AES256-SHA384",
KeyExchange.ECDHr,
Authentication.ECDH,
@@ -2451,6 +2637,7 @@ public enum Cipher {
/* GCM based TLS v1.2 ciphersuites from RFC5289 */
// Cipher C02B
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256(
+ 0xC02B,
"ECDHE-ECDSA-AES128-GCM-SHA256",
KeyExchange.EECDH,
Authentication.ECDSA,
@@ -2465,6 +2652,7 @@ public enum Cipher {
),
// Cipher C02C
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384(
+ 0xC02C,
"ECDHE-ECDSA-AES256-GCM-SHA384",
KeyExchange.EECDH,
Authentication.ECDSA,
@@ -2479,6 +2667,7 @@ public enum Cipher {
),
// Cipher C02D
TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256(
+ 0xC02D,
"ECDH-ECDSA-AES128-GCM-SHA256",
KeyExchange.ECDHe,
Authentication.ECDH,
@@ -2493,6 +2682,7 @@ public enum Cipher {
),
// Cipher C02E
TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384(
+ 0xC02E,
"ECDH-ECDSA-AES256-GCM-SHA384",
KeyExchange.ECDHe,
Authentication.ECDH,
@@ -2507,6 +2697,7 @@ public enum Cipher {
),
// Cipher C02F
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(
+ 0xC02F,
"ECDHE-RSA-AES128-GCM-SHA256",
KeyExchange.EECDH,
Authentication.RSA,
@@ -2521,6 +2712,7 @@ public enum Cipher {
),
// Cipher C030
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(
+ 0xC030,
"ECDHE-RSA-AES256-GCM-SHA384",
KeyExchange.EECDH,
Authentication.RSA,
@@ -2535,6 +2727,7 @@ public enum Cipher {
),
// Cipher C031
TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256(
+ 0xC031,
"ECDH-RSA-AES128-GCM-SHA256",
KeyExchange.ECDHr,
Authentication.ECDH,
@@ -2549,6 +2742,7 @@ public enum Cipher {
),
// Cipher C032
TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384(
+ 0xC032,
"ECDH-RSA-AES256-GCM-SHA384",
KeyExchange.ECDHr,
Authentication.ECDH,
@@ -2561,8 +2755,17 @@ public enum Cipher {
256,
256
),
+
+ /* PSK ciphers 0xC033 to 0xC03B
+ * Unsupported by both Java and OpenSSL
+ */
+
+ /* ARIA ciphers 0xC03C to 0xC071
+ * Unsupported by both Java and OpenSSL
+ */
// Cipher C072
TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256(
+ 0xC072,
"ECDHE-ECDSA-CAMELLIA128-SHA256",
KeyExchange.EECDH,
Authentication.ECDSA,
@@ -2577,6 +2780,7 @@ public enum Cipher {
),
// Cipher C073
TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384(
+ 0xC073,
"ECDHE-ECDSA-CAMELLIA256-SHA384",
KeyExchange.EECDH,
Authentication.ECDSA,
@@ -2591,6 +2795,7 @@ public enum Cipher {
),
// Cipher C074
TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256(
+ 0xC074,
"ECDH-ECDSA-CAMELLIA128-SHA256",
KeyExchange.ECDHe,
Authentication.ECDH,
@@ -2605,6 +2810,7 @@ public enum Cipher {
),
// Cipher C075
TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384(
+ 0xC075,
"ECDH-ECDSA-CAMELLIA256-SHA384",
KeyExchange.ECDHe,
Authentication.ECDH,
@@ -2619,6 +2825,7 @@ public enum Cipher {
),
// Cipher C076
TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256(
+ 0xC076,
"ECDHE-RSA-CAMELLIA128-SHA256",
KeyExchange.EECDH,
Authentication.RSA,
@@ -2633,6 +2840,7 @@ public enum Cipher {
),
// Cipher C077
TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384(
+ 0xC077,
"ECDHE-RSA-CAMELLIA256-SHA384",
KeyExchange.EECDH,
Authentication.RSA,
@@ -2647,6 +2855,7 @@ public enum Cipher {
),
// Cipher C078
TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256(
+ 0xC078,
"ECDH-RSA-CAMELLIA128-SHA256",
KeyExchange.ECDHr,
Authentication.ECDH,
@@ -2661,6 +2870,7 @@ public enum Cipher {
),
// Cipher C079
TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384(
+ 0xC079,
"ECDH-RSA-CAMELLIA256-SHA384",
KeyExchange.ECDHr,
Authentication.ECDH,
@@ -2673,8 +2883,11 @@ public enum Cipher {
256,
256
),
+
+ // Cipher 0x010080 (SSLv2)
// RC4_128_WITH_MD5
SSL_CK_RC4_128_WITH_MD5(
+ -1,
"RC4-MD5",
KeyExchange.RSA,
Authentication.RSA,
@@ -2687,8 +2900,26 @@ public enum Cipher {
128,
128
),
+ // Cipher 0x020080 (SSLv2)
+ SSL2_RC4_128_EXPORT40_WITH_MD5(
+ -1,
+ "EXP-RC4-MD5",
+ KeyExchange.RSA,
+ Authentication.RSA,
+ Encryption.RC4,
+ MessageDigest.MD5,
+ Protocol.SSLv2,
+ true,
+ EncryptionLevel.EXP40,
+ false,
+ 40,
+ 128,
+ "SSL_RC4_128_EXPORT40_WITH_MD5"
+ ),
+ // Cipher 0x030080 (SSLv2)
// RC2_128_CBC_WITH_MD5
SSL_CK_RC2_128_CBC_WITH_MD5(
+ -1,
"RC2-MD5",
KeyExchange.RSA,
Authentication.RSA,
@@ -2701,8 +2932,10 @@ public enum Cipher {
128,
128
),
+ // Cipher 0x040080 (SSLv2)
// RC2_128_CBC_EXPORT40_WITH_MD5
SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5(
+ -1,
"EXP-RC2-CBC-MD5",
KeyExchange.RSA,
Authentication.RSA,
@@ -2715,6 +2948,57 @@ public enum Cipher {
40,
128
),
+ // Cipher 0x050080 (SSLv2)
+ // IDEA_128_CBC_WITH_MD5
+ SSL2_IDEA_128_CBC_WITH_MD5(
+ -1,
+ "IDEA-CBC-MD5",
+ KeyExchange.RSA,
+ Authentication.RSA,
+ Encryption.IDEA,
+ MessageDigest.MD5,
+ Protocol.SSLv2,
+ false, EncryptionLevel.MEDIUM,
+ false,
+ 128,
+ 128,
+ "SSL_CK_IDEA_128_CBC_WITH_MD5"
+ ),
+ // Cipher 0x060040 (SSLv2)
+ // DES_64_CBC_WITH_MD5
+ SSL2_DES_64_CBC_WITH_MD5(
+ -1,
+ "DES-CBC-MD5",
+ KeyExchange.RSA,
+ Authentication.RSA,
+ Encryption.DES,
+ MessageDigest.MD5,
+ Protocol.SSLv2,
+ false,
+ EncryptionLevel.LOW,
+ false,
+ 56,
+ 56,
+ "SSL_CK_DES_64_CBC_WITH_MD5"
+ ),
+ // Cipher 0x0700C0 (SSLv2)
+ // DES_192_EDE3_CBC_WITH_MD5
+ SSL2_DES_192_EDE3_CBC_WITH_MD5(
+ -1,
+ "DES-CBC3-MD5",
+ KeyExchange.RSA,
+ Authentication.RSA,
+ Encryption.TRIPLE_DES,
+ MessageDigest.MD5,
+ Protocol.SSLv2,
+ false,
+ EncryptionLevel.HIGH,
+ false,
+ 112,
+ 168,
+ "SSL_CK_DES_192_EDE3_CBC_WITH_MD5"
+ );
+
/* TEMP_GOST_TLS*/
/*
// Cipher FF00
@@ -2769,84 +3053,9 @@ public enum Cipher {
256,
256
},*/
- // Cipher 0x020080
- SSL2_RC4_128_EXPORT40_WITH_MD5(
- "EXP-RC4-MD5",
- KeyExchange.RSA,
- Authentication.RSA,
- Encryption.RC4,
- MessageDigest.MD5,
- Protocol.SSLv2,
- true,
- EncryptionLevel.EXP40,
- false,
- 40,
- 128,
- "SSL_RC4_128_EXPORT40_WITH_MD5"
- ),
- // Cipher 0x030080 / 0x040080
- SSL2_RC2_CBC_128_CBC_WITH_MD5(
- "RC2-CBC-MD5",
- KeyExchange.RSA,
- Authentication.RSA,
- Encryption.RC2,
- MessageDigest.MD5,
- Protocol.SSLv2,
- false,
- EncryptionLevel.MEDIUM,
- true,
- 128,
- 128
- ),
- // Cipher 0x050080
- // IDEA_128_CBC_WITH_MD5
- SSL2_IDEA_128_CBC_WITH_MD5(
- "IDEA-CBC-MD5",
- KeyExchange.RSA,
- Authentication.RSA,
- Encryption.IDEA,
- MessageDigest.MD5,
- Protocol.SSLv2,
- false, EncryptionLevel.MEDIUM,
- false,
- 128,
- 128,
- "SSL_CK_IDEA_128_CBC_WITH_MD5"
- ),
- // Cipher 0x060040
- // DES_64_CBC_WITH_MD5
- SSL2_DES_64_CBC_WITH_MD5(
- "DES-CBC-MD5",
- KeyExchange.RSA,
- Authentication.RSA,
- Encryption.DES,
- MessageDigest.MD5,
- Protocol.SSLv2,
- false,
- EncryptionLevel.LOW,
- false,
- 56,
- 56,
- "SSL_CK_DES_64_CBC_WITH_MD5"
- ),
- // Cipher 0x0700C0
- // DES_192_EDE3_CBC_WITH_MD5
- SSL2_DES_192_EDE3_CBC_WITH_MD5(
- "DES-CBC3-MD5",
- KeyExchange.RSA,
- Authentication.RSA,
- Encryption.TRIPLE_DES,
- MessageDigest.MD5,
- Protocol.SSLv2,
- false,
- EncryptionLevel.HIGH,
- false,
- 112,
- 168,
- "SSL_CK_DES_192_EDE3_CBC_WITH_MD5"
- );
+ private final int id;
private final String openSSLAlias;
private final Set<String> jsseNames;
private final KeyExchange kx;
@@ -2866,9 +3075,10 @@ public enum Cipher {
*/
private final int alg_bits;
- private Cipher(String openSSLAlias, KeyExchange kx, Authentication au,
Encryption enc, MessageDigest mac,
- Protocol protocol, boolean export, EncryptionLevel level, boolean
fipsCompatible, int strength_bits,
- int alg_bits, String... jsseAltNames) {
+ private Cipher(int id, String openSSLAlias, KeyExchange kx, Authentication
au, Encryption enc,
+ MessageDigest mac, Protocol protocol, boolean export,
EncryptionLevel level,
+ boolean fipsCompatible, int strength_bits, int alg_bits, String...
jsseAltNames) {
+ this.id = id;
this.openSSLAlias = openSSLAlias;
Set<String> names = new HashSet<>();
if (jsseAltNames != null) {
@@ -2888,6 +3098,10 @@ public enum Cipher {
this.alg_bits = alg_bits;
}
+ public int getId() {
+ return id;
+ }
+
public String getOpenSSLAlias() {
return openSSLAlias;
}
@@ -2936,4 +3150,21 @@ public enum Cipher {
return alg_bits;
}
+
+ private static final Map<Integer,Cipher> idMap = new HashMap<>();
+
+ static {
+ for (Cipher cipher : Cipher.values()) {
+ int id = cipher.getId();
+
+ if (id > 0 && id < 0xFFFF) {
+ idMap.put(Integer.valueOf(id), cipher);
+ }
+ }
+ }
+
+
+ public static Cipher valueOf(int cipherId) {
+ return idMap.get(Integer.valueOf(cipherId));
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]