Web Cryptography API
Supported Cryptography Algorithms
Web Cryptography API Interface
enum KeyFormat { "raw", "spki", "pkcs8", "jwk" };
[Exposed=(Window,Worker)]
interface SubtleCrypto {
Promise encrypt(AlgorithmIdentifier algorithm, CryptoKey key, BufferSource data);
Promise decrypt(AlgorithmIdentifier algorithm, CryptoKey key, BufferSource data);
Promise sign(AlgorithmIdentifier algorithm, CryptoKey key, BufferSource data);
Promise verify(AlgorithmIdentifier algorithm, CryptoKey key, BufferSource signature, BufferSource data);
Promise digest(AlgorithmIdentifier algorithm, BufferSource data);
Promise generateKey(AlgorithmIdentifier algorithm, boolean extractable, sequence keyUsages );
Promise deriveKey(AlgorithmIdentifier algorithm, CryptoKey baseKey, AlgorithmIdentifier derivedKeyType,
boolean extractable, sequence keyUsages );
Promise deriveBits(AlgorithmIdentifier algorithm, CryptoKey baseKey, unsigned long length);
Promise importKey(KeyFormat format, (BufferSource or JsonWebKey) keyData, AlgorithmIdentifier algorithm,
boolean extractable, sequence keyUsages );
Promise exportKey(KeyFormat format, CryptoKey key);
Promise wrapKey(KeyFormat format, CryptoKey key, CryptoKey wrappingKey, AlgorithmIdentifier wrapAlgorithm);
Promise unwrapKey(KeyFormat format, BufferSource wrappedKey, CryptoKey unwrappingKey,
AlgorithmIdentifier unwrapAlgorithm, AlgorithmIdentifier unwrappedKeyAlgorithm,
boolean extractable, sequence keyUsages );
};