mirror of
https://github.com/servo/servo.git
synced 2025-08-11 08:25:32 +01:00
script: Move code generation and webidl files to new script_bindings crate. (#35157)
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
This commit is contained in:
parent
a88b59534f
commit
af8d7c2de7
469 changed files with 187 additions and 137 deletions
166
components/script_bindings/webidls/SubtleCrypto.webidl
Normal file
166
components/script_bindings/webidls/SubtleCrypto.webidl
Normal file
|
@ -0,0 +1,166 @@
|
|||
/* 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 https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://w3c.github.io/webcrypto/#subtlecrypto-interface
|
||||
|
||||
typedef (object or DOMString) AlgorithmIdentifier;
|
||||
|
||||
typedef AlgorithmIdentifier HashAlgorithmIdentifier;
|
||||
|
||||
dictionary Algorithm {
|
||||
required DOMString name;
|
||||
};
|
||||
|
||||
dictionary KeyAlgorithm {
|
||||
required DOMString name;
|
||||
};
|
||||
|
||||
enum KeyFormat { "raw", "spki", "pkcs8", "jwk" };
|
||||
|
||||
[SecureContext,Exposed=(Window,Worker),Pref="dom_crypto_subtle_enabled"]
|
||||
interface SubtleCrypto {
|
||||
Promise<any> encrypt(AlgorithmIdentifier algorithm,
|
||||
CryptoKey key,
|
||||
BufferSource data);
|
||||
Promise<any> decrypt(AlgorithmIdentifier algorithm,
|
||||
CryptoKey key,
|
||||
BufferSource data);
|
||||
Promise<any> sign(AlgorithmIdentifier algorithm,
|
||||
CryptoKey key,
|
||||
BufferSource data);
|
||||
Promise<any> 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,
|
||||
optional unsigned long? length = null);
|
||||
|
||||
Promise<CryptoKey> importKey(KeyFormat format,
|
||||
(BufferSource or JsonWebKey) keyData,
|
||||
AlgorithmIdentifier 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 );
|
||||
};
|
||||
|
||||
// AES shared
|
||||
dictionary AesKeyAlgorithm : KeyAlgorithm {
|
||||
required unsigned short length;
|
||||
};
|
||||
|
||||
dictionary AesKeyGenParams : Algorithm {
|
||||
required [EnforceRange] unsigned short length;
|
||||
};
|
||||
|
||||
dictionary AesDerivedKeyParams : Algorithm {
|
||||
required [EnforceRange] unsigned short length;
|
||||
};
|
||||
|
||||
// AES_CBC
|
||||
dictionary AesCbcParams : Algorithm {
|
||||
required BufferSource iv;
|
||||
};
|
||||
|
||||
// AES_CTR
|
||||
dictionary AesCtrParams : Algorithm {
|
||||
required BufferSource counter;
|
||||
required [EnforceRange] octet length;
|
||||
};
|
||||
|
||||
// https://w3c.github.io/webcrypto/#aes-gcm-params
|
||||
dictionary AesGcmParams : Algorithm {
|
||||
required BufferSource iv;
|
||||
BufferSource additionalData;
|
||||
[EnforceRange] octet tagLength;
|
||||
};
|
||||
|
||||
// https://w3c.github.io/webcrypto/#dfn-HmacImportParams
|
||||
dictionary HmacImportParams : Algorithm {
|
||||
required HashAlgorithmIdentifier hash;
|
||||
[EnforceRange] unsigned long length;
|
||||
};
|
||||
|
||||
// https://w3c.github.io/webcrypto/#dfn-HmacKeyAlgorithm
|
||||
dictionary HmacKeyAlgorithm : KeyAlgorithm {
|
||||
required KeyAlgorithm hash;
|
||||
required unsigned long length;
|
||||
};
|
||||
|
||||
// https://w3c.github.io/webcrypto/#dfn-HmacKeyGenParams
|
||||
dictionary HmacKeyGenParams : Algorithm {
|
||||
required HashAlgorithmIdentifier hash;
|
||||
[EnforceRange] unsigned long length;
|
||||
};
|
||||
|
||||
// https://w3c.github.io/webcrypto/#hkdf-params
|
||||
dictionary HkdfParams : Algorithm {
|
||||
required HashAlgorithmIdentifier hash;
|
||||
required BufferSource salt;
|
||||
required BufferSource info;
|
||||
};
|
||||
|
||||
// https://w3c.github.io/webcrypto/#pbkdf2-params
|
||||
dictionary Pbkdf2Params : Algorithm {
|
||||
required BufferSource salt;
|
||||
required [EnforceRange] unsigned long iterations;
|
||||
required HashAlgorithmIdentifier hash;
|
||||
};
|
||||
|
||||
// JWK
|
||||
dictionary RsaOtherPrimesInfo {
|
||||
// The following fields are defined in Section 6.3.2.7 of JSON Web Algorithms
|
||||
DOMString r;
|
||||
DOMString d;
|
||||
DOMString t;
|
||||
};
|
||||
|
||||
dictionary JsonWebKey {
|
||||
// The following fields are defined in Section 3.1 of JSON Web Key
|
||||
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;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue