blob: 3294ea879df4d53fb6f13921651c58432e98fd18 [file] [log] [blame]
// Copyright 2020 The Cobalt Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// https://www.w3.org/TR/WebCryptoAPI/#subtlecrypto-interface
[
Constructor,
ConstructorCallWith=EnvironmentSettings,
Exposed=(Window)
] interface SubtleCrypto {
Promise<any> encrypt((AesCtrParams or Algorithm) algorithm, CryptoKey key, BufferSource data);
Promise<any> decrypt((AesCtrParams or Algorithm) algorithm, CryptoKey key, BufferSource data);
Promise<any> sign(AlgorithmIdentifier algorithm, CryptoKey key, BufferSource data);
Promise<boolean> verify(AlgorithmIdentifier algorithm, CryptoKey key,
BufferSource signature, BufferSource data);
Promise<any> digest(AlgorithmIdentifier algorithm, BufferSource data);
Promise<any> generateKey(AlgorithmIdentifier algorithm, boolean extractable,
sequence<KeyUsage> keyUsages);
Promise<any> deriveKey(AlgorithmIdentifier algorithm, CryptoKey baseKey,
AlgorithmIdentifier derivedKeyType, boolean extractable, sequence<KeyUsage> keyUsages);
Promise<ArrayBuffer> deriveBits(AlgorithmIdentifier algorithm, CryptoKey baseKey,
unsigned long length);
Promise<CryptoKey> importKey(KeyFormat format, BufferSource keyData,
(ImportKeyAlgorithmParams or DOMString) algorithm, boolean extractable,
sequence<KeyUsage> keyUsages);
Promise<any> exportKey(KeyFormat format, CryptoKey key);
Promise<any> wrapKey(KeyFormat format, CryptoKey key, CryptoKey wrappingKey,
AlgorithmIdentifier wrapAlgorithm);
Promise<CryptoKey> unwrapKey(KeyFormat format, BufferSource wrappedKey, CryptoKey unwrappingKey,
AlgorithmIdentifier unwrapAlgorithm, AlgorithmIdentifier unwrappedKeyAlgorithm,
boolean extractable, sequence<KeyUsage> keyUsages);
};