summaryrefslogtreecommitdiff
path: root/cli/rt/11_crypto.js
blob: ab4a4920095aaeb86c3fade4cc87563cdd7c4bb1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.

((window) => {
  const { sendSync } = window.__bootstrap.dispatchJson;
  const { assert } = window.__bootstrap.util;

  function getRandomValues(typedArray) {
    assert(typedArray !== null, "Input must not be null");
    assert(typedArray.length <= 65536, "Input must not be longer than 65536");
    const ui8 = new Uint8Array(
      typedArray.buffer,
      typedArray.byteOffset,
      typedArray.byteLength,
    );
    sendSync("op_get_random_values", {}, ui8);
    return typedArray;
  }

  window.__bootstrap.crypto = {
    getRandomValues,
  };
})(this);