mirror of
https://github.com/servo/servo.git
synced 2025-09-27 15:20:09 +01:00
The WebCryptoAPI spec requires that when we generate crypto keys by the generateKey method of SubtleCrypto interface we have to check whether the usages is empty. If the usages is empty, throw a SyntaxError. FYI, Step 9 of https://w3c.github.io/webcrypto/#SubtleCrypto-method-generateKey We have not yet implemented this logic, and this patch implements it. Testing: Pass WPT tests that were expected to fail. --------- Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
24 lines
826 B
Text
24 lines
826 B
Text
/* 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/#cryptokey-interface
|
|
|
|
enum KeyType { "public", "private", "secret" };
|
|
|
|
enum KeyUsage { "encrypt", "decrypt", "sign", "verify", "deriveKey", "deriveBits", "wrapKey", "unwrapKey" };
|
|
|
|
[SecureContext, Exposed=(Window,Worker), /*Serializable,*/ Pref="dom_crypto_subtle_enabled"]
|
|
interface CryptoKey {
|
|
readonly attribute KeyType type;
|
|
readonly attribute boolean extractable;
|
|
readonly attribute object algorithm;
|
|
readonly attribute object usages;
|
|
};
|
|
|
|
// https://w3c.github.io/webcrypto/#dfn-CryptoKeyPair
|
|
|
|
dictionary CryptoKeyPair {
|
|
CryptoKey publicKey;
|
|
CryptoKey privateKey;
|
|
};
|