mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Implement AES-GCM support for subtlecrypto (#34269)
* Support normalizing AES-GCM for encryption Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Implement "encrypt" operation for AES-GCM Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Allow importing AES-GCM keys Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Implement AES-GCM decryption Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Allow normalizing AES-GCM for "generate key" Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Update WPT expectations Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * fmt Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Fix clippy errors Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Remove silly checks Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Support AES-GCM 128-bit encryption with 128 bit IV Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Support AES-GCM with wrapKey/unwrapKey Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Update WPT expectations (again) 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:
parent
5113147f80
commit
83f8e88818
13 changed files with 1168 additions and 13478 deletions
70
Cargo.lock
generated
70
Cargo.lock
generated
|
@ -42,6 +42,16 @@ version = "2.0.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
|
||||
|
||||
[[package]]
|
||||
name = "aead"
|
||||
version = "0.5.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
|
||||
dependencies = [
|
||||
"crypto-common",
|
||||
"generic-array",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "aes"
|
||||
version = "0.8.4"
|
||||
|
@ -53,6 +63,20 @@ dependencies = [
|
|||
"cpufeatures",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "aes-gcm"
|
||||
version = "0.10.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1"
|
||||
dependencies = [
|
||||
"aead",
|
||||
"aes",
|
||||
"cipher",
|
||||
"ctr",
|
||||
"ghash",
|
||||
"subtle",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "aes-kw"
|
||||
version = "0.2.1"
|
||||
|
@ -1297,6 +1321,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
|
||||
dependencies = [
|
||||
"generic-array",
|
||||
"rand_core",
|
||||
"typenum",
|
||||
]
|
||||
|
||||
|
@ -2322,6 +2347,16 @@ dependencies = [
|
|||
"wasi 0.11.0+wasi-snapshot-preview1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ghash"
|
||||
version = "0.5.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1"
|
||||
dependencies = [
|
||||
"opaque-debug",
|
||||
"polyval",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gif"
|
||||
version = "0.13.1"
|
||||
|
@ -5176,6 +5211,12 @@ version = "11.1.4"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9"
|
||||
|
||||
[[package]]
|
||||
name = "opaque-debug"
|
||||
version = "0.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
|
||||
|
||||
[[package]]
|
||||
name = "openxr"
|
||||
version = "0.19.0"
|
||||
|
@ -5528,6 +5569,18 @@ dependencies = [
|
|||
"windows-sys 0.59.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "polyval"
|
||||
version = "0.6.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"cpufeatures",
|
||||
"opaque-debug",
|
||||
"universal-hash",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "powerfmt"
|
||||
version = "0.2.0"
|
||||
|
@ -6047,6 +6100,7 @@ version = "0.0.1"
|
|||
dependencies = [
|
||||
"accountable-refcell",
|
||||
"aes",
|
||||
"aes-gcm",
|
||||
"aes-kw",
|
||||
"app_units",
|
||||
"arrayvec",
|
||||
|
@ -7084,6 +7138,12 @@ dependencies = [
|
|||
"webrender_api",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "subtle"
|
||||
version = "2.6.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
|
||||
|
||||
[[package]]
|
||||
name = "surfman"
|
||||
version = "0.9.8"
|
||||
|
@ -7765,6 +7825,16 @@ version = "0.2.6"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
|
||||
|
||||
[[package]]
|
||||
name = "universal-hash"
|
||||
version = "0.5.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
|
||||
dependencies = [
|
||||
"crypto-common",
|
||||
"subtle",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "untrusted"
|
||||
version = "0.9.0"
|
||||
|
|
|
@ -19,6 +19,7 @@ rust-version = "1.80.1"
|
|||
accountable-refcell = "0.2.0"
|
||||
aes = "0.8.4"
|
||||
aes-kw = { version = "0.2.1", features = ["alloc"] }
|
||||
aes-gcm = "0.10.3"
|
||||
app_units = "0.7"
|
||||
arrayvec = "0.7"
|
||||
async-tungstenite = { version = "0.23", features = ["tokio-rustls-webpki-roots"] }
|
||||
|
|
|
@ -29,6 +29,7 @@ serde_json = { workspace = true }
|
|||
[dependencies]
|
||||
aes = { workspace = true }
|
||||
aes-kw = { workspace = true }
|
||||
aes-gcm = { workspace = true }
|
||||
accountable-refcell = { workspace = true, optional = true }
|
||||
app_units = { workspace = true }
|
||||
arrayvec = { workspace = true }
|
||||
|
|
|
@ -10,8 +10,10 @@ use aes::cipher::block_padding::Pkcs7;
|
|||
use aes::cipher::generic_array::GenericArray;
|
||||
use aes::cipher::{BlockDecryptMut, BlockEncryptMut, KeyIvInit, StreamCipher};
|
||||
use aes::{Aes128, Aes192, Aes256};
|
||||
use aes_gcm::{AeadInPlace, AesGcm, KeyInit};
|
||||
use aes_kw::{KekAes128, KekAes192, KekAes256};
|
||||
use base64::prelude::*;
|
||||
use cipher::consts::{U12, U16, U32};
|
||||
use dom_struct::dom_struct;
|
||||
use js::conversions::ConversionResult;
|
||||
use js::jsapi::{JSObject, JS_NewObject};
|
||||
|
@ -28,9 +30,10 @@ use crate::dom::bindings::codegen::Bindings::CryptoKeyBinding::{
|
|||
CryptoKeyMethods, KeyType, KeyUsage,
|
||||
};
|
||||
use crate::dom::bindings::codegen::Bindings::SubtleCryptoBinding::{
|
||||
AesCbcParams, AesCtrParams, AesDerivedKeyParams, AesKeyAlgorithm, AesKeyGenParams, Algorithm,
|
||||
AlgorithmIdentifier, HkdfParams, HmacImportParams, HmacKeyAlgorithm, HmacKeyGenParams,
|
||||
JsonWebKey, KeyAlgorithm, KeyFormat, Pbkdf2Params, SubtleCryptoMethods,
|
||||
AesCbcParams, AesCtrParams, AesDerivedKeyParams, AesGcmParams, AesKeyAlgorithm,
|
||||
AesKeyGenParams, Algorithm, AlgorithmIdentifier, HkdfParams, HmacImportParams,
|
||||
HmacKeyAlgorithm, HmacKeyGenParams, JsonWebKey, KeyAlgorithm, KeyFormat, Pbkdf2Params,
|
||||
SubtleCryptoMethods,
|
||||
};
|
||||
use crate::dom::bindings::codegen::UnionTypes::{
|
||||
ArrayBufferViewOrArrayBuffer, ArrayBufferViewOrArrayBufferOrJsonWebKey,
|
||||
|
@ -108,6 +111,14 @@ type Aes128Ctr = ctr::Ctr64BE<Aes128>;
|
|||
type Aes192Ctr = ctr::Ctr64BE<Aes192>;
|
||||
type Aes256Ctr = ctr::Ctr64BE<Aes256>;
|
||||
|
||||
type Aes128Gcm96Iv = AesGcm<Aes128, U12>;
|
||||
type Aes128Gcm128Iv = AesGcm<Aes128, U16>;
|
||||
type Aes192Gcm96Iv = AesGcm<Aes192, U12>;
|
||||
type Aes256Gcm96Iv = AesGcm<Aes256, U12>;
|
||||
type Aes128Gcm256Iv = AesGcm<Aes128, U32>;
|
||||
type Aes192Gcm256Iv = AesGcm<Aes192, U32>;
|
||||
type Aes256Gcm256Iv = AesGcm<Aes256, U32>;
|
||||
|
||||
#[dom_struct]
|
||||
pub struct SubtleCrypto {
|
||||
reflector_: Reflector,
|
||||
|
@ -838,7 +849,7 @@ impl SubtleCryptoMethods for SubtleCrypto {
|
|||
return;
|
||||
}
|
||||
let exported_key = match alg_name.as_str() {
|
||||
ALG_AES_CBC | ALG_AES_CTR | ALG_AES_KW => subtle.export_key_aes(format, &key),
|
||||
ALG_AES_CBC | ALG_AES_CTR | ALG_AES_KW | ALG_AES_GCM => subtle.export_key_aes(format, &key),
|
||||
_ => Err(Error::NotSupported),
|
||||
};
|
||||
match exported_key {
|
||||
|
@ -965,6 +976,11 @@ impl SubtleCryptoMethods for SubtleCrypto {
|
|||
¶ms, &wrapping_key, &bytes, cx, array_buffer_ptr.handle_mut()
|
||||
)
|
||||
},
|
||||
KeyWrapAlgorithm::AesGcm(params) => {
|
||||
subtle.encrypt_aes_gcm(
|
||||
¶ms, &wrapping_key, &bytes, cx, array_buffer_ptr.handle_mut()
|
||||
)
|
||||
},
|
||||
};
|
||||
|
||||
match result {
|
||||
|
@ -1047,6 +1063,11 @@ impl SubtleCryptoMethods for SubtleCrypto {
|
|||
¶ms, &unwrapping_key, &wrapped_key_bytes, cx, array_buffer_ptr.handle_mut()
|
||||
)
|
||||
},
|
||||
KeyWrapAlgorithm::AesGcm(params) => {
|
||||
subtle.decrypt_aes_gcm(
|
||||
¶ms, &unwrapping_key, &wrapped_key_bytes, cx, array_buffer_ptr.handle_mut()
|
||||
)
|
||||
},
|
||||
};
|
||||
|
||||
let bytes = match result {
|
||||
|
@ -1139,6 +1160,34 @@ impl From<RootedTraceableBox<AesCtrParams>> for SubtleAesCtrParams {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct SubtleAesGcmParams {
|
||||
pub name: String,
|
||||
pub iv: Vec<u8>,
|
||||
pub additional_data: Option<Vec<u8>>,
|
||||
pub tag_length: Option<u8>,
|
||||
}
|
||||
|
||||
impl From<RootedTraceableBox<AesGcmParams>> for SubtleAesGcmParams {
|
||||
fn from(params: RootedTraceableBox<AesGcmParams>) -> Self {
|
||||
let iv = match ¶ms.iv {
|
||||
ArrayBufferViewOrArrayBuffer::ArrayBufferView(view) => view.to_vec(),
|
||||
ArrayBufferViewOrArrayBuffer::ArrayBuffer(buffer) => buffer.to_vec(),
|
||||
};
|
||||
let additional_data = params.additionalData.as_ref().map(|data| match data {
|
||||
ArrayBufferViewOrArrayBuffer::ArrayBufferView(view) => view.to_vec(),
|
||||
ArrayBufferViewOrArrayBuffer::ArrayBuffer(buffer) => buffer.to_vec(),
|
||||
});
|
||||
|
||||
SubtleAesGcmParams {
|
||||
name: params.parent.name.to_string(),
|
||||
iv,
|
||||
additional_data,
|
||||
tag_length: params.tagLength,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct SubtleAesKeyGenParams {
|
||||
pub name: String,
|
||||
|
@ -1313,6 +1362,7 @@ enum ImportKeyAlgorithm {
|
|||
AesCbc,
|
||||
AesCtr,
|
||||
AesKw,
|
||||
AesGcm,
|
||||
Hmac(SubtleHmacImportParams),
|
||||
Pbkdf2,
|
||||
Hkdf,
|
||||
|
@ -1329,9 +1379,11 @@ enum DeriveBitsAlgorithm {
|
|||
/// A normalized algorithm returned by [`normalize_algorithm`] with operation `"encrypt"` or `"decrypt"`
|
||||
///
|
||||
/// [`normalize_algorithm`]: https://w3c.github.io/webcrypto/#algorithm-normalization-normalize-an-algorithm
|
||||
#[allow(clippy::enum_variant_names)]
|
||||
enum EncryptionAlgorithm {
|
||||
AesCbc(SubtleAesCbcParams),
|
||||
AesCtr(SubtleAesCtrParams),
|
||||
AesGcm(SubtleAesGcmParams),
|
||||
}
|
||||
|
||||
/// A normalized algorithm returned by [`normalize_algorithm`] with operation `"sign"` or `"verify"`
|
||||
|
@ -1357,6 +1409,7 @@ enum KeyWrapAlgorithm {
|
|||
AesKw,
|
||||
AesCbc(SubtleAesCbcParams),
|
||||
AesCtr(SubtleAesCtrParams),
|
||||
AesGcm(SubtleAesGcmParams),
|
||||
}
|
||||
|
||||
macro_rules! value_from_js_object {
|
||||
|
@ -1381,7 +1434,8 @@ fn normalize_algorithm_for_get_key_length(
|
|||
|
||||
let name = algorithm.name.str();
|
||||
let normalized_algorithm = if name.eq_ignore_ascii_case(ALG_AES_CBC) ||
|
||||
name.eq_ignore_ascii_case(ALG_AES_CTR)
|
||||
name.eq_ignore_ascii_case(ALG_AES_CTR) ||
|
||||
name.eq_ignore_ascii_case(ALG_AES_GCM)
|
||||
{
|
||||
let params = value_from_js_object!(AesDerivedKeyParams, cx, value);
|
||||
GetKeyLengthAlgorithm::Aes(params.length)
|
||||
|
@ -1454,6 +1508,7 @@ fn normalize_algorithm_for_import_key(
|
|||
ALG_AES_CBC => ImportKeyAlgorithm::AesCbc,
|
||||
ALG_AES_CTR => ImportKeyAlgorithm::AesCtr,
|
||||
ALG_AES_KW => ImportKeyAlgorithm::AesKw,
|
||||
ALG_AES_GCM => ImportKeyAlgorithm::AesGcm,
|
||||
ALG_PBKDF2 => ImportKeyAlgorithm::Pbkdf2,
|
||||
ALG_HKDF => ImportKeyAlgorithm::Hkdf,
|
||||
_ => return Err(Error::NotSupported),
|
||||
|
@ -1510,6 +1565,9 @@ fn normalize_algorithm_for_encrypt_or_decrypt(
|
|||
} else if name.eq_ignore_ascii_case(ALG_AES_CTR) {
|
||||
let params = value_from_js_object!(AesCtrParams, cx, value);
|
||||
EncryptionAlgorithm::AesCtr(params.into())
|
||||
} else if name.eq_ignore_ascii_case(ALG_AES_GCM) {
|
||||
let params = value_from_js_object!(AesGcmParams, cx, value);
|
||||
EncryptionAlgorithm::AesGcm(params.into())
|
||||
} else {
|
||||
return Err(Error::NotSupported);
|
||||
};
|
||||
|
@ -1557,7 +1615,8 @@ fn normalize_algorithm_for_generate_key(
|
|||
let name = algorithm.name.str();
|
||||
let normalized_algorithm = if name.eq_ignore_ascii_case(ALG_AES_CBC) ||
|
||||
name.eq_ignore_ascii_case(ALG_AES_CTR) ||
|
||||
name.eq_ignore_ascii_case(ALG_AES_KW)
|
||||
name.eq_ignore_ascii_case(ALG_AES_KW) ||
|
||||
name.eq_ignore_ascii_case(ALG_AES_GCM)
|
||||
{
|
||||
let params = value_from_js_object!(AesKeyGenParams, cx, value);
|
||||
KeyGenerationAlgorithm::Aes(params.into())
|
||||
|
@ -1603,6 +1662,13 @@ fn normalize_algorithm_for_key_wrap(
|
|||
rooted!(in(*cx) let value = ObjectValue(obj.get()));
|
||||
KeyWrapAlgorithm::AesCtr(value_from_js_object!(AesCtrParams, cx, value).into())
|
||||
},
|
||||
ALG_AES_GCM => {
|
||||
let AlgorithmIdentifier::Object(obj) = algorithm else {
|
||||
return Err(Error::Syntax);
|
||||
};
|
||||
rooted!(in(*cx) let value = ObjectValue(obj.get()));
|
||||
KeyWrapAlgorithm::AesGcm(value_from_js_object!(AesGcmParams, cx, value).into())
|
||||
},
|
||||
_ => return Err(Error::NotSupported),
|
||||
};
|
||||
|
||||
|
@ -1730,6 +1796,250 @@ impl SubtleCrypto {
|
|||
Ok(ciphertext)
|
||||
}
|
||||
|
||||
/// <https://w3c.github.io/webcrypto/#aes-gcm-operations>
|
||||
fn encrypt_aes_gcm(
|
||||
&self,
|
||||
params: &SubtleAesGcmParams,
|
||||
key: &CryptoKey,
|
||||
plaintext: &[u8],
|
||||
cx: JSContext,
|
||||
handle: MutableHandleObject,
|
||||
) -> Result<Vec<u8>, Error> {
|
||||
// Step 1. If plaintext has a length greater than 2^39 - 256 bytes, then throw an OperationError.
|
||||
if plaintext.len() as u64 > (2 << 39) - 256 {
|
||||
return Err(Error::Operation);
|
||||
}
|
||||
|
||||
// Step 2. If the iv member of normalizedAlgorithm has a length greater than 2^64 - 1 bytes,
|
||||
// then throw an OperationError.
|
||||
// NOTE: servo does not currently support 128-bit platforms, so this can never happen
|
||||
|
||||
// Step 3. If the additionalData member of normalizedAlgorithm is present and has a length greater than 2^64 - 1
|
||||
// bytes, then throw an OperationError.
|
||||
if params
|
||||
.additional_data
|
||||
.as_ref()
|
||||
.is_some_and(|data| data.len() > u64::MAX as usize)
|
||||
{
|
||||
return Err(Error::Operation);
|
||||
}
|
||||
|
||||
// Step 4.
|
||||
let tag_length = match params.tag_length {
|
||||
// If the tagLength member of normalizedAlgorithm is not present:
|
||||
None => {
|
||||
// Let tagLength be 128.
|
||||
128
|
||||
},
|
||||
// If the tagLength member of normalizedAlgorithm is one of 32, 64, 96, 104, 112, 120 or 128:
|
||||
Some(length) if matches!(length, 32 | 64 | 96 | 104 | 112 | 120 | 128) => {
|
||||
// Let tagLength be equal to the tagLength member of normalizedAlgorithm
|
||||
length
|
||||
},
|
||||
// Otherwise:
|
||||
_ => {
|
||||
// throw an OperationError.
|
||||
return Err(Error::Operation);
|
||||
},
|
||||
};
|
||||
|
||||
// Step 5. Let additionalData be the contents of the additionalData member of normalizedAlgorithm if present
|
||||
// or the empty octet string otherwise.
|
||||
let additional_data = params.additional_data.as_deref().unwrap_or_default();
|
||||
|
||||
// Step 6. Let C and T be the outputs that result from performing the Authenticated Encryption Function
|
||||
// described in Section 7.1 of [NIST-SP800-38D] using AES as the block cipher, the contents of the iv member
|
||||
// of normalizedAlgorithm as the IV input parameter, the contents of additionalData as the A input parameter,
|
||||
// tagLength as the t pre-requisite and the contents of plaintext as the input plaintext.
|
||||
let key_length = key.handle().as_bytes().len();
|
||||
let iv_length = params.iv.len();
|
||||
let mut ciphertext = plaintext.to_vec();
|
||||
let key_bytes = key.handle().as_bytes();
|
||||
let tag = match (key_length, iv_length) {
|
||||
(16, 12) => {
|
||||
let nonce = GenericArray::from_slice(¶ms.iv);
|
||||
<Aes128Gcm96Iv>::new_from_slice(key_bytes)
|
||||
.expect("key length did not match")
|
||||
.encrypt_in_place_detached(nonce, additional_data, &mut ciphertext)
|
||||
},
|
||||
(16, 16) => {
|
||||
let nonce = GenericArray::from_slice(¶ms.iv);
|
||||
<Aes128Gcm128Iv>::new_from_slice(key_bytes)
|
||||
.expect("key length did not match")
|
||||
.encrypt_in_place_detached(nonce, additional_data, &mut ciphertext)
|
||||
},
|
||||
(20, 12) => {
|
||||
let nonce = GenericArray::from_slice(¶ms.iv);
|
||||
<Aes192Gcm96Iv>::new_from_slice(key_bytes)
|
||||
.expect("key length did not match")
|
||||
.encrypt_in_place_detached(nonce, additional_data, &mut ciphertext)
|
||||
},
|
||||
(32, 12) => {
|
||||
let nonce = GenericArray::from_slice(¶ms.iv);
|
||||
<Aes256Gcm96Iv>::new_from_slice(key_bytes)
|
||||
.expect("key length did not match")
|
||||
.encrypt_in_place_detached(nonce, additional_data, &mut ciphertext)
|
||||
},
|
||||
(16, 32) => {
|
||||
let nonce = GenericArray::from_slice(¶ms.iv);
|
||||
<Aes128Gcm256Iv>::new_from_slice(key_bytes)
|
||||
.expect("key length did not match")
|
||||
.encrypt_in_place_detached(nonce, additional_data, &mut ciphertext)
|
||||
},
|
||||
(20, 32) => {
|
||||
let nonce = GenericArray::from_slice(¶ms.iv);
|
||||
<Aes192Gcm256Iv>::new_from_slice(key_bytes)
|
||||
.expect("key length did not match")
|
||||
.encrypt_in_place_detached(nonce, additional_data, &mut ciphertext)
|
||||
},
|
||||
(32, 32) => {
|
||||
let nonce = GenericArray::from_slice(¶ms.iv);
|
||||
<Aes256Gcm256Iv>::new_from_slice(key_bytes)
|
||||
.expect("key length did not match")
|
||||
.encrypt_in_place_detached(nonce, additional_data, &mut ciphertext)
|
||||
},
|
||||
_ => {
|
||||
log::warn!(
|
||||
"Missing AES-GCM encryption implementation with {key_length}-byte key and {iv_length}-byte IV"
|
||||
);
|
||||
return Err(Error::NotSupported);
|
||||
},
|
||||
};
|
||||
|
||||
// Step 7. Let ciphertext be equal to C | T, where '|' denotes concatenation.
|
||||
ciphertext.extend_from_slice(&tag.unwrap()[..tag_length as usize / 8]);
|
||||
|
||||
// Step 8. Return the result of creating an ArrayBuffer containing ciphertext.
|
||||
create_buffer_source::<ArrayBufferU8>(cx, &ciphertext, handle)
|
||||
.expect("failed to create buffer source for encrypted ciphertext");
|
||||
|
||||
Ok(ciphertext)
|
||||
}
|
||||
|
||||
/// <https://w3c.github.io/webcrypto/#aes-gcm-operations>
|
||||
fn decrypt_aes_gcm(
|
||||
&self,
|
||||
params: &SubtleAesGcmParams,
|
||||
key: &CryptoKey,
|
||||
ciphertext: &[u8],
|
||||
cx: JSContext,
|
||||
handle: MutableHandleObject,
|
||||
) -> Result<Vec<u8>, Error> {
|
||||
// Step 1.
|
||||
// FIXME: aes_gcm uses a fixed tag length
|
||||
let tag_length = match params.tag_length {
|
||||
// If the tagLength member of normalizedAlgorithm is not present:
|
||||
None => {
|
||||
// Let tagLength be 128.
|
||||
128
|
||||
},
|
||||
// If the tagLength member of normalizedAlgorithm is one of 32, 64, 96, 104, 112, 120 or 128:
|
||||
Some(length) if matches!(length, 32 | 64 | 96 | 104 | 112 | 120 | 128) => {
|
||||
// Let tagLength be equal to the tagLength member of normalizedAlgorithm
|
||||
length as usize
|
||||
},
|
||||
// Otherwise:
|
||||
_ => {
|
||||
// throw an OperationError.
|
||||
return Err(Error::Operation);
|
||||
},
|
||||
};
|
||||
|
||||
// Step 2. If ciphertext has a length less than tagLength bits, then throw an OperationError.
|
||||
if ciphertext.len() < tag_length / 8 {
|
||||
return Err(Error::Operation);
|
||||
}
|
||||
|
||||
// Step 3. If the iv member of normalizedAlgorithm has a length greater than 2^64 - 1 bytes,
|
||||
// then throw an OperationError.
|
||||
// NOTE: servo does not currently support 128-bit platforms, so this can never happen
|
||||
|
||||
// Step 4. If the additionalData member of normalizedAlgorithm is present and has a length greater than 2^64 - 1
|
||||
// bytes, then throw an OperationError.
|
||||
// NOTE: servo does not currently support 128-bit platforms, so this can never happen
|
||||
|
||||
// Step 5. Let tag be the last tagLength bits of ciphertext.
|
||||
// Step 6. Let actualCiphertext be the result of removing the last tagLength bits from ciphertext.
|
||||
// NOTE: aes_gcm splits the ciphertext for us
|
||||
|
||||
// Step 7. Let additionalData be the contents of the additionalData member of normalizedAlgorithm if present or
|
||||
// the empty octet string otherwise.
|
||||
let additional_data = params.additional_data.as_deref().unwrap_or_default();
|
||||
|
||||
// Step 8. Perform the Authenticated Decryption Function described in Section 7.2 of [NIST-SP800-38D] using AES
|
||||
// as the block cipher, the contents of the iv member of normalizedAlgorithm as the IV input parameter, the
|
||||
// contents of additionalData as the A input parameter, tagLength as the t pre-requisite, the contents of
|
||||
// actualCiphertext as the input ciphertext, C and the contents of tag as the authentication tag, T.
|
||||
let mut plaintext = ciphertext.to_vec();
|
||||
let key_length = key.handle().as_bytes().len();
|
||||
let iv_length = params.iv.len();
|
||||
let key_bytes = key.handle().as_bytes();
|
||||
let result = match (key_length, iv_length) {
|
||||
(16, 12) => {
|
||||
let nonce = GenericArray::from_slice(¶ms.iv);
|
||||
<Aes128Gcm96Iv>::new_from_slice(key_bytes)
|
||||
.expect("key length did not match")
|
||||
.decrypt_in_place(nonce, additional_data, &mut plaintext)
|
||||
},
|
||||
(16, 16) => {
|
||||
let nonce = GenericArray::from_slice(¶ms.iv);
|
||||
<Aes128Gcm128Iv>::new_from_slice(key_bytes)
|
||||
.expect("key length did not match")
|
||||
.decrypt_in_place(nonce, additional_data, &mut plaintext)
|
||||
},
|
||||
(20, 12) => {
|
||||
let nonce = GenericArray::from_slice(¶ms.iv);
|
||||
<Aes192Gcm96Iv>::new_from_slice(key_bytes)
|
||||
.expect("key length did not match")
|
||||
.decrypt_in_place(nonce, additional_data, &mut plaintext)
|
||||
},
|
||||
(32, 12) => {
|
||||
let nonce = GenericArray::from_slice(¶ms.iv);
|
||||
<Aes256Gcm96Iv>::new_from_slice(key_bytes)
|
||||
.expect("key length did not match")
|
||||
.decrypt_in_place(nonce, additional_data, &mut plaintext)
|
||||
},
|
||||
(16, 32) => {
|
||||
let nonce = GenericArray::from_slice(¶ms.iv);
|
||||
<Aes128Gcm256Iv>::new_from_slice(key_bytes)
|
||||
.expect("key length did not match")
|
||||
.decrypt_in_place(nonce, additional_data, &mut plaintext)
|
||||
},
|
||||
(20, 32) => {
|
||||
let nonce = GenericArray::from_slice(¶ms.iv);
|
||||
<Aes192Gcm256Iv>::new_from_slice(key_bytes)
|
||||
.expect("key length did not match")
|
||||
.decrypt_in_place(nonce, additional_data, &mut plaintext)
|
||||
},
|
||||
(32, 32) => {
|
||||
let nonce = GenericArray::from_slice(¶ms.iv);
|
||||
<Aes256Gcm256Iv>::new_from_slice(key_bytes)
|
||||
.expect("key length did not match")
|
||||
.decrypt_in_place(nonce, additional_data, &mut plaintext)
|
||||
},
|
||||
_ => {
|
||||
log::warn!(
|
||||
"Missing AES-GCM decryption implementation with {key_length}-byte key and {iv_length}-byte IV"
|
||||
);
|
||||
return Err(Error::NotSupported);
|
||||
},
|
||||
};
|
||||
|
||||
// If the result of the algorithm is the indication of inauthenticity, "FAIL":
|
||||
if result.is_err() {
|
||||
// throw an OperationError
|
||||
return Err(Error::Operation);
|
||||
}
|
||||
// Otherwise:
|
||||
// Let plaintext be the output P of the Authenticated Decryption Function.
|
||||
|
||||
// Step 9. Return the result of creating an ArrayBuffer containing plaintext.
|
||||
create_buffer_source::<ArrayBufferU8>(cx, &plaintext, handle)
|
||||
.expect("failed to create buffer source for decrypted plaintext");
|
||||
|
||||
Ok(plaintext)
|
||||
}
|
||||
|
||||
/// <https://w3c.github.io/webcrypto/#aes-cbc-operations>
|
||||
/// <https://w3c.github.io/webcrypto/#aes-ctr-operations>
|
||||
/// <https://w3c.github.io/webcrypto/#aes-kw-operations>
|
||||
|
@ -1750,7 +2060,7 @@ impl SubtleCrypto {
|
|||
};
|
||||
|
||||
match key_gen_params.name.as_str() {
|
||||
ALG_AES_CBC | ALG_AES_CTR => {
|
||||
ALG_AES_CBC | ALG_AES_CTR | ALG_AES_GCM => {
|
||||
if usages.iter().any(|usage| {
|
||||
!matches!(
|
||||
usage,
|
||||
|
@ -1780,6 +2090,7 @@ impl SubtleCrypto {
|
|||
ALG_AES_CBC => DOMString::from(ALG_AES_CBC),
|
||||
ALG_AES_CTR => DOMString::from(ALG_AES_CTR),
|
||||
ALG_AES_KW => DOMString::from(ALG_AES_KW),
|
||||
ALG_AES_GCM => DOMString::from(ALG_AES_GCM),
|
||||
_ => return Err(Error::NotSupported),
|
||||
};
|
||||
|
||||
|
@ -2303,6 +2614,7 @@ fn data_to_jwk_params(alg: &str, size: &str, key: &[u8]) -> (DOMString, DOMStrin
|
|||
ALG_AES_CBC => DOMString::from(format!("A{}CBC", size)),
|
||||
ALG_AES_CTR => DOMString::from(format!("A{}CTR", size)),
|
||||
ALG_AES_KW => DOMString::from(format!("A{}KW", size)),
|
||||
ALG_AES_GCM => DOMString::from(format!("A{}GCM", size)),
|
||||
_ => unreachable!(),
|
||||
};
|
||||
let data = base64::engine::general_purpose::STANDARD_NO_PAD.encode(key);
|
||||
|
@ -2529,6 +2841,9 @@ impl ImportKeyAlgorithm {
|
|||
Self::AesKw => {
|
||||
subtle.import_key_aes(format, secret, extractable, key_usages, ALG_AES_KW)
|
||||
},
|
||||
Self::AesGcm => {
|
||||
subtle.import_key_aes(format, secret, extractable, key_usages, ALG_AES_GCM)
|
||||
},
|
||||
Self::Hmac(params) => {
|
||||
subtle.import_key_hmac(params, format, secret, extractable, key_usages)
|
||||
},
|
||||
|
@ -2551,8 +2866,9 @@ impl EncryptionAlgorithm {
|
|||
/// <https://w3c.github.io/webcrypto/#dom-algorithm-name>
|
||||
fn name(&self) -> &str {
|
||||
match self {
|
||||
Self::AesCbc(key_gen_params) => &key_gen_params.name,
|
||||
Self::AesCtr(key_gen_params) => &key_gen_params.name,
|
||||
Self::AesCbc(params) => ¶ms.name,
|
||||
Self::AesCtr(params) => ¶ms.name,
|
||||
Self::AesGcm(params) => ¶ms.name,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2566,12 +2882,9 @@ impl EncryptionAlgorithm {
|
|||
result: MutableHandleObject,
|
||||
) -> Result<Vec<u8>, Error> {
|
||||
match self {
|
||||
Self::AesCbc(key_gen_params) => {
|
||||
subtle.encrypt_aes_cbc(key_gen_params, key, data, cx, result)
|
||||
},
|
||||
Self::AesCtr(key_gen_params) => {
|
||||
subtle.encrypt_decrypt_aes_ctr(key_gen_params, key, data, cx, result)
|
||||
},
|
||||
Self::AesCbc(params) => subtle.encrypt_aes_cbc(params, key, data, cx, result),
|
||||
Self::AesCtr(params) => subtle.encrypt_decrypt_aes_ctr(params, key, data, cx, result),
|
||||
Self::AesGcm(params) => subtle.encrypt_aes_gcm(params, key, data, cx, result),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2585,12 +2898,9 @@ impl EncryptionAlgorithm {
|
|||
result: MutableHandleObject,
|
||||
) -> Result<Vec<u8>, Error> {
|
||||
match self {
|
||||
Self::AesCbc(key_gen_params) => {
|
||||
subtle.decrypt_aes_cbc(key_gen_params, key, data, cx, result)
|
||||
},
|
||||
Self::AesCtr(key_gen_params) => {
|
||||
subtle.encrypt_decrypt_aes_ctr(key_gen_params, key, data, cx, result)
|
||||
},
|
||||
Self::AesCbc(params) => subtle.decrypt_aes_cbc(params, key, data, cx, result),
|
||||
Self::AesCtr(params) => subtle.encrypt_decrypt_aes_ctr(params, key, data, cx, result),
|
||||
Self::AesGcm(params) => subtle.decrypt_aes_gcm(params, key, data, cx, result),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2684,6 +2994,7 @@ impl KeyWrapAlgorithm {
|
|||
Self::AesKw => ALG_AES_KW,
|
||||
Self::AesCbc(key_gen_params) => &key_gen_params.name,
|
||||
Self::AesCtr(key_gen_params) => &key_gen_params.name,
|
||||
Self::AesGcm(_) => ALG_AES_GCM,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2704,7 +3015,10 @@ fn parse_jwk(bytes: &[u8], alg: ImportKeyAlgorithm, extractable: bool) -> Result
|
|||
}
|
||||
|
||||
match alg {
|
||||
ImportKeyAlgorithm::AesCbc | ImportKeyAlgorithm::AesCtr | ImportKeyAlgorithm::AesKw => {
|
||||
ImportKeyAlgorithm::AesCbc |
|
||||
ImportKeyAlgorithm::AesCtr |
|
||||
ImportKeyAlgorithm::AesKw |
|
||||
ImportKeyAlgorithm::AesGcm => {
|
||||
if kty != "oct" {
|
||||
return Err(Error::Data);
|
||||
}
|
||||
|
|
|
@ -92,6 +92,13 @@ dictionary AesCtrParams : Algorithm {
|
|||
required [EnforceRange] octet length;
|
||||
};
|
||||
|
||||
// https://w3c.github.io/webcrypto/#aes-gcm-params
|
||||
dictionary AesGcmParams : Algorithm {
|
||||
required BufferSource iv;
|
||||
BufferSource additionalData;
|
||||
[EnforceRange] octet tagLength;
|
||||
};
|
||||
|
||||
// https://w3c.github.io/webcrypto/#dfn-HmacImportParams
|
||||
dictionary HmacImportParams : Algorithm {
|
||||
required HashAlgorithmIdentifier hash;
|
||||
|
|
|
@ -1,22 +1,7 @@
|
|||
[algorithm-discards-context.https.window.html]
|
||||
expected: TIMEOUT
|
||||
[Context is discarded in encrypt]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Context is discarded in decrypt]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Context is discarded in sign]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Context is discarded in verify]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Context is discarded in wrapKey]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Context is discarded in unwrapKey]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Context is discarded in unwrapKey (2)]
|
||||
expected: TIMEOUT
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,110 +1,5 @@
|
|||
[symmetric_importKey.https.any.html]
|
||||
[Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [decrypt\])]
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign\])]
|
||||
|
@ -116,6 +11,15 @@
|
|||
[Good parameters: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -125,6 +29,15 @@
|
|||
[Good parameters: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -134,6 +47,15 @@
|
|||
[Good parameters: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -143,6 +65,15 @@
|
|||
[Good parameters: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -152,6 +83,15 @@
|
|||
[Good parameters: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -161,6 +101,15 @@
|
|||
[Good parameters: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -170,6 +119,15 @@
|
|||
[Good parameters: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -179,6 +137,15 @@
|
|||
[Good parameters: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -188,6 +155,15 @@
|
|||
[Good parameters: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -197,6 +173,15 @@
|
|||
[Good parameters: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -206,6 +191,15 @@
|
|||
[Good parameters: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -215,109 +209,7 @@
|
|||
[Good parameters: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
[Good parameters: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
|
@ -341,186 +233,9 @@
|
|||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[symmetric_importKey.https.any.worker.html]
|
||||
[Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [decrypt\])]
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign\])]
|
||||
|
@ -532,6 +247,15 @@
|
|||
[Good parameters: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -541,6 +265,15 @@
|
|||
[Good parameters: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -550,6 +283,15 @@
|
|||
[Good parameters: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -559,6 +301,15 @@
|
|||
[Good parameters: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -568,6 +319,15 @@
|
|||
[Good parameters: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -577,6 +337,15 @@
|
|||
[Good parameters: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -586,6 +355,15 @@
|
|||
[Good parameters: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -595,6 +373,15 @@
|
|||
[Good parameters: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -604,6 +391,15 @@
|
|||
[Good parameters: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -613,6 +409,15 @@
|
|||
[Good parameters: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -622,6 +427,15 @@
|
|||
[Good parameters: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign\])]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -631,109 +445,7 @@
|
|||
[Good parameters: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
[Good parameters: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Usages: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [\])]
|
||||
|
@ -756,75 +468,3 @@
|
|||
|
||||
[Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [encrypt, decrypt, encrypt, decrypt\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
||||
[Good parameters: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign, verify, sign, verify\])]
|
||||
expected: FAIL
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue