2011-02-23 James Robinson <jamesr@chromium.org>
authorjamesr@google.com <jamesr@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 23 Feb 2011 21:40:17 +0000 (21:40 +0000)
committerjamesr@google.com <jamesr@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 23 Feb 2011 21:40:17 +0000 (21:40 +0000)
        Unreviewed, rolling out r79428.
        http://trac.webkit.org/changeset/79428
        https://bugs.webkit.org/show_bug.cgi?id=54714

        Does not work in the Chromium sandbox

        * JavaScriptCore.exp:
2011-02-23  James Robinson  <jamesr@chromium.org>

        Unreviewed, rolling out r79428.
        http://trac.webkit.org/changeset/79428
        https://bugs.webkit.org/show_bug.cgi?id=54714

        Does not work in the Chromium sandbox

        * websockets/WebSocketHandshake.cpp:
        (WebCore::generateSecWebSocketKey):
        (WebCore::generateKey3):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@79483 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/JavaScriptCore.exp
Source/WebCore/ChangeLog
Source/WebCore/websockets/WebSocketHandshake.cpp

index 86960e6..2c27718 100644 (file)
@@ -1,3 +1,13 @@
+2011-02-23  James Robinson  <jamesr@chromium.org>
+
+        Unreviewed, rolling out r79428.
+        http://trac.webkit.org/changeset/79428
+        https://bugs.webkit.org/show_bug.cgi?id=54714
+
+        Does not work in the Chromium sandbox
+
+        * JavaScriptCore.exp:
+
 2011-02-23  Adam Roben  <aroben@apple.com>
 
         Fix an off-by-one error in JSC::appendSourceToError
index 04f00ec..73d119b 100644 (file)
@@ -432,7 +432,6 @@ __ZN3WTF23dayInMonthFromDayInYearEib
 __ZN3WTF23waitForThreadCompletionEjPPv
 __ZN3WTF27releaseFastMallocFreeMemoryEv
 __ZN3WTF28setMainThreadCallbacksPausedEb
-__ZN3WTF29cryptographicallyRandomNumberEv
 __ZN3WTF29cryptographicallyRandomValuesEPvm
 __ZN3WTF36lockAtomicallyInitializedStaticMutexEv
 __ZN3WTF37parseDateFromNullTerminatedCharactersEPKc
index ac0baeb..0827435 100644 (file)
@@ -1,3 +1,15 @@
+2011-02-23  James Robinson  <jamesr@chromium.org>
+
+        Unreviewed, rolling out r79428.
+        http://trac.webkit.org/changeset/79428
+        https://bugs.webkit.org/show_bug.cgi?id=54714
+
+        Does not work in the Chromium sandbox
+
+        * websockets/WebSocketHandshake.cpp:
+        (WebCore::generateSecWebSocketKey):
+        (WebCore::generateKey3):
+
 2011-02-23  David Hyatt  <hyatt@apple.com>
 
         Reviewed by Sam Weinig.
index e5264ca..6f366f7 100644 (file)
@@ -44,8 +44,8 @@
 #include "ScriptCallStack.h"
 #include "ScriptExecutionContext.h"
 #include "SecurityOrigin.h"
-#include <wtf/CryptographicallyRandomNumber.h>
 #include <wtf/MD5.h>
+#include <wtf/RandomNumber.h>
 #include <wtf/StdLibExtras.h>
 #include <wtf/StringExtras.h>
 #include <wtf/Vector.h>
@@ -92,39 +92,24 @@ static String trimConsoleMessage(const char* p, size_t len)
     return s;
 }
 
-static uint32_t randomNumberLessThan(uint32_t n)
-{
-    if (!n)
-        return 0;
-    if (n == std::numeric_limits<uint32_t>::max())
-        return cryptographicallyRandomNumber();
-    uint32_t max = std::numeric_limits<uint32_t>::max() - (std::numeric_limits<uint32_t>::max() % n);
-    ASSERT(!(max % n));
-    uint32_t v;
-    do {
-        v = cryptographicallyRandomNumber();
-    } while (v >= max);
-    return v % n;
-}
-
 static void generateSecWebSocketKey(uint32_t& number, String& key)
 {
-    uint32_t space = randomNumberLessThan(12) + 1;
+    uint32_t space = static_cast<uint32_t>(randomNumber() * 12) + 1;
     uint32_t max = 4294967295U / space;
-    number = randomNumberLessThan(max);
+    number = static_cast<uint32_t>(randomNumber() * max);
     uint32_t product = number * space;
 
     String s = String::number(product);
-    int n = randomNumberLessThan(12) + 1;
+    int n = static_cast<int>(randomNumber() * 12) + 1;
     DEFINE_STATIC_LOCAL(String, randomChars, (randomCharacterInSecWebSocketKey));
     for (int i = 0; i < n; i++) {
-        int pos = randomNumberLessThan(s.length() + 1);
-        int chpos = randomNumberLessThan(randomChars.length());
+        int pos = static_cast<int>(randomNumber() * (s.length() + 1));
+        int chpos = static_cast<int>(randomNumber() * randomChars.length());
         s.insert(randomChars.substring(chpos, 1), pos);
     }
     DEFINE_STATIC_LOCAL(String, spaceChar, (" "));
     for (uint32_t i = 0; i < space; i++) {
-        int pos = randomNumberLessThan(s.length() - 1) + 1;
+        int pos = static_cast<int>(randomNumber() * (s.length() - 1)) + 1;
         s.insert(spaceChar, pos);
     }
     ASSERT(s[0] != ' ');
@@ -134,7 +119,8 @@ static void generateSecWebSocketKey(uint32_t& number, String& key)
 
 static void generateKey3(unsigned char key3[8])
 {
-    cryptographicallyRandomValues(key3, 8);
+    for (int i = 0; i < 8; i++)
+        key3[i] = randomNumber() * 256;
 }
 
 static void setChallengeNumber(unsigned char* buf, uint32_t number)