tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

file.js (1191B)


      1 /**
      2 * Any copyright is dedicated to the Public Domain.
      3 * http://creativecommons.org/publicdomain/zero/1.0/
      4 */
      5 
      6 function getBuffer(size) {
      7  let buffer = new ArrayBuffer(size);
      8  is(buffer.byteLength, size, "Correct byte length");
      9  return buffer;
     10 }
     11 
     12 // May be called for any size, but you should call getBuffer() if you know
     13 // that size is big and that randomness is not necessary because it is
     14 // noticeably faster.
     15 function getRandomBuffer(size) {
     16  let buffer = getBuffer(size);
     17  let view = new Uint8Array(buffer);
     18  for (let i = 0; i < size; i++) {
     19    view[i] = parseInt(Math.random() * 255);
     20  }
     21  return buffer;
     22 }
     23 
     24 function compareBuffers(buffer1, buffer2) {
     25  if (buffer1.byteLength != buffer2.byteLength) {
     26    return false;
     27  }
     28 
     29  let view1 = buffer1 instanceof Uint8Array ? buffer1 : new Uint8Array(buffer1);
     30  let view2 = buffer2 instanceof Uint8Array ? buffer2 : new Uint8Array(buffer2);
     31  for (let i = 0; i < buffer1.byteLength; i++) {
     32    if (view1[i] != view2[i]) {
     33      return false;
     34    }
     35  }
     36  return true;
     37 }
     38 
     39 function getBlob(type, object) {
     40  return new Blob([object], { type });
     41 }
     42 
     43 function getNullBlob(size) {
     44  return getBlob("binary/null", getBuffer(size));
     45 }