diff options
-rw-r--r-- | networking/tls.c | 37 |
1 files changed, 30 insertions, 7 deletions
diff --git a/networking/tls.c b/networking/tls.c index 9833a0adb..e64e84fcd 100644 --- a/networking/tls.c +++ b/networking/tls.c | |||
@@ -50,17 +50,39 @@ | |||
50 | // ok: openssl s_client -connect cdn.kernel.org:443 -debug -tls1_2 -no_tls1 -no_tls1_1 -cipher AES128-GCM-SHA256 | 50 | // ok: openssl s_client -connect cdn.kernel.org:443 -debug -tls1_2 -no_tls1 -no_tls1_1 -cipher AES128-GCM-SHA256 |
51 | // ok: openssl s_client -connect cdn.kernel.org:443 -debug -tls1_2 -no_tls1 -no_tls1_1 -cipher AES128-SHA | 51 | // ok: openssl s_client -connect cdn.kernel.org:443 -debug -tls1_2 -no_tls1 -no_tls1_1 -cipher AES128-SHA |
52 | // (TLS_RSA_WITH_AES_128_CBC_SHA - in TLS 1.2 it's mandated to be always supported) | 52 | // (TLS_RSA_WITH_AES_128_CBC_SHA - in TLS 1.2 it's mandated to be always supported) |
53 | #define CIPHER_ID1 TLS_RSA_WITH_AES_256_CBC_SHA256 // no SERVER_KEY_EXCHANGE from peer | 53 | #define CIPHER_ID1 TLS_RSA_WITH_AES_256_CBC_SHA256 //0x003D |
54 | // Works with "wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.9.5.tar.xz" | 54 | // Works with "wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.9.5.tar.xz" |
55 | #define CIPHER_ID2 TLS_RSA_WITH_AES_128_CBC_SHA | 55 | #define CIPHER_ID2 TLS_RSA_WITH_AES_128_CBC_SHA //0x003C |
56 | 56 | ||
57 | // bug #11456: | 57 | // bug #11456: |
58 | // ftp.openbsd.org only supports ECDHE-RSA-AESnnn-GCM-SHAnnn or ECDHE-RSA-CHACHA20-POLY1305 | 58 | // ftp.openbsd.org only supports ECDHE-RSA-AESnnn-GCM-SHAnnn or ECDHE-RSA-CHACHA20-POLY1305 |
59 | #define CIPHER_ID3 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 | 59 | #define CIPHER_ID3 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 //0xC02F |
60 | // host is.gd accepts only ECDHE-ECDSA-foo (the simplest which works: ECDHE-ECDSA-AES128-SHA 0xC009) | 60 | // host is.gd accepts only ECDHE-ECDSA-foo (the simplest which works: ECDHE-ECDSA-AES128-SHA 0xC009) |
61 | #define CIPHER_ID4 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA | 61 | #define CIPHER_ID4 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA //0xC009 |
62 | 62 | ||
63 | #define NUM_CIPHERS 4 | 63 | #define NUM_CIPHERS 4 |
64 | //TODO: we can support all these: | ||
65 | // TLS_RSA_WITH_AES_128_CBC_SHA256 0x003C | ||
66 | // TLS_RSA_WITH_AES_256_CBC_SHA256 0x003D | ||
67 | // TLS_RSA_WITH_AES_128_GCM_SHA256 0x009C | ||
68 | // TLS_RSA_WITH_AES_256_GCM_SHA384 0x009D | ||
69 | // TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0xC009 | ||
70 | // TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0xC00A | ||
71 | // TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 0xC013 | ||
72 | // TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 0xC014 | ||
73 | // TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 0xC023 | ||
74 | ////TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 0xC024 - can't do SHA384 yet | ||
75 | // TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 0xC027 | ||
76 | ////TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 0xC028 - can't do SHA384 yet | ||
77 | // TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0xC02B | ||
78 | // TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0xC02C | ||
79 | // TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0xC02F | ||
80 | // TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0xC030 | ||
81 | //possibly these too: | ||
82 | // TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA 0xC035 | ||
83 | // TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA 0xC036 | ||
84 | // TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 0xC037 | ||
85 | ////TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 0xC038 - can't do SHA384 yet | ||
64 | 86 | ||
65 | 87 | ||
66 | #define TLS_DEBUG 0 | 88 | #define TLS_DEBUG 0 |
@@ -142,6 +164,10 @@ | |||
142 | #define TLS_DHE_PSK_WITH_AES_128_CBC_SHA 0x0090 /* 144 */ | 164 | #define TLS_DHE_PSK_WITH_AES_128_CBC_SHA 0x0090 /* 144 */ |
143 | #define TLS_DHE_PSK_WITH_AES_256_CBC_SHA 0x0091 /* 145 */ | 165 | #define TLS_DHE_PSK_WITH_AES_256_CBC_SHA 0x0091 /* 145 */ |
144 | #define TLS_RSA_WITH_SEED_CBC_SHA 0x0096 /* 150 */ | 166 | #define TLS_RSA_WITH_SEED_CBC_SHA 0x0096 /* 150 */ |
167 | #define TLS_RSA_WITH_AES_128_GCM_SHA256 0x009C /*TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(128) Mac=AEAD */ | ||
168 | #define TLS_RSA_WITH_AES_256_GCM_SHA384 0x009D /*TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(256) Mac=AEAD */ | ||
169 | #define TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 0x009E /*TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(128) Mac=AEAD */ | ||
170 | #define TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 0x009F /*TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(256) Mac=AEAD */ | ||
145 | #define TLS_PSK_WITH_AES_128_CBC_SHA256 0x00AE /* 174 */ | 171 | #define TLS_PSK_WITH_AES_128_CBC_SHA256 0x00AE /* 174 */ |
146 | #define TLS_PSK_WITH_AES_256_CBC_SHA384 0x00AF /* 175 */ | 172 | #define TLS_PSK_WITH_AES_256_CBC_SHA384 0x00AF /* 175 */ |
147 | #define TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0xC004 /* 49156 */ | 173 | #define TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0xC004 /* 49156 */ |
@@ -161,10 +187,7 @@ | |||
161 | #define TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 0xC028 /*TLSv1.2 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA384 */ | 187 | #define TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 0xC028 /*TLSv1.2 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA384 */ |
162 | #define TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 0xC029 /* 49193 */ | 188 | #define TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 0xC029 /* 49193 */ |
163 | #define TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 0xC02A /* 49194 */ | 189 | #define TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 0xC02A /* 49194 */ |
164 | |||
165 | /* RFC 5288 "AES Galois Counter Mode (GCM) Cipher Suites for TLS" */ | 190 | /* RFC 5288 "AES Galois Counter Mode (GCM) Cipher Suites for TLS" */ |
166 | #define TLS_RSA_WITH_AES_128_GCM_SHA256 0x009C /*TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(128) Mac=AEAD */ | ||
167 | #define TLS_RSA_WITH_AES_256_GCM_SHA384 0x009D /*TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(256) Mac=AEAD */ | ||
168 | #define TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0xC02B /*TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(128) Mac=AEAD */ | 191 | #define TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0xC02B /*TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(128) Mac=AEAD */ |
169 | #define TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0xC02C /*TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(256) Mac=AEAD */ | 192 | #define TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0xC02C /*TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(256) Mac=AEAD */ |
170 | #define TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0xC02D /* 49197 */ | 193 | #define TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0xC02D /* 49197 */ |