Crypto
From WHATWG Wiki
The specification for the window.crypto API can now be found at the W3C.
Contents |
Overview
This document describes a proposal for the window.crypto API.
Definitions
Cryptographically Random Values
A cryptographically random value is a value generated from a cryptographically strong pseudo-random number generator seeded with truly random values. In practice, implementations should generate cryptographically random values using well-established cryptographic pseudo-random number generators, such as RC4, seeded with high-quality entropy, such as from an operating-system entropy source (e.g., /dev/urandom). This document provides no lower-bound on the information theoretic entropy present in cryptographically random values, but implementations should make a best effort to provide as much entropy as practicable.
Interface Crypto
interface Crypto {
ArrayBufferView getRandomValues(in ArrayBufferView array);
};
partial interface Window {
readonly attribute Crypto crypto;
};
The getRandomValues(array) must run the following steps:
- array is an ArrayBufferView. If array is not of an integer type (i.e., Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, or Uint32Array), throw a TypeMismatchError and abort these steps.
- If array's length is greater than 65536, throw a QuotaExceededError and abort these steps.
- Overwrite all elements of array with cryptographically random values of the appropriate type.
- Return array.