[test_failures_ECDH.html]
  type: testharness
  [Bad algorithm: generateKey(AES, false, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, true, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, RED, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, 7, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, false, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, true, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, RED, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, 7, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, false, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, true, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, false, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, true, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, RED, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, 7, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, false, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, true, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, RED, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, 7, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, false, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, true, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, RED, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, 7, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, false, [\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, true, [\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, RED, [\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, 7, [\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, false, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, true, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, RED, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, 7, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, false, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, true, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, false, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, true, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, RED, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, 7, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, false, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, true, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, RED, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, 7, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, false, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, true, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, RED, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, 7, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, false, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, true, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, false, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, true, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [encrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, encrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, encrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, encrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [decrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, decrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, decrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [sign\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, sign\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, sign\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, sign\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [verify\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, verify\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, verify\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, verify\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [wrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, wrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, wrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, wrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [unwrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, unwrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, unwrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, unwrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [encrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, encrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, encrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, encrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [decrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, decrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, decrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [sign\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, sign\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, sign\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, sign\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [verify\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, verify\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, verify\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, verify\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [wrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, wrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, wrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, wrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [unwrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, unwrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, unwrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, unwrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [encrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, encrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, encrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, encrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [decrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, decrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, decrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, decrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [sign\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, sign\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, sign\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, sign\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [verify\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, verify\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, verify\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, verify\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [wrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, wrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, wrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, wrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [unwrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, unwrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, unwrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, unwrapKey\])]
    expected: FAIL

  [Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey\])]
    expected: FAIL

  [Empty usages: generateKey({name: ECDH, namedCurve: P-256}, false, [\])]
    expected: FAIL

  [Empty usages: generateKey({name: ECDH, namedCurve: P-256}, true, [\])]
    expected: FAIL

  [Empty usages: generateKey({name: ECDH, namedCurve: P-384}, false, [\])]
    expected: FAIL

  [Empty usages: generateKey({name: ECDH, namedCurve: P-384}, true, [\])]
    expected: FAIL

  [Empty usages: generateKey({name: ECDH, namedCurve: P-521}, false, [\])]
    expected: FAIL

  [Empty usages: generateKey({name: ECDH, namedCurve: P-521}, true, [\])]
    expected: FAIL

