Implement HMAC key generation (#34278)

* Implement HMAC key generation

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

* Update WPT expectations

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
This commit is contained in:
Simon Wülker 2024-11-18 18:28:24 +01:00 committed by GitHub
parent 11dfbd6f90
commit 2485bd9a63
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 263 additions and 1874 deletions

View file

@ -27,8 +27,8 @@ use crate::dom::bindings::codegen::Bindings::CryptoKeyBinding::{
}; };
use crate::dom::bindings::codegen::Bindings::SubtleCryptoBinding::{ use crate::dom::bindings::codegen::Bindings::SubtleCryptoBinding::{
AesCbcParams, AesCtrParams, AesDerivedKeyParams, AesKeyAlgorithm, AesKeyGenParams, Algorithm, AesCbcParams, AesCtrParams, AesDerivedKeyParams, AesKeyAlgorithm, AesKeyGenParams, Algorithm,
AlgorithmIdentifier, HkdfParams, HmacImportParams, HmacKeyAlgorithm, JsonWebKey, KeyAlgorithm, AlgorithmIdentifier, HkdfParams, HmacImportParams, HmacKeyAlgorithm, HmacKeyGenParams,
KeyFormat, Pbkdf2Params, SubtleCryptoMethods, JsonWebKey, KeyAlgorithm, KeyFormat, Pbkdf2Params, SubtleCryptoMethods,
}; };
use crate::dom::bindings::codegen::UnionTypes::{ use crate::dom::bindings::codegen::UnionTypes::{
ArrayBufferViewOrArrayBuffer, ArrayBufferViewOrArrayBufferOrJsonWebKey, ArrayBufferViewOrArrayBuffer, ArrayBufferViewOrArrayBufferOrJsonWebKey,
@ -986,6 +986,24 @@ impl SubtleHmacImportParams {
} }
} }
struct SubtleHmacKeyGenParams {
/// <https://w3c.github.io/webcrypto/#dfn-HmacKeyGenParams-hash>
hash: DigestAlgorithm,
/// <https://w3c.github.io/webcrypto/#dfn-HmacKeyGenParams-length>
length: Option<u32>,
}
impl SubtleHmacKeyGenParams {
fn new(cx: JSContext, params: RootedTraceableBox<HmacKeyGenParams>) -> Fallible<Self> {
let hash = normalize_algorithm_for_digest(cx, &params.hash)?;
let params = Self {
hash,
length: params.length,
};
Ok(params)
}
}
/// <https://w3c.github.io/webcrypto/#hkdf-params> /// <https://w3c.github.io/webcrypto/#hkdf-params>
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
pub struct SubtleHkdfParams { pub struct SubtleHkdfParams {
@ -1106,6 +1124,7 @@ enum SignatureAlgorithm {
/// [`normalize_algorithm`]: https://w3c.github.io/webcrypto/#algorithm-normalization-normalize-an-algorithm /// [`normalize_algorithm`]: https://w3c.github.io/webcrypto/#algorithm-normalization-normalize-an-algorithm
enum KeyGenerationAlgorithm { enum KeyGenerationAlgorithm {
Aes(SubtleAesKeyGenParams), Aes(SubtleAesKeyGenParams),
Hmac(SubtleHmacKeyGenParams),
} }
macro_rules! value_from_js_object { macro_rules! value_from_js_object {
@ -1307,6 +1326,10 @@ fn normalize_algorithm_for_generate_key(
if name.eq_ignore_ascii_case(ALG_AES_CBC) || name.eq_ignore_ascii_case(ALG_AES_CTR) { if name.eq_ignore_ascii_case(ALG_AES_CBC) || name.eq_ignore_ascii_case(ALG_AES_CTR) {
let params = value_from_js_object!(AesKeyGenParams, cx, value); let params = value_from_js_object!(AesKeyGenParams, cx, value);
KeyGenerationAlgorithm::Aes(params.into()) KeyGenerationAlgorithm::Aes(params.into())
} else if name.eq_ignore_ascii_case(ALG_HMAC) {
let params = value_from_js_object!(HmacKeyGenParams, cx, value);
let subtle_params = SubtleHmacKeyGenParams::new(cx, params)?;
KeyGenerationAlgorithm::Hmac(subtle_params)
} else { } else {
return Err(Error::NotSupported); return Err(Error::NotSupported);
}; };
@ -1493,6 +1516,84 @@ impl SubtleCrypto {
Ok(crypto_key) Ok(crypto_key)
} }
/// <https://w3c.github.io/webcrypto/#hmac-operations>
#[allow(unsafe_code)]
fn generate_key_hmac(
&self,
usages: Vec<KeyUsage>,
params: &SubtleHmacKeyGenParams,
extractable: bool,
) -> Result<DomRoot<CryptoKey>, Error> {
// Step 1. If usages contains any entry which is not "sign" or "verify", then throw a SyntaxError.
if usages
.iter()
.any(|usage| !matches!(usage, KeyUsage::Sign | KeyUsage::Verify))
{
return Err(Error::Syntax);
}
// Step 2.
let length = match params.length {
// If the length member of normalizedAlgorithm is not present:
None => {
// Let length be the block size in bits of the hash function identified by the
// hash member of normalizedAlgorithm.
params.hash.block_size_in_bits() as u32
},
// Otherwise, if the length member of normalizedAlgorithm is non-zero:
Some(length) if length != 0 => {
// Let length be equal to the length member of normalizedAlgorithm.
length
},
// Otherwise:
_ => {
// throw an OperationError.
return Err(Error::Operation);
},
};
// Step 3. Generate a key of length length bits.
let mut key_data = vec![0; length as usize];
self.rng.borrow_mut().fill_bytes(&mut key_data);
// Step 4. If the key generation step fails, then throw an OperationError.
// NOTE: Our key generation is infallible.
// Step 5. Let key be a new CryptoKey object representing the generated key.
// Step 6. Let algorithm be a new HmacKeyAlgorithm.
// Step 7. Set the name attribute of algorithm to "HMAC".
// Step 8. Let hash be a new KeyAlgorithm.
// Step 9. Set the name attribute of hash to equal the name member of the hash member of normalizedAlgorithm.
// Step 10. Set the hash attribute of algorithm to hash.
// Step 11. Set the [[type]] internal slot of key to "secret".
// Step 12. Set the [[algorithm]] internal slot of key to algorithm.
// Step 13. Set the [[extractable]] internal slot of key to be extractable.
// Step 14. Set the [[usages]] internal slot of key to be usages.
let name = DOMString::from(ALG_HMAC);
let cx = GlobalScope::get_cx();
rooted!(in(*cx) let mut algorithm_object = unsafe {JS_NewObject(*cx, ptr::null()) });
assert!(!algorithm_object.is_null());
HmacKeyAlgorithm::from_length_and_hash(
length,
params.hash,
algorithm_object.handle_mut(),
cx,
);
let key = CryptoKey::new(
&self.global(),
KeyType::Secret,
extractable,
name,
algorithm_object.handle(),
usages,
Handle::Hmac(key_data),
);
// Step 15. Return key.
Ok(key)
}
/// <https://w3c.github.io/webcrypto/#aes-cbc-operations> /// <https://w3c.github.io/webcrypto/#aes-cbc-operations>
/// <https://w3c.github.io/webcrypto/#aes-ctr-operations> /// <https://w3c.github.io/webcrypto/#aes-ctr-operations>
#[allow(unsafe_code)] #[allow(unsafe_code)]
@ -2005,6 +2106,15 @@ impl DigestAlgorithm {
}; };
Ok(digest::digest(algorithm, data)) Ok(digest::digest(algorithm, data))
} }
fn block_size_in_bits(&self) -> usize {
match self {
Self::Sha1 => 160,
Self::Sha256 => 256,
Self::Sha384 => 384,
Self::Sha512 => 512,
}
}
} }
impl ImportKeyAlgorithm { impl ImportKeyAlgorithm {
@ -2125,6 +2235,7 @@ impl KeyGenerationAlgorithm {
) -> Result<DomRoot<CryptoKey>, Error> { ) -> Result<DomRoot<CryptoKey>, Error> {
match self { match self {
Self::Aes(params) => subtle.generate_key_aes(usages, params, extractable), Self::Aes(params) => subtle.generate_key_aes(usages, params, extractable),
Self::Hmac(params) => subtle.generate_key_hmac(usages, params, extractable),
} }
} }
} }

View file

@ -104,6 +104,12 @@ dictionary HmacKeyAlgorithm : KeyAlgorithm {
required unsigned long length; required unsigned long length;
}; };
// https://w3c.github.io/webcrypto/#dfn-HmacKeyGenParams
dictionary HmacKeyGenParams : Algorithm {
required HashAlgorithmIdentifier hash;
[EnforceRange] unsigned long length;
};
// https://w3c.github.io/webcrypto/#hkdf-params // https://w3c.github.io/webcrypto/#hkdf-params
dictionary HkdfParams : Algorithm { dictionary HkdfParams : Algorithm {
required HashAlgorithmIdentifier hash; required HashAlgorithmIdentifier hash;

File diff suppressed because it is too large Load diff

View file

@ -1,97 +1,49 @@
[successes_HMAC.https.any.worker.html] [successes_HMAC.https.any.worker.html]
[Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign\])] [Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign\])] [Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify\])] [Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign\])] [Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign\])] [Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify\])] [Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign\])] [Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign\])] [Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify\])] [Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign\])] [Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign\])] [Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify\])] [Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
@ -191,99 +143,51 @@
[Success: generateKey({hash: SHA-512, name: HMAC}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-512, name: HMAC}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign\])] [Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify, sign\])] [Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify\])] [Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign\])] [Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify, sign\])] [Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify\])] [Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign\])] [Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify, sign\])] [Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify\])] [Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign\])] [Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify, sign\])] [Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify\])] [Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
@ -383,99 +287,51 @@
[Success: generateKey({hash: SHA-512, name: hmac}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-512, name: hmac}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign\])] [Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify, sign\])] [Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify\])] [Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign\])] [Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify, sign\])] [Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify\])] [Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign\])] [Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify, sign\])] [Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify\])] [Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign\])] [Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify, sign\])] [Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify\])] [Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
@ -577,99 +433,51 @@
[successes_HMAC.https.any.html] [successes_HMAC.https.any.html]
[Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign\])] [Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign\])] [Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify\])] [Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign\])] [Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign\])] [Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify\])] [Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign\])] [Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign\])] [Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify\])] [Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign\])] [Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign\])] [Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify\])] [Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
@ -769,99 +577,51 @@
[Success: generateKey({hash: SHA-512, name: HMAC}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-512, name: HMAC}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign\])] [Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify, sign\])] [Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify\])] [Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign\])] [Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify, sign\])] [Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify\])] [Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign\])] [Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify, sign\])] [Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify\])] [Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign\])] [Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify, sign\])] [Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify\])] [Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
@ -961,99 +721,51 @@
[Success: generateKey({hash: SHA-512, name: hmac}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-512, name: hmac}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign\])] [Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify, sign\])] [Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify\])] [Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign\])] [Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify, sign\])] [Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify\])] [Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign\])] [Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify, sign\])] [Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify\])] [Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign\])] [Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [verify, sign\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify, sign\])] [Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify, sign\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify\])] [Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify\])]
expected: FAIL expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [sign, verify, sign, verify\])]
expected: FAIL
[Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign, verify, sign, verify\])] [Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign, verify, sign, verify\])]
expected: FAIL expected: FAIL

