Files
palemoon27/dom/webidl/SubtleCrypto.webidl
roytam1 76c2cfb906 import changes from `dev' branch of rmottola/Arctic-Fox:
- Bug 1232902. Update ANGLE to chromium/2592 (89d3d3cfad)
- Bug 1251375. Update to ANGLE/2653 (98691dfd84)
- bits of Bug 1225280. Update ANGLE to chromium/2572. (b5eeadcb4e)
- Bug 1251375 - Cross compilation fixup. r=upstream (737d8f8554)
- rename back (e1ef46b16a)
- Bug 1261129: Make VP9 sample data const. r=kentuckyfriedtakahe (811eead31b)
- Bug 1263839 - WebM is now actually a VP9 sample; r=me (c6568d6d98)
- Bug 1263839: P2. Force re-run of VP9 benchmark based on a version check. r=kentuckyfriedtakahe (358409a235)
- Bug 1235503 - Fix -Wunreachable-code warnings in dom/media/. r=jya (dc6bebb141)
- Bug 1251184: [quicktime] P1. Report video/quicktime mimetype when sniffing. r=cpearce (056dda066a)
- Bug 1251184: [quicktime] P2. Use external plugin if available over native playback. r=cpearce (6f34c09ab6)
- Bug 1255050 - [1.1] Restrict media plugin decoder usage to Android ICS. r=snorp (ae801e040c)
- Bug 1229657: [MSE] Returns NotSupportedError if mimetype is invalid or not supported. r=gerald (a81df7babf)
- change errors returns (18b81f684e)
- rearrange to match gecko code (333c4c5f3a)
- Bug 1239607 - Let platform layer decide which codec to support and how to configure it. r=sotaro (63812a44d1)
- Bug 1248507 - p1. Pass DecoderDoctorDiagnostics to PDMs&more - r=jya (4175551833)
- Bug 1248507 - p2. DecoderDoctorDiagnostics boilerplate - r=jya (cb25b71956)
- Bug 1208371 - Forward declare DOMMediaStream in HTMLMediaElement.h. r=jesup (896080a020)
- Bug 1248507 - p3. Use DecoderDoctorDiagnostics - r=jya,bz (181966589e)
- Bug 1248507 - p4. DecoderDoctor base console message - r=bz (c5704ad2fe)
- Bug 1055776 - Move namespaceURI, prefix, localName from Node to Element; r=bz (ba7a18385d)
- Bug 842818 - Expose WebCrypto API to workers r=baku (966e5f3e75)
- Bug 1227790 - Update MediaKeyStatuses to include "released", "output-restricted" and "status-pending". r=bz (d9e7ddb298)
- Bug 1256046 - Hide MozPowerManager from the Web; r=khuey,bzbarsky (ec1da24251)
- Bug 1259581: Remove MOZ_MEDIA_NAVIGATOR. r=jesup (023a114462)
- Bug 1254956 - Implement Node.rootNode. r=Ms2ger,smaug (0133a41059)
- Bug 1264409 - Make last transaction ID available via nsIDOMWindowUtils, and pass transaction ID through MozAfterPaint. r=mattwoodrow,mrbkap (51184de1af)
2024-05-16 23:59:56 +08:00

233 lines
6.1 KiB
Plaintext

/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/.
*
* The origin of this IDL file is
* http://www.w3.org/TR/WebCryptoAPI/
*/
typedef DOMString KeyType;
typedef DOMString KeyUsage;
typedef DOMString NamedCurve;
typedef Uint8Array BigInteger;
/***** Algorithm dictionaries *****/
dictionary Algorithm {
required DOMString name;
};
dictionary AesCbcParams : Algorithm {
required BufferSource iv;
};
dictionary AesCtrParams : Algorithm {
required BufferSource counter;
[EnforceRange] required octet length;
};
dictionary AesGcmParams : Algorithm {
required BufferSource iv;
BufferSource additionalData;
[EnforceRange] octet tagLength;
};
dictionary HmacImportParams : Algorithm {
required AlgorithmIdentifier hash;
};
dictionary Pbkdf2Params : Algorithm {
required BufferSource salt;
[EnforceRange] required unsigned long iterations;
required AlgorithmIdentifier hash;
};
dictionary RsaHashedImportParams {
required AlgorithmIdentifier hash;
};
dictionary AesKeyGenParams : Algorithm {
[EnforceRange] required unsigned short length;
};
dictionary HmacKeyGenParams : Algorithm {
required AlgorithmIdentifier hash;
[EnforceRange] unsigned long length;
};
dictionary RsaHashedKeyGenParams : Algorithm {
[EnforceRange] required unsigned long modulusLength;
required BigInteger publicExponent;
required AlgorithmIdentifier hash;
};
dictionary RsaOaepParams : Algorithm {
BufferSource label;
};
dictionary RsaPssParams : Algorithm {
[EnforceRange] required unsigned long saltLength;
};
dictionary DhKeyGenParams : Algorithm {
required BigInteger prime;
required BigInteger generator;
};
dictionary EcKeyGenParams : Algorithm {
required NamedCurve namedCurve;
};
dictionary AesDerivedKeyParams : Algorithm {
[EnforceRange] required unsigned long length;
};
dictionary HmacDerivedKeyParams : HmacImportParams {
[EnforceRange] unsigned long length;
};
dictionary EcdhKeyDeriveParams : Algorithm {
required CryptoKey public;
};
dictionary DhKeyDeriveParams : Algorithm {
required CryptoKey public;
};
dictionary DhImportKeyParams : Algorithm {
required BigInteger prime;
required BigInteger generator;
};
dictionary EcdsaParams : Algorithm {
required AlgorithmIdentifier hash;
};
dictionary EcKeyImportParams : Algorithm {
NamedCurve namedCurve;
};
dictionary HkdfParams : Algorithm {
required AlgorithmIdentifier hash;
required BufferSource salt;
required BufferSource info;
};
/***** JWK *****/
dictionary RsaOtherPrimesInfo {
// The following fields are defined in Section 6.3.2.7 of JSON Web Algorithms
required DOMString r;
required DOMString d;
required DOMString t;
};
dictionary JsonWebKey {
// The following fields are defined in Section 3.1 of JSON Web Key
required DOMString kty;
DOMString use;
sequence<DOMString> key_ops;
DOMString alg;
// The following fields are defined in JSON Web Key Parameters Registration
boolean ext;
// The following fields are defined in Section 6 of JSON Web Algorithms
DOMString crv;
DOMString x;
DOMString y;
DOMString d;
DOMString n;
DOMString e;
DOMString p;
DOMString q;
DOMString dp;
DOMString dq;
DOMString qi;
sequence<RsaOtherPrimesInfo> oth;
DOMString k;
};
/***** The Main API *****/
interface CryptoKey {
readonly attribute KeyType type;
readonly attribute boolean extractable;
[Cached, Constant, Throws] readonly attribute object algorithm;
[Cached, Constant, Frozen] readonly attribute sequence<KeyUsage> usages;
};
dictionary CryptoKeyPair {
required CryptoKey publicKey;
required CryptoKey privateKey;
};
typedef DOMString KeyFormat;
typedef (object or DOMString) AlgorithmIdentifier;
[Exposed=(Window,Worker)]
interface SubtleCrypto {
[Throws]
Promise<any> encrypt(AlgorithmIdentifier algorithm,
CryptoKey key,
BufferSource data);
[Throws]
Promise<any> decrypt(AlgorithmIdentifier algorithm,
CryptoKey key,
BufferSource data);
[Throws]
Promise<any> sign(AlgorithmIdentifier algorithm,
CryptoKey key,
BufferSource data);
[Throws]
Promise<any> verify(AlgorithmIdentifier algorithm,
CryptoKey key,
BufferSource signature,
BufferSource data);
[Throws]
Promise<any> digest(AlgorithmIdentifier algorithm,
BufferSource data);
[Throws]
Promise<any> generateKey(AlgorithmIdentifier algorithm,
boolean extractable,
sequence<KeyUsage> keyUsages );
[Throws]
Promise<any> deriveKey(AlgorithmIdentifier algorithm,
CryptoKey baseKey,
AlgorithmIdentifier derivedKeyType,
boolean extractable,
sequence<KeyUsage> keyUsages );
[Throws]
Promise<any> deriveBits(AlgorithmIdentifier algorithm,
CryptoKey baseKey,
unsigned long length);
[Throws]
Promise<any> importKey(KeyFormat format,
object keyData,
AlgorithmIdentifier algorithm,
boolean extractable,
sequence<KeyUsage> keyUsages );
[Throws]
Promise<any> exportKey(KeyFormat format, CryptoKey key);
[Throws]
Promise<any> wrapKey(KeyFormat format,
CryptoKey key,
CryptoKey wrappingKey,
AlgorithmIdentifier wrapAlgorithm);
[Throws]
Promise<any> unwrapKey(KeyFormat format,
BufferSource wrappedKey,
CryptoKey unwrappingKey,
AlgorithmIdentifier unwrapAlgorithm,
AlgorithmIdentifier unwrappedKeyAlgorithm,
boolean extractable,
sequence<KeyUsage> keyUsages );
};