Description

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


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 Unscopable handled correctly for subtle property on Crypto 
PASS Crypto interface: operation getRandomValues(ArrayBufferView) 
PASS Unscopable handled correctly for getRandomValues(ArrayBufferView) on Crypto 
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 Unscopable handled correctly for type property on CryptoKey 
PASS CryptoKey interface: attribute extractable 
PASS Unscopable handled correctly for extractable property on CryptoKey 
PASS CryptoKey interface: attribute algorithm 
PASS Unscopable handled correctly for algorithm property on CryptoKey 
PASS CryptoKey interface: attribute usages 
PASS Unscopable handled correctly for usages property on CryptoKey 
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 Unscopable handled correctly for encrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on SubtleCrypto 
PASS SubtleCrypto interface: operation decrypt(AlgorithmIdentifier, CryptoKey, BufferSource) 
PASS Unscopable handled correctly for decrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on SubtleCrypto 
PASS SubtleCrypto interface: operation sign(AlgorithmIdentifier, CryptoKey, BufferSource) 
PASS Unscopable handled correctly for sign(AlgorithmIdentifier, CryptoKey, BufferSource) on SubtleCrypto 
PASS SubtleCrypto interface: operation verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource) 
PASS Unscopable handled correctly for verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource) on SubtleCrypto 
PASS SubtleCrypto interface: operation digest(AlgorithmIdentifier, BufferSource) 
PASS Unscopable handled correctly for digest(AlgorithmIdentifier, BufferSource) on SubtleCrypto 
PASS SubtleCrypto interface: operation generateKey(AlgorithmIdentifier, boolean, [object Object]) 
PASS Unscopable handled correctly for generateKey(AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto 
PASS SubtleCrypto interface: operation deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object]) 
PASS Unscopable handled correctly for deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto 
PASS SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long) 
PASS Unscopable handled correctly for deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long) on SubtleCrypto 
PASS SubtleCrypto interface: operation importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object]) 
PASS Unscopable handled correctly for importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto 
PASS SubtleCrypto interface: operation exportKey(KeyFormat, CryptoKey) 
PASS Unscopable handled correctly for exportKey(KeyFormat, CryptoKey) on SubtleCrypto 
PASS SubtleCrypto interface: operation wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier) 
PASS Unscopable handled correctly for wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier) on SubtleCrypto 
PASS SubtleCrypto interface: operation unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object]) 
PASS Unscopable handled correctly for unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto 
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 

