Parcourir la source

sjcl.random.addEntropy():
Fixed bug: Now accepts Uint32Array for data

unknown il y a 14 ans
Parent
commit
0278f2f177
1 fichiers modifiés avec 14 ajouts et 5 suppressions
  1. 14 5
      core/random.js

+ 14 - 5
core/random.js

@@ -100,13 +100,22 @@ sjcl.random = {
       break;
       
     case "object":
-      if (Object.prototype.toString.call(data) !== "[object Array]") {
-        err = 1;
-      }
-      for (i=0; i<data.length && !err; i++) {
-        if (typeof(data[i]) != "number") {
+      var objName = Object.prototype.toString.call(data);
+      if (objName === "[object Uint32Array]") {
+        tmp = [];
+        for (i = 0; i < data.length; i++) {
+          tmp.push(data[i]);
+        }
+        data = tmp;
+      } else {
+        if (objName !== "[object Array]") {
           err = 1;
         }
+        for (i=0; i<data.length && !err; i++) {
+          if (typeof(data[i]) != "number") {
+            err = 1;
+          }
+        }
       }
       if (!err) {
         if (estimatedEntropy === undefined) {