Description

This test verifies that the implementations of the WebCrypto API match with its WebIDL definition.


FAIL Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined assert_true: Original interface mixin should be defined expected true got false
PASS Crypto interface: existence and properties of interface object 
PASS Crypto interface object length 
PASS Crypto interface object name 
PASS Crypto interface: existence and properties of interface prototype object 
PASS Crypto interface: existence and properties of interface prototype object's "constructor" property 
PASS Crypto interface: existence and properties of interface prototype object's @@unscopables property 
PASS Crypto interface: attribute subtle 
PASS Crypto interface: operation getRandomValues(ArrayBufferView) 
PASS Crypto must be primary interface of crypto 
PASS Stringification of crypto 
PASS Crypto interface: crypto must inherit property "subtle" with the proper type 
PASS Crypto interface: crypto must inherit property "getRandomValues(ArrayBufferView)" with the proper type 
PASS Crypto interface: calling getRandomValues(ArrayBufferView) on crypto with too few arguments must throw TypeError 
PASS CryptoKey interface: existence and properties of interface object 
PASS CryptoKey interface object length 
PASS CryptoKey interface object name 
PASS CryptoKey interface: existence and properties of interface prototype object 
PASS CryptoKey interface: existence and properties of interface prototype object's "constructor" property 
PASS CryptoKey interface: existence and properties of interface prototype object's @@unscopables property 
PASS CryptoKey interface: attribute type 
PASS CryptoKey interface: attribute extractable 
PASS CryptoKey interface: attribute algorithm 
PASS CryptoKey interface: attribute usages 
PASS SubtleCrypto interface: existence and properties of interface object 
PASS SubtleCrypto interface object length 
PASS SubtleCrypto interface object name 
PASS SubtleCrypto interface: existence and properties of interface prototype object 
PASS SubtleCrypto interface: existence and properties of interface prototype object's "constructor" property 
PASS SubtleCrypto interface: existence and properties of interface prototype object's @@unscopables property 
PASS SubtleCrypto interface: operation encrypt(AlgorithmIdentifier, CryptoKey, BufferSource) 
PASS SubtleCrypto interface: operation decrypt(AlgorithmIdentifier, CryptoKey, BufferSource) 
PASS SubtleCrypto interface: operation sign(AlgorithmIdentifier, CryptoKey, BufferSource) 
PASS SubtleCrypto interface: operation verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource) 
PASS SubtleCrypto interface: operation digest(AlgorithmIdentifier, BufferSource) 
PASS SubtleCrypto interface: operation generateKey(AlgorithmIdentifier, boolean, [object Object]) 
PASS SubtleCrypto interface: operation deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object]) 
PASS SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long) 
PASS SubtleCrypto interface: operation importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object]) 
PASS SubtleCrypto interface: operation exportKey(KeyFormat, CryptoKey) 
PASS SubtleCrypto interface: operation wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier) 
PASS SubtleCrypto interface: operation unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object]) 
PASS SubtleCrypto must be primary interface of crypto.subtle 
PASS Stringification of crypto.subtle 
PASS SubtleCrypto interface: crypto.subtle must inherit property "encrypt(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type 
PASS SubtleCrypto interface: calling encrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on crypto.subtle with too few arguments must throw TypeError 
PASS SubtleCrypto interface: crypto.subtle must inherit property "decrypt(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type 
PASS SubtleCrypto interface: calling decrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on crypto.subtle with too few arguments must throw TypeError 
PASS SubtleCrypto interface: crypto.subtle must inherit property "sign(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type 
PASS SubtleCrypto interface: calling sign(AlgorithmIdentifier, CryptoKey, BufferSource) on crypto.subtle with too few arguments must throw TypeError 
PASS SubtleCrypto interface: crypto.subtle must inherit property "verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource)" with the proper type 
PASS SubtleCrypto interface: calling verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource) on crypto.subtle with too few arguments must throw TypeError 
PASS SubtleCrypto interface: crypto.subtle must inherit property "digest(AlgorithmIdentifier, BufferSource)" with the proper type 
PASS SubtleCrypto interface: calling digest(AlgorithmIdentifier, BufferSource) on crypto.subtle with too few arguments must throw TypeError 
PASS SubtleCrypto interface: crypto.subtle must inherit property "generateKey(AlgorithmIdentifier, boolean, [object Object])" with the proper type 
PASS SubtleCrypto interface: calling generateKey(AlgorithmIdentifier, boolean, [object Object]) on crypto.subtle with too few arguments must throw TypeError 
PASS SubtleCrypto interface: crypto.subtle must inherit property "deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object])" with the proper type 
PASS SubtleCrypto interface: calling deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object]) on crypto.subtle with too few arguments must throw TypeError 
PASS SubtleCrypto interface: crypto.subtle must inherit property "deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long)" with the proper type 
PASS SubtleCrypto interface: calling deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long) on crypto.subtle with too few arguments must throw TypeError 
PASS SubtleCrypto interface: crypto.subtle must inherit property "importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object])" with the proper type 
PASS SubtleCrypto interface: calling importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object]) on crypto.subtle with too few arguments must throw TypeError 
PASS SubtleCrypto interface: crypto.subtle must inherit property "exportKey(KeyFormat, CryptoKey)" with the proper type 
PASS SubtleCrypto interface: calling exportKey(KeyFormat, CryptoKey) on crypto.subtle with too few arguments must throw TypeError 
PASS SubtleCrypto interface: crypto.subtle must inherit property "wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier)" with the proper type 
PASS SubtleCrypto interface: calling wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier) on crypto.subtle with too few arguments must throw TypeError 
PASS SubtleCrypto interface: crypto.subtle must inherit property "unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object])" with the proper type 
PASS SubtleCrypto interface: calling unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object]) on crypto.subtle with too few arguments must throw TypeError 

