summaryrefslogtreecommitdiff
path: root/cli/rt/11_crypto.js
blob: 32b026a7849107012f245171acb31b8ad7721df4 (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 core = window.Deno.core;
  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,
    );
    core.jsonOpSync("op_get_random_values", {}, ui8);
    return typedArray;
  }

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