Index: net/third_party/nss/patches/fallbackscsv.patch |
=================================================================== |
--- net/third_party/nss/patches/fallbackscsv.patch (revision 245705) |
+++ net/third_party/nss/patches/fallbackscsv.patch (working copy) |
@@ -1,6 +1,6 @@ |
diff -pu a/nss/lib/ssl/ssl3con.c b/nss/lib/ssl/ssl3con.c |
---- a/nss/lib/ssl/ssl3con.c 2014-01-03 19:44:44.807185186 -0800 |
-+++ b/nss/lib/ssl/ssl3con.c 2014-01-03 19:44:54.857349534 -0800 |
+--- a/nss/lib/ssl/ssl3con.c 2014-01-17 18:46:51.999581198 -0800 |
++++ b/nss/lib/ssl/ssl3con.c 2014-01-17 18:47:05.509804656 -0800 |
@@ -3473,6 +3473,9 @@ ssl3_HandleAlert(sslSocket *ss, sslBuffe |
case certificate_unknown: error = SSL_ERROR_CERTIFICATE_UNKNOWN_ALERT; |
break; |
@@ -60,15 +60,7 @@ |
for (i = 0; i < ssl_V3_SUITES_IMPLEMENTED; i++) { |
ssl3CipherSuiteCfg *suite = &ss->cipherSuites[i]; |
if (config_match(suite, ss->ssl3.policy, PR_TRUE, &ss->vrange)) { |
-@@ -5416,6 +5437,7 @@ ssl3_SendClientHello(sslSocket *ss, PRBo |
- |
- extLen = ssl3_AppendPaddingExtension(ss, paddingExtensionLen, maxBytes); |
- if (extLen < 0) { |
-+ if (sid->u.ssl3.lock) { PR_RWLock_Unlock(sid->u.ssl3.lock); } |
- return SECFailure; |
- } |
- maxBytes -= extLen; |
-@@ -8083,6 +8105,19 @@ ssl3_HandleClientHello(sslSocket *ss, SS |
+@@ -8084,6 +8105,19 @@ ssl3_HandleClientHello(sslSocket *ss, SS |
goto loser; /* malformed */ |
} |
@@ -89,8 +81,8 @@ |
rv = ssl3_ConsumeHandshakeVariable(ss, &comps, 1, &b, &length); |
if (rv != SECSuccess) { |
diff -pu a/nss/lib/ssl/ssl3prot.h b/nss/lib/ssl/ssl3prot.h |
---- a/nss/lib/ssl/ssl3prot.h 2014-01-03 19:39:28.442012014 -0800 |
-+++ b/nss/lib/ssl/ssl3prot.h 2014-01-03 19:44:54.857349534 -0800 |
+--- a/nss/lib/ssl/ssl3prot.h 2014-01-17 17:59:03.242109996 -0800 |
++++ b/nss/lib/ssl/ssl3prot.h 2014-01-17 18:47:05.509804656 -0800 |
@@ -98,6 +98,7 @@ typedef enum { |
protocol_version = 70, |
insufficient_security = 71, |
@@ -100,8 +92,8 @@ |
no_renegotiation = 100, |
diff -pu a/nss/lib/ssl/sslerr.h b/nss/lib/ssl/sslerr.h |
---- a/nss/lib/ssl/sslerr.h 2014-01-03 19:39:28.442012014 -0800 |
-+++ b/nss/lib/ssl/sslerr.h 2014-01-03 19:44:54.877349862 -0800 |
+--- a/nss/lib/ssl/sslerr.h 2014-01-17 17:59:03.242109996 -0800 |
++++ b/nss/lib/ssl/sslerr.h 2014-01-17 18:47:05.509804656 -0800 |
@@ -196,6 +196,7 @@ SSL_ERROR_INCORRECT_SIGNATURE_ALGORITHM |
SSL_ERROR_BAD_CHANNEL_ID_DATA = (SSL_ERROR_BASE + 129), |
SSL_ERROR_INVALID_CHANNEL_ID_KEY = (SSL_ERROR_BASE + 130), |
@@ -111,8 +103,8 @@ |
SSL_ERROR_END_OF_LIST /* let the c compiler determine the value of this. */ |
} SSLErrorCodes; |
diff -pu a/nss/lib/ssl/SSLerrs.h b/nss/lib/ssl/SSLerrs.h |
---- a/nss/lib/ssl/SSLerrs.h 2014-01-03 19:39:28.442012014 -0800 |
-+++ b/nss/lib/ssl/SSLerrs.h 2014-01-03 19:44:54.907350351 -0800 |
+--- a/nss/lib/ssl/SSLerrs.h 2014-01-17 17:59:03.242109996 -0800 |
++++ b/nss/lib/ssl/SSLerrs.h 2014-01-17 18:47:05.509804656 -0800 |
@@ -421,3 +421,8 @@ ER3(SSL_ERROR_INVALID_CHANNEL_ID_KEY, (S |
ER3(SSL_ERROR_GET_CHANNEL_ID_FAILED, (SSL_ERROR_BASE + 131), |
@@ -123,31 +115,31 @@ |
+" handshake failure, but the server indicated that it should not have been" |
+" needed.") |
diff -pu a/nss/lib/ssl/ssl.h b/nss/lib/ssl/ssl.h |
---- a/nss/lib/ssl/ssl.h 2014-01-03 19:44:44.807185186 -0800 |
-+++ b/nss/lib/ssl/ssl.h 2014-01-03 19:44:54.907350351 -0800 |
-@@ -163,6 +163,8 @@ SSL_IMPORT PRFileDesc *DTLS_ImportFD(PRF |
- #define SSL_ENABLE_OCSP_STAPLING 24 /* Request OCSP stapling (client) */ |
+--- a/nss/lib/ssl/ssl.h 2014-01-17 18:46:51.999581198 -0800 |
++++ b/nss/lib/ssl/ssl.h 2014-01-17 18:48:54.971613341 -0800 |
+@@ -183,6 +183,8 @@ SSL_IMPORT PRFileDesc *DTLS_ImportFD(PRF |
+ |
/* Request Signed Certificate Timestamps via TLS extension (client) */ |
- #define SSL_ENABLE_SIGNED_CERT_TIMESTAMPS 25 |
-+#define SSL_ENABLE_FALLBACK_SCSV 26 /* Send fallback SCSV in |
+ #define SSL_ENABLE_SIGNED_CERT_TIMESTAMPS 27 |
++#define SSL_ENABLE_FALLBACK_SCSV 28 /* Send fallback SCSV in |
+ * handshakes. */ |
#ifdef SSL_DEPRECATED_FUNCTION |
/* Old deprecated function names */ |
diff -pu a/nss/lib/ssl/sslimpl.h b/nss/lib/ssl/sslimpl.h |
---- a/nss/lib/ssl/sslimpl.h 2014-01-03 19:44:44.807185186 -0800 |
-+++ b/nss/lib/ssl/sslimpl.h 2014-01-03 19:44:54.907350351 -0800 |
-@@ -336,6 +336,7 @@ typedef struct sslOptionsStr { |
- unsigned int cbcRandomIV : 1; /* 24 */ |
- unsigned int enableOCSPStapling : 1; /* 25 */ |
- unsigned int enableSignedCertTimestamps : 1; /* 26 */ |
-+ unsigned int enableFallbackSCSV : 1; /* 27 */ |
+--- a/nss/lib/ssl/sslimpl.h 2014-01-17 18:46:51.999581198 -0800 |
++++ b/nss/lib/ssl/sslimpl.h 2014-01-17 18:51:17.963962287 -0800 |
+@@ -338,6 +338,7 @@ typedef struct sslOptionsStr { |
+ unsigned int enableNPN : 1; /* 26 */ |
+ unsigned int enableALPN : 1; /* 27 */ |
+ unsigned int enableSignedCertTimestamps : 1; /* 28 */ |
++ unsigned int enableFallbackSCSV : 1; /* 29 */ |
} sslOptions; |
typedef enum { sslHandshakingUndetermined = 0, |
diff -pu a/nss/lib/ssl/sslproto.h b/nss/lib/ssl/sslproto.h |
---- a/nss/lib/ssl/sslproto.h 2014-01-03 19:43:07.025586219 -0800 |
-+++ b/nss/lib/ssl/sslproto.h 2014-01-03 19:44:54.907350351 -0800 |
+--- a/nss/lib/ssl/sslproto.h 2014-01-17 18:10:16.793281867 -0800 |
++++ b/nss/lib/ssl/sslproto.h 2014-01-17 18:47:05.509804656 -0800 |
@@ -172,6 +172,11 @@ |
*/ |
#define TLS_EMPTY_RENEGOTIATION_INFO_SCSV 0x00FF |
@@ -161,21 +153,21 @@ |
* RFCs. |
*/ |
diff -pu a/nss/lib/ssl/sslsock.c b/nss/lib/ssl/sslsock.c |
---- a/nss/lib/ssl/sslsock.c 2014-01-03 19:44:44.807185186 -0800 |
-+++ b/nss/lib/ssl/sslsock.c 2014-01-03 19:44:54.907350351 -0800 |
-@@ -86,7 +86,8 @@ static sslOptions ssl_defaults = { |
- PR_FALSE, /* enableFalseStart */ |
- PR_TRUE, /* cbcRandomIV */ |
+--- a/nss/lib/ssl/sslsock.c 2014-01-17 18:46:52.009581364 -0800 |
++++ b/nss/lib/ssl/sslsock.c 2014-01-17 18:59:17.931852364 -0800 |
+@@ -88,7 +88,8 @@ static sslOptions ssl_defaults = { |
PR_FALSE, /* enableOCSPStapling */ |
+ PR_TRUE, /* enableNPN */ |
+ PR_FALSE, /* enableALPN */ |
- PR_FALSE /* enableSignedCertTimestamps */ |
+ PR_FALSE, /* enableSignedCertTimestamps */ |
+ PR_FALSE /* enableFallbackSCSV */ |
}; |
/* |
-@@ -782,6 +783,10 @@ SSL_OptionSet(PRFileDesc *fd, PRInt32 wh |
- ss->opt.enableSignedCertTimestamps = on; |
- break; |
+@@ -792,6 +793,10 @@ SSL_OptionSet(PRFileDesc *fd, PRInt32 wh |
+ ss->opt.enableSignedCertTimestamps = on; |
+ break; |
+ case SSL_ENABLE_FALLBACK_SCSV: |
+ ss->opt.enableFallbackSCSV = on; |
@@ -184,27 +176,27 @@ |
default: |
PORT_SetError(SEC_ERROR_INVALID_ARGS); |
rv = SECFailure; |
-@@ -855,6 +860,7 @@ SSL_OptionGet(PRFileDesc *fd, PRInt32 wh |
+@@ -867,6 +872,7 @@ SSL_OptionGet(PRFileDesc *fd, PRInt32 wh |
case SSL_ENABLE_SIGNED_CERT_TIMESTAMPS: |
- on = ss->opt.enableSignedCertTimestamps; |
- break; |
+ on = ss->opt.enableSignedCertTimestamps; |
+ break; |
+ case SSL_ENABLE_FALLBACK_SCSV: on = ss->opt.enableFallbackSCSV; break; |
default: |
PORT_SetError(SEC_ERROR_INVALID_ARGS); |
-@@ -919,6 +925,9 @@ SSL_OptionGetDefault(PRInt32 which, PRBo |
+@@ -933,6 +939,9 @@ SSL_OptionGetDefault(PRInt32 which, PRBo |
case SSL_ENABLE_SIGNED_CERT_TIMESTAMPS: |
- on = ssl_defaults.enableSignedCertTimestamps; |
- break; |
+ on = ssl_defaults.enableSignedCertTimestamps; |
+ break; |
+ case SSL_ENABLE_FALLBACK_SCSV: |
-+ on = ssl_defaults.enableFallbackSCSV; |
-+ break; |
++ on = ssl_defaults.enableFallbackSCSV; |
++ break; |
default: |
PORT_SetError(SEC_ERROR_INVALID_ARGS); |
-@@ -1090,6 +1099,10 @@ SSL_OptionSetDefault(PRInt32 which, PRBo |
- ssl_defaults.enableSignedCertTimestamps = on; |
- break; |
+@@ -1112,6 +1121,10 @@ SSL_OptionSetDefault(PRInt32 which, PRBo |
+ ssl_defaults.enableSignedCertTimestamps = on; |
+ break; |
+ case SSL_ENABLE_FALLBACK_SCSV: |
+ ssl_defaults.enableFallbackSCSV = on; |