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