View file

@ -1,76 +1,4 @@
[ecdsa.https.any.worker.html] [ecdsa.https.any.worker.html]
[generate wrong key step: ECDSA P-256 with SHA-1 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-256 with SHA-256 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-256 with SHA-384 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-256 with SHA-512 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-384 with SHA-1 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-384 with SHA-256 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-384 with SHA-384 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-384 with SHA-512 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-521 with SHA-1 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-521 with SHA-256 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-521 with SHA-384 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-521 with SHA-512 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-256 with SHA-1 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-256 with SHA-256 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-256 with SHA-384 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-256 with SHA-512 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-384 with SHA-1 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-384 with SHA-256 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-384 with SHA-384 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-384 with SHA-512 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-521 with SHA-1 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-521 with SHA-256 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-521 with SHA-384 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-521 with SHA-512 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-256 with SHA-1 verification] [importVectorKeys step: ECDSA P-256 with SHA-1 verification]
expected: FAIL expected: FAIL
@ -755,80 +683,80 @@
[importVectorKeys step: ECDSA P-521 with SHA-512 - The signature is all zeroes verification] [importVectorKeys step: ECDSA P-521 with SHA-512 - The signature is all zeroes verification]
expected: FAIL expected: FAIL
[importVectorKeys step: ECDSA P-256 with SHA-1 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-256 with SHA-256 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-256 with SHA-384 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-256 with SHA-512 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-384 with SHA-1 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-384 with SHA-256 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-384 with SHA-384 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-384 with SHA-512 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-521 with SHA-1 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-521 with SHA-256 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-521 with SHA-384 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-521 with SHA-512 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-256 with SHA-1 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-256 with SHA-256 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-256 with SHA-384 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-256 with SHA-512 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-384 with SHA-1 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-384 with SHA-256 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-384 with SHA-384 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-384 with SHA-512 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-521 with SHA-1 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-521 with SHA-256 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-521 with SHA-384 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-521 with SHA-512 verifying with wrong algorithm name]
expected: FAIL
[ecdsa.https.any.html] [ecdsa.https.any.html]
[generate wrong key step: ECDSA P-256 with SHA-1 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-256 with SHA-256 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-256 with SHA-384 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-256 with SHA-512 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-384 with SHA-1 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-384 with SHA-256 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-384 with SHA-384 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-384 with SHA-512 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-521 with SHA-1 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-521 with SHA-256 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-521 with SHA-384 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-521 with SHA-512 signing with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-256 with SHA-1 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-256 with SHA-256 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-256 with SHA-384 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-256 with SHA-512 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-384 with SHA-1 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-384 with SHA-256 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-384 with SHA-384 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-384 with SHA-512 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-521 with SHA-1 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-521 with SHA-256 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-521 with SHA-384 verifying with wrong algorithm name]
expected: FAIL
[generate wrong key step: ECDSA P-521 with SHA-512 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-256 with SHA-1 verification] [importVectorKeys step: ECDSA P-256 with SHA-1 verification]
expected: FAIL expected: FAIL
@ -1512,3 +1440,75 @@
[importVectorKeys step: ECDSA P-521 with SHA-512 - The signature is all zeroes verification] [importVectorKeys step: ECDSA P-521 with SHA-512 - The signature is all zeroes verification]
expected: FAIL expected: FAIL
[importVectorKeys step: ECDSA P-256 with SHA-1 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-256 with SHA-256 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-256 with SHA-384 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-256 with SHA-512 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-384 with SHA-1 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-384 with SHA-256 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-384 with SHA-384 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-384 with SHA-512 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-521 with SHA-1 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-521 with SHA-256 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-521 with SHA-384 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-521 with SHA-512 signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-256 with SHA-1 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-256 with SHA-256 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-256 with SHA-384 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-256 with SHA-512 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-384 with SHA-1 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-384 with SHA-256 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-384 with SHA-384 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-384 with SHA-512 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-521 with SHA-1 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-521 with SHA-256 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-521 with SHA-384 verifying with wrong algorithm name]
expected: FAIL
[importVectorKeys step: ECDSA P-521 with SHA-512 verifying with wrong algorithm name]
expected: FAIL