| OLD | NEW |
| 1 /* This Source Code Form is subject to the terms of the Mozilla Public | 1 /* This Source Code Form is subject to the terms of the Mozilla Public |
| 2 * License, v. 2.0. If a copy of the MPL was not distributed with this | 2 * License, v. 2.0. If a copy of the MPL was not distributed with this |
| 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
| 4 #include "ssl.h" | 4 #include "ssl.h" |
| 5 #include "sslimpl.h" | 5 #include "sslimpl.h" |
| 6 #include "sslproto.h" | 6 #include "sslproto.h" |
| 7 | 7 |
| 8 static const char * | 8 static const char * |
| 9 ssl_GetCompressionMethodName(SSLCompressionMethod compression) | 9 ssl_GetCompressionMethodName(SSLCompressionMethod compression) |
| 10 { | 10 { |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 | 110 |
| 111 #define C_SEED "SEED", calg_seed | 111 #define C_SEED "SEED", calg_seed |
| 112 #define C_CAMELLIA "CAMELLIA", calg_camellia | 112 #define C_CAMELLIA "CAMELLIA", calg_camellia |
| 113 #define C_AES "AES", calg_aes | 113 #define C_AES "AES", calg_aes |
| 114 #define C_RC4 "RC4", calg_rc4 | 114 #define C_RC4 "RC4", calg_rc4 |
| 115 #define C_RC2 "RC2", calg_rc2 | 115 #define C_RC2 "RC2", calg_rc2 |
| 116 #define C_DES "DES", calg_des | 116 #define C_DES "DES", calg_des |
| 117 #define C_3DES "3DES", calg_3des | 117 #define C_3DES "3DES", calg_3des |
| 118 #define C_NULL "NULL", calg_null | 118 #define C_NULL "NULL", calg_null |
| 119 #define C_SJ "SKIPJACK", calg_sj | 119 #define C_SJ "SKIPJACK", calg_sj |
| 120 #define C_AESGCM "AESGCM", calg_aes_128_gcm |
| 120 | 121 |
| 121 #define B_256 256, 256, 256 | 122 #define B_256 256, 256, 256 |
| 122 #define B_128 128, 128, 128 | 123 #define B_128 128, 128, 128 |
| 123 #define B_3DES 192, 156, 112 | 124 #define B_3DES 192, 156, 112 |
| 124 #define B_SJ 96, 80, 80 | 125 #define B_SJ 96, 80, 80 |
| 125 #define B_DES 64, 56, 56 | 126 #define B_DES 64, 56, 56 |
| 126 #define B_56 128, 56, 56 | 127 #define B_56 128, 56, 56 |
| 127 #define B_40 128, 40, 40 | 128 #define B_40 128, 40, 40 |
| 128 #define B_0 0, 0, 0 | 129 #define B_0 0, 0, 0 |
| 129 | 130 |
| 130 #define M_SHA256 "SHA256", ssl_hmac_sha256, 256 | 131 #define M_SHA256 "SHA256", ssl_hmac_sha256, 256 |
| 131 #define M_SHA "SHA1", ssl_mac_sha, 160 | 132 #define M_SHA "SHA1", ssl_mac_sha, 160 |
| 132 #define M_MD5 "MD5", ssl_mac_md5, 128 | 133 #define M_MD5 "MD5", ssl_mac_md5, 128 |
| 134 #define M_NONE "NONE", ssl_mac_null,128 |
| 133 | 135 |
| 134 static const SSLCipherSuiteInfo suiteInfo[] = { | 136 static const SSLCipherSuiteInfo suiteInfo[] = { |
| 135 /* <------ Cipher suite --------------------> <auth> <KEA> <bulk cipher> <MAC>
<FIPS> */ | 137 /* <------ Cipher suite --------------------> <auth> <KEA> <bulk cipher> <MAC>
<FIPS> */ |
| 138 {0,CS(TLS_RSA_WITH_AES_128_GCM_SHA256), S_RSA, K_RSA, C_AESGCM, B_128, M_N
ONE, 0, 0, 0, }, |
| 139 |
| 136 {0,CS(TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA), S_RSA, K_DHE, C_CAMELLIA, B_256, M
_SHA, 0, 0, 0, }, | 140 {0,CS(TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA), S_RSA, K_DHE, C_CAMELLIA, B_256, M
_SHA, 0, 0, 0, }, |
| 137 {0,CS(TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA), S_DSA, K_DHE, C_CAMELLIA, B_256, M
_SHA, 0, 0, 0, }, | 141 {0,CS(TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA), S_DSA, K_DHE, C_CAMELLIA, B_256, M
_SHA, 0, 0, 0, }, |
| 138 {0,CS(TLS_DHE_RSA_WITH_AES_256_CBC_SHA256), S_RSA, K_DHE, C_AES, B_256, M_SHA2
56, 1, 0, 0, }, | 142 {0,CS(TLS_DHE_RSA_WITH_AES_256_CBC_SHA256), S_RSA, K_DHE, C_AES, B_256, M_SHA2
56, 1, 0, 0, }, |
| 139 {0,CS(TLS_DHE_RSA_WITH_AES_256_CBC_SHA), S_RSA, K_DHE, C_AES, B_256, M_SHA,
1, 0, 0, }, | 143 {0,CS(TLS_DHE_RSA_WITH_AES_256_CBC_SHA), S_RSA, K_DHE, C_AES, B_256, M_SHA,
1, 0, 0, }, |
| 140 {0,CS(TLS_DHE_DSS_WITH_AES_256_CBC_SHA), S_DSA, K_DHE, C_AES, B_256, M_SHA,
1, 0, 0, }, | 144 {0,CS(TLS_DHE_DSS_WITH_AES_256_CBC_SHA), S_DSA, K_DHE, C_AES, B_256, M_SHA,
1, 0, 0, }, |
| 141 {0,CS(TLS_RSA_WITH_CAMELLIA_256_CBC_SHA), S_RSA, K_RSA, C_CAMELLIA, B_256, M
_SHA, 0, 0, 0, }, | 145 {0,CS(TLS_RSA_WITH_CAMELLIA_256_CBC_SHA), S_RSA, K_RSA, C_CAMELLIA, B_256, M
_SHA, 0, 0, 0, }, |
| 142 {0,CS(TLS_RSA_WITH_AES_256_CBC_SHA256), S_RSA, K_RSA, C_AES, B_256, M_SHA2
56, 1, 0, 0, }, | 146 {0,CS(TLS_RSA_WITH_AES_256_CBC_SHA256), S_RSA, K_RSA, C_AES, B_256, M_SHA2
56, 1, 0, 0, }, |
| 143 {0,CS(TLS_RSA_WITH_AES_256_CBC_SHA), S_RSA, K_RSA, C_AES, B_256, M_SHA,
1, 0, 0, }, | 147 {0,CS(TLS_RSA_WITH_AES_256_CBC_SHA), S_RSA, K_RSA, C_AES, B_256, M_SHA,
1, 0, 0, }, |
| 144 | 148 |
| 145 {0,CS(TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA), S_RSA, K_DHE, C_CAMELLIA, B_128, M
_SHA, 0, 0, 0, }, | 149 {0,CS(TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA), S_RSA, K_DHE, C_CAMELLIA, B_128, M
_SHA, 0, 0, 0, }, |
| (...skipping 22 matching lines...) Expand all Loading... |
| 168 {0,CS(TLS_RSA_EXPORT1024_WITH_RC4_56_SHA), S_RSA, K_RSA, C_RC4, B_56, M_SHA,
0, 1, 0, }, | 172 {0,CS(TLS_RSA_EXPORT1024_WITH_RC4_56_SHA), S_RSA, K_RSA, C_RC4, B_56, M_SHA,
0, 1, 0, }, |
| 169 {0,CS(TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA), S_RSA, K_RSA, C_DES, B_DES, M_SHA,
0, 1, 0, }, | 173 {0,CS(TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA), S_RSA, K_RSA, C_DES, B_DES, M_SHA,
0, 1, 0, }, |
| 170 {0,CS(SSL_RSA_EXPORT_WITH_RC4_40_MD5), S_RSA, K_RSA, C_RC4, B_40, M_MD5,
0, 1, 0, }, | 174 {0,CS(SSL_RSA_EXPORT_WITH_RC4_40_MD5), S_RSA, K_RSA, C_RC4, B_40, M_MD5,
0, 1, 0, }, |
| 171 {0,CS(SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5), S_RSA, K_RSA, C_RC2, B_40, M_MD5,
0, 1, 0, }, | 175 {0,CS(SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5), S_RSA, K_RSA, C_RC2, B_40, M_MD5,
0, 1, 0, }, |
| 172 {0,CS(TLS_RSA_WITH_NULL_SHA256), S_RSA, K_RSA, C_NULL,B_0, M_SHA2
56, 0, 1, 0, }, | 176 {0,CS(TLS_RSA_WITH_NULL_SHA256), S_RSA, K_RSA, C_NULL,B_0, M_SHA2
56, 0, 1, 0, }, |
| 173 {0,CS(SSL_RSA_WITH_NULL_SHA), S_RSA, K_RSA, C_NULL,B_0, M_SHA,
0, 1, 0, }, | 177 {0,CS(SSL_RSA_WITH_NULL_SHA), S_RSA, K_RSA, C_NULL,B_0, M_SHA,
0, 1, 0, }, |
| 174 {0,CS(SSL_RSA_WITH_NULL_MD5), S_RSA, K_RSA, C_NULL,B_0, M_MD5,
0, 1, 0, }, | 178 {0,CS(SSL_RSA_WITH_NULL_MD5), S_RSA, K_RSA, C_NULL,B_0, M_MD5,
0, 1, 0, }, |
| 175 | 179 |
| 176 #ifdef NSS_ENABLE_ECC | 180 #ifdef NSS_ENABLE_ECC |
| 177 /* ECC cipher suites */ | 181 /* ECC cipher suites */ |
| 182 {0,CS(TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256), S_RSA, K_ECDHE, C_AES, B_128, M_SH
A256, 1, 0, 0, }, |
| 183 {0,CS(TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256), S_ECDSA, K_ECDHE, C_AES, B_128,
M_SHA256, 1, 0, 0, }, |
| 184 |
| 178 {0,CS(TLS_ECDH_ECDSA_WITH_NULL_SHA), S_ECDSA, K_ECDH, C_NULL, B_0, M_SH
A, 0, 0, 0, }, | 185 {0,CS(TLS_ECDH_ECDSA_WITH_NULL_SHA), S_ECDSA, K_ECDH, C_NULL, B_0, M_SH
A, 0, 0, 0, }, |
| 179 {0,CS(TLS_ECDH_ECDSA_WITH_RC4_128_SHA), S_ECDSA, K_ECDH, C_RC4, B_128, M_S
HA, 0, 0, 0, }, | 186 {0,CS(TLS_ECDH_ECDSA_WITH_RC4_128_SHA), S_ECDSA, K_ECDH, C_RC4, B_128, M_S
HA, 0, 0, 0, }, |
| 180 {0,CS(TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA), S_ECDSA, K_ECDH, C_3DES, B_3DES, M
_SHA, 1, 0, 0, }, | 187 {0,CS(TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA), S_ECDSA, K_ECDH, C_3DES, B_3DES, M
_SHA, 1, 0, 0, }, |
| 181 {0,CS(TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA), S_ECDSA, K_ECDH, C_AES, B_128, M_S
HA, 1, 0, 0, }, | 188 {0,CS(TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA), S_ECDSA, K_ECDH, C_AES, B_128, M_S
HA, 1, 0, 0, }, |
| 182 {0,CS(TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA), S_ECDSA, K_ECDH, C_AES, B_256, M_S
HA, 1, 0, 0, }, | 189 {0,CS(TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA), S_ECDSA, K_ECDH, C_AES, B_256, M_S
HA, 1, 0, 0, }, |
| 183 | 190 |
| 184 {0,CS(TLS_ECDHE_ECDSA_WITH_NULL_SHA), S_ECDSA, K_ECDHE, C_NULL, B_0, M_S
HA, 0, 0, 0, }, | 191 {0,CS(TLS_ECDHE_ECDSA_WITH_NULL_SHA), S_ECDSA, K_ECDHE, C_NULL, B_0, M_S
HA, 0, 0, 0, }, |
| 185 {0,CS(TLS_ECDHE_ECDSA_WITH_RC4_128_SHA), S_ECDSA, K_ECDHE, C_RC4, B_128, M_
SHA, 0, 0, 0, }, | 192 {0,CS(TLS_ECDHE_ECDSA_WITH_RC4_128_SHA), S_ECDSA, K_ECDHE, C_RC4, B_128, M_
SHA, 0, 0, 0, }, |
| 186 {0,CS(TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA), S_ECDSA, K_ECDHE, C_3DES, B_3DES,
M_SHA, 1, 0, 0, }, | 193 {0,CS(TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA), S_ECDSA, K_ECDHE, C_3DES, B_3DES,
M_SHA, 1, 0, 0, }, |
| 187 {0,CS(TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA), S_ECDSA, K_ECDHE, C_AES, B_128, M_
SHA, 1, 0, 0, }, | 194 {0,CS(TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA), S_ECDSA, K_ECDHE, C_AES, B_128, M_
SHA, 1, 0, 0, }, |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 396 rv = ssl3_TLSPRFWithMasterSecret(ss->ssl3.cwSpec, label, labelLen, val, | 403 rv = ssl3_TLSPRFWithMasterSecret(ss->ssl3.cwSpec, label, labelLen, val, |
| 397 valLen, out, outLen); | 404 valLen, out, outLen); |
| 398 } | 405 } |
| 399 ssl_ReleaseSpecReadLock(ss); | 406 ssl_ReleaseSpecReadLock(ss); |
| 400 ssl_ReleaseSSL3HandshakeLock(ss); | 407 ssl_ReleaseSSL3HandshakeLock(ss); |
| 401 ssl_ReleaseRecvBufLock(ss); | 408 ssl_ReleaseRecvBufLock(ss); |
| 402 | 409 |
| 403 PORT_ZFree(val, valLen); | 410 PORT_ZFree(val, valLen); |
| 404 return rv; | 411 return rv; |
| 405 } | 412 } |
| OLD | NEW |