summaryrefslogtreecommitdiffstats
path: root/net/third_party/nss
diff options
context:
space:
mode:
authoragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-27 21:14:59 +0000
committeragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-27 21:14:59 +0000
commitad31ae07a1f51fa382fa214de28ca4f371ceaee2 (patch)
tree7c33d7bdf89b6f9cc38aef296c5fb441e9947e0a /net/third_party/nss
parentcf7d03ddffba3982b2e724291650a48912a3532e (diff)
downloadchromium_src-ad31ae07a1f51fa382fa214de28ca4f371ceaee2.zip
chromium_src-ad31ae07a1f51fa382fa214de28ca4f371ceaee2.tar.gz
chromium_src-ad31ae07a1f51fa382fa214de28ca4f371ceaee2.tar.bz2
Revert "net: Precede each CBC encrypted application data record with an empty one."
This reverts commit 71c84a00ba9eb06356176514c392043b585bf2d8. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90643 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/third_party/nss')
-rw-r--r--net/third_party/nss/README.chromium5
-rwxr-xr-xnet/third_party/nss/patches/applypatches.sh2
-rw-r--r--net/third_party/nss/patches/cbcrandomiv.patch73
-rw-r--r--net/third_party/nss/ssl/ssl3con.c28
4 files changed, 2 insertions, 106 deletions
diff --git a/net/third_party/nss/README.chromium b/net/third_party/nss/README.chromium
index f0c757c..09da4d9 100644
--- a/net/third_party/nss/README.chromium
+++ b/net/third_party/nss/README.chromium
@@ -47,11 +47,6 @@ Patches:
patches/cachedinfo.patch
https://bugzilla.mozilla.org/show_bug.cgi?id=665739
- * Precede each set of CBC encrypted application data records, resulting from
- a single call to ssl3_SendApplicationData, with an empty application data
- record in order to randomize the IV in a backwards compatible manner.
- patches/cbcrandomiv.patch
-
Apply the patches to NSS by running the patches/applypatches.sh script. Read
the comments at the top of patches/applypatches.sh for instructions.
diff --git a/net/third_party/nss/patches/applypatches.sh b/net/third_party/nss/patches/applypatches.sh
index b58fe5e..c6609ca 100755
--- a/net/third_party/nss/patches/applypatches.sh
+++ b/net/third_party/nss/patches/applypatches.sh
@@ -20,5 +20,3 @@ patch -p6 < $patches_dir/ocspstapling.patch
patch -p6 < $patches_dir/clientauth.patch
patch -p6 < $patches_dir/cachedinfo.patch
-
-patch -p6 < $patches_dir/cbcrandomiv.patch
diff --git a/net/third_party/nss/patches/cbcrandomiv.patch b/net/third_party/nss/patches/cbcrandomiv.patch
deleted file mode 100644
index 9f1b57a..0000000
--- a/net/third_party/nss/patches/cbcrandomiv.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-commit 36840201a321147d9c33a944784ff56980aae5d8
-Author: Adam Langley <agl@chromium.org>
-Date: Wed Jun 22 13:36:50 2011 -0400
-
- cbcrandomiv.patch
-
-diff --git a/mozilla/security/nss/lib/ssl/ssl3con.c b/mozilla/security/nss/lib/ssl/ssl3con.c
-index 2cc1e05..eb7d63e 100644
---- a/mozilla/security/nss/lib/ssl/ssl3con.c
-+++ b/mozilla/security/nss/lib/ssl/ssl3con.c
-@@ -2229,7 +2229,7 @@ ssl3_SendRecord( sslSocket * ss,
- return SECFailure;
- }
-
-- while (nIn > 0) {
-+ do {
- PRUint32 contentLen = PR_MIN(nIn, MAX_FRAGMENT_LENGTH);
-
- if (wrBuf->space < contentLen + SSL3_BUFFER_FUDGE) {
-@@ -2306,7 +2306,7 @@ ssl3_SendRecord( sslSocket * ss,
- }
- }
- totalSent += contentLen;
-- }
-+ } while (nIn > 0);
- return totalSent;
- }
-
-@@ -2321,6 +2321,7 @@ ssl3_SendApplicationData(sslSocket *ss, const unsigned char *in,
- {
- PRInt32 totalSent = 0;
- PRInt32 discarded = 0;
-+ PRBool isBlockCipher;
-
- PORT_Assert( ss->opt.noLocks || ssl_HaveXmitBufLock(ss) );
- if (len < 0 || !in) {
-@@ -2345,6 +2346,28 @@ ssl3_SendApplicationData(sslSocket *ss, const unsigned char *in,
- len--;
- discarded = 1;
- }
-+
-+ ssl_GetSpecReadLock(ss);
-+ isBlockCipher = ss->ssl3.cwSpec->cipher_def->type == type_block;
-+ ssl_ReleaseSpecReadLock(ss);
-+
-+ if (isBlockCipher && len > 0) {
-+ // We assume that block ciphers are used in CBC mode and prepend an
-+ // empty record. This effectively randomizes the IV in a backwards
-+ // compatible way.
-+ PRInt32 sent = ssl3_SendRecord(ss, content_application_data,
-+ in, 0 /* no payload */, flags);
-+ if (sent < 0) {
-+ return SECFailure; /* error code set by ssl3_SendRecord */
-+ }
-+ if (ss->pendingBuf.len) {
-+ /* must be a non-blocking socket */
-+ PORT_Assert(!ssl_SocketIsBlocking(ss));
-+ PORT_Assert(ss->lastWriteBlocked);
-+ return SECFailure;
-+ }
-+ }
-+
- while (len > totalSent) {
- PRInt32 sent, toSend;
-
-@@ -2377,6 +2400,7 @@ ssl3_SendApplicationData(sslSocket *ss, const unsigned char *in,
- break;
- }
- }
-+
- if (ss->pendingBuf.len) {
- /* Must be non-blocking. */
- PORT_Assert(!ssl_SocketIsBlocking(ss));
diff --git a/net/third_party/nss/ssl/ssl3con.c b/net/third_party/nss/ssl/ssl3con.c
index eb7d63e..2cc1e05 100644
--- a/net/third_party/nss/ssl/ssl3con.c
+++ b/net/third_party/nss/ssl/ssl3con.c
@@ -2229,7 +2229,7 @@ ssl3_SendRecord( sslSocket * ss,
return SECFailure;
}
- do {
+ while (nIn > 0) {
PRUint32 contentLen = PR_MIN(nIn, MAX_FRAGMENT_LENGTH);
if (wrBuf->space < contentLen + SSL3_BUFFER_FUDGE) {
@@ -2306,7 +2306,7 @@ ssl3_SendRecord( sslSocket * ss,
}
}
totalSent += contentLen;
- } while (nIn > 0);
+ }
return totalSent;
}
@@ -2321,7 +2321,6 @@ ssl3_SendApplicationData(sslSocket *ss, const unsigned char *in,
{
PRInt32 totalSent = 0;
PRInt32 discarded = 0;
- PRBool isBlockCipher;
PORT_Assert( ss->opt.noLocks || ssl_HaveXmitBufLock(ss) );
if (len < 0 || !in) {
@@ -2346,28 +2345,6 @@ ssl3_SendApplicationData(sslSocket *ss, const unsigned char *in,
len--;
discarded = 1;
}
-
- ssl_GetSpecReadLock(ss);
- isBlockCipher = ss->ssl3.cwSpec->cipher_def->type == type_block;
- ssl_ReleaseSpecReadLock(ss);
-
- if (isBlockCipher && len > 0) {
- // We assume that block ciphers are used in CBC mode and prepend an
- // empty record. This effectively randomizes the IV in a backwards
- // compatible way.
- PRInt32 sent = ssl3_SendRecord(ss, content_application_data,
- in, 0 /* no payload */, flags);
- if (sent < 0) {
- return SECFailure; /* error code set by ssl3_SendRecord */
- }
- if (ss->pendingBuf.len) {
- /* must be a non-blocking socket */
- PORT_Assert(!ssl_SocketIsBlocking(ss));
- PORT_Assert(ss->lastWriteBlocked);
- return SECFailure;
- }
- }
-
while (len > totalSent) {
PRInt32 sent, toSend;
@@ -2400,7 +2377,6 @@ ssl3_SendApplicationData(sslSocket *ss, const unsigned char *in,
break;
}
}
-
if (ss->pendingBuf.len) {
/* Must be non-blocking. */
PORT_Assert(!ssl_SocketIsBlocking(ss));