From b396ec4edd7f91b7cf50bda495e340b77ca89692 Mon Sep 17 00:00:00 2001 From: Arthur Gautier Date: Fri, 19 Sep 2025 20:40:01 -0700 Subject: [PATCH 1/2] bump aead to latest master, remove heapless --- .github/workflows/belt-dwp.yml | 1 - Cargo.lock | 43 ++++------------------------------ Cargo.toml | 4 ++-- aes-gcm-siv/Cargo.toml | 1 - aes-gcm-siv/src/lib.rs | 29 ++++++++++------------- aes-gcm/Cargo.toml | 1 - aes-gcm/src/lib.rs | 36 +++++++++++++--------------- aes-siv/Cargo.toml | 1 - aes-siv/src/lib.rs | 31 +++++++++++------------- ascon-aead128/Cargo.toml | 1 - ascon-aead128/src/lib.rs | 29 ++++++++++------------- belt-dwp/Cargo.toml | 1 - belt-dwp/src/lib.rs | 27 ++++++++++----------- ccm/Cargo.toml | 1 - chacha20poly1305/Cargo.toml | 1 - chacha20poly1305/src/lib.rs | 31 +++++++++++------------- deoxys/Cargo.toml | 1 - deoxys/src/lib.rs | 29 ++++++++++------------- eax/Cargo.toml | 1 - eax/src/lib.rs | 41 +++++++++++++++----------------- mgm/Cargo.toml | 1 - ocb3/Cargo.toml | 1 - xaes-256-gcm/Cargo.toml | 1 - xaes-256-gcm/src/lib.rs | 4 ++-- 24 files changed, 123 insertions(+), 194 deletions(-) diff --git a/.github/workflows/belt-dwp.yml b/.github/workflows/belt-dwp.yml index 1c43e249..7f5a17f5 100644 --- a/.github/workflows/belt-dwp.yml +++ b/.github/workflows/belt-dwp.yml @@ -78,5 +78,4 @@ jobs: - run: ${{ matrix.deps }} - run: cargo test --target ${{ matrix.target }} --release --no-default-features --lib - run: cargo test --target ${{ matrix.target }} --release - - run: cargo test --target ${{ matrix.target }} --release --features heapless - run: cargo test --target ${{ matrix.target }} --release --all-features diff --git a/Cargo.lock b/Cargo.lock index 5c4f9882..818b157b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6,14 +6,12 @@ version = 4 [[package]] name = "aead" version = "0.6.0-rc.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac8202ab55fcbf46ca829833f347a82a2a4ce0596f0304ac322c2d100030cd56" +source = "git+https://github.com/RustCrypto/traits.git#219861dfcde81d2410dec55e64065e4c573c7be6" dependencies = [ "arrayvec", "blobby", "bytes", "crypto-common", - "heapless", "inout", ] @@ -145,8 +143,9 @@ checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "blobby" -version = "0.4.0-pre.0" -source = "git+https://github.com/RustCrypto/utils#a7e36d36cfc6ae0d804605b91731c7359eb43a95" +version = "0.4.0-pre.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4db6eec520c1f3d3b060c5b67527c3d1d4122d9f0ff47edf0149a7ffa34cebb" [[package]] name = "block-buffer" @@ -158,12 +157,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - [[package]] name = "bytes" version = "1.10.1" @@ -246,8 +239,7 @@ dependencies = [ [[package]] name = "crypto-common" version = "0.2.0-rc.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8235645834fbc6832939736ce2f2d08192652269e11010a6240f61b908a1c6" +source = "git+https://github.com/RustCrypto/traits.git#219861dfcde81d2410dec55e64065e4c573c7be6" dependencies = [ "hybrid-array", "rand_core", @@ -326,25 +318,6 @@ dependencies = [ "polyval", ] -[[package]] -name = "hash32" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" -dependencies = [ - "byteorder", -] - -[[package]] -name = "heapless" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" -dependencies = [ - "hash32", - "stable_deref_trait", -] - [[package]] name = "hex-literal" version = "0.4.1" @@ -462,12 +435,6 @@ dependencies = [ "getrandom", ] -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - [[package]] name = "subtle" version = "2.6.1" diff --git a/Cargo.toml b/Cargo.toml index 544febda..052013a8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,5 +19,5 @@ members = [ aead-stream = { path = "aead-stream" } aes-gcm = { path = "aes-gcm" } -# https://github.com/RustCrypto/utils/pull/1187 -blobby = { git = "https://github.com/RustCrypto/utils" } +aead = { git = "https://github.com/RustCrypto/traits.git" } +crypto-common = { git = "https://github.com/RustCrypto/traits.git" } diff --git a/aes-gcm-siv/Cargo.toml b/aes-gcm-siv/Cargo.toml index a5a873bd..9645a828 100644 --- a/aes-gcm-siv/Cargo.toml +++ b/aes-gcm-siv/Cargo.toml @@ -34,7 +34,6 @@ alloc = ["aead/alloc"] arrayvec = ["aead/arrayvec"] bytes = ["aead/bytes"] os_rng = ["aead/os_rng", "rand_core"] -heapless = ["aead/heapless"] rand_core = ["aead/rand_core"] [package.metadata.docs.rs] diff --git a/aes-gcm-siv/src/lib.rs b/aes-gcm-siv/src/lib.rs index 070f8e5d..d183642f 100644 --- a/aes-gcm-siv/src/lib.rs +++ b/aes-gcm-siv/src/lib.rs @@ -38,17 +38,20 @@ //! methods accept any type that impls the [`aead::Buffer`] trait which //! contains the plaintext for encryption or ciphertext for decryption. //! -//! Note that if you enable the `heapless` feature of this crate, -//! you will receive an impl of [`aead::Buffer`] for `heapless::Vec` -//! (re-exported from the [`aead`] crate as [`aead::heapless::Vec`]), -//! which can then be passed as the `buffer` parameter to the in-place encrypt +//! Enabling the `arrayvec` feature of this crate will provide an impl of +//! [`aead::Buffer`] for `arrayvec::ArrayVec` (re-exported from the [`aead`] crate as +//! [`aead::arrayvec::ArrayVec`]), and enabling the `bytes` feature of this crate will +//! provide an impl of [`aead::Buffer`] for `bytes::BytesMut` (re-exported from the +//! [`aead`] crate as [`aead::bytes::BytesMut`]). +//! +//! It can then be passed as the `buffer` parameter to the in-place encrypt //! and decrypt methods: //! -#![cfg_attr(all(feature = "os_rng", feature = "heapless"), doc = "```")] -#![cfg_attr(not(all(feature = "os_rng", feature = "heapless")), doc = "```ignore")] +#![cfg_attr(all(feature = "os_rng", feature = "arrayvec"), doc = "```")] +#![cfg_attr(not(all(feature = "os_rng", feature = "arrayvec")), doc = "```ignore")] //! # fn main() -> Result<(), Box> { //! use aes_gcm_siv::{ -//! aead::{AeadInOut, KeyInit, rand_core::OsRng, heapless::Vec}, +//! aead::{AeadInOut, Buffer, KeyInit, rand_core::OsRng, arrayvec::ArrayVec}, //! Aes256GcmSiv, Nonce, // Or `Aes128GcmSiv` //! }; //! @@ -56,27 +59,21 @@ //! let cipher = Aes256GcmSiv::new(&key); //! let nonce = Nonce::from_slice(b"unique nonce"); // 96-bits; unique per message //! -//! let mut buffer: Vec = Vec::new(); // Note: buffer needs 16-bytes overhead for auth tag +//! let mut buffer: ArrayVec = ArrayVec::new(); // Note: buffer needs 16-bytes overhead for auth tag //! buffer.extend_from_slice(b"plaintext message"); //! //! // Encrypt `buffer` in-place, replacing the plaintext contents with ciphertext //! cipher.encrypt_in_place(nonce, b"", &mut buffer)?; //! //! // `buffer` now contains the message ciphertext -//! assert_ne!(&buffer, b"plaintext message"); +//! assert_ne!(buffer.as_ref(), b"plaintext message"); //! //! // Decrypt `buffer` in-place, replacing its ciphertext context with the original plaintext //! cipher.decrypt_in_place(nonce, b"", &mut buffer)?; -//! assert_eq!(&buffer, b"plaintext message"); +//! assert_eq!(buffer.as_ref(), b"plaintext message"); //! # Ok(()) //! # } //! ``` -//! -//! Similarly, enabling the `arrayvec` feature of this crate will provide an impl of -//! [`aead::Buffer`] for `arrayvec::ArrayVec` (re-exported from the [`aead`] crate as -//! [`aead::arrayvec::ArrayVec`]), and enabling the `bytes` feature of this crate will -//! provide an impl of [`aead::Buffer`] for `bytes::BytesMut` (re-exported from the -//! [`aead`] crate as [`aead::bytes::BytesMut`]). pub use aead::{self, AeadCore, AeadInOut, Error, Key, KeyInit, KeySizeUser}; diff --git a/aes-gcm/Cargo.toml b/aes-gcm/Cargo.toml index fe75c3aa..48967dfb 100644 --- a/aes-gcm/Cargo.toml +++ b/aes-gcm/Cargo.toml @@ -35,7 +35,6 @@ alloc = ["aead/alloc"] arrayvec = ["aead/arrayvec"] bytes = ["aead/bytes"] os_rng = ["aead/os_rng", "rand_core"] -heapless = ["aead/heapless"] rand_core = ["aead/rand_core"] [package.metadata.docs.rs] diff --git a/aes-gcm/src/lib.rs b/aes-gcm/src/lib.rs index 90d41b64..def1bf4c 100644 --- a/aes-gcm/src/lib.rs +++ b/aes-gcm/src/lib.rs @@ -12,8 +12,8 @@ //! //! Simple usage (allocating, no associated data): //! -#![cfg_attr(all(feature = "os_rng", feature = "heapless"), doc = "```")] -#![cfg_attr(not(all(feature = "os_rng", feature = "heapless")), doc = "```ignore")] +#![cfg_attr(feature = "os_rng", doc = "```")] +#![cfg_attr(not(feature = "os_rng"), doc = "```ignore")] //! use aes_gcm::{ //! aead::{Aead, AeadCore, KeyInit, rand_core::OsRng}, //! Aes256Gcm, Nonce, Key // Or `Aes128Gcm` @@ -58,17 +58,20 @@ //! methods accept any type that impls the [`aead::Buffer`] trait which //! contains the plaintext for encryption or ciphertext for decryption. //! -//! Note that if you enable the `heapless` feature of this crate, -//! you will receive an impl of [`aead::Buffer`] for `heapless::Vec` -//! (re-exported from the [`aead`] crate as [`aead::heapless::Vec`]), -//! which can then be passed as the `buffer` parameter to the in-place encrypt +//! Enabling the `arrayvec` feature of this crate will provide an impl of +//! [`aead::Buffer`] for `arrayvec::ArrayVec` (re-exported from the [`aead`] crate as +//! [`aead::arrayvec::ArrayVec`]), and enabling the `bytes` feature of this crate will +//! provide an impl of [`aead::Buffer`] for `bytes::BytesMut` (re-exported from the +//! [`aead`] crate as [`aead::bytes::BytesMut`]). +//! +//! It can then be passed as the `buffer` parameter to the in-place encrypt //! and decrypt methods: //! -#![cfg_attr(all(feature = "os_rng", feature = "heapless"), doc = "```")] -#![cfg_attr(not(all(feature = "os_rng", feature = "heapless")), doc = "```ignore")] +#![cfg_attr(all(feature = "os_rng", feature = "arrayvec"), doc = "```")] +#![cfg_attr(not(all(feature = "os_rng", feature = "arrayvec")), doc = "```ignore")] //! # fn main() -> Result<(), Box> { //! use aes_gcm::{ -//! aead::{AeadCore, AeadInOut, KeyInit, rand_core::OsRng, heapless::Vec}, +//! aead::{AeadCore, AeadInOut, KeyInit, rand_core::OsRng, arrayvec::ArrayVec}, //! Aes256Gcm, Nonce, // Or `Aes128Gcm` //! }; //! @@ -76,27 +79,20 @@ //! let cipher = Aes256Gcm::new(&key); //! let nonce = Aes256Gcm::generate_nonce().expect("generate nonce"); // 96-bits; unique per message //! -//! let mut buffer: Vec = Vec::new(); // Note: buffer needs 16-bytes overhead for auth tag -//! buffer.extend_from_slice(b"plaintext message"); +//! let mut buffer: ArrayVec = ArrayVec::new(); // Note: buffer needs 16-bytes overhead for auth tag +//! buffer.try_extend_from_slice(b"plaintext message").unwrap(); //! //! // Encrypt `buffer` in-place, replacing the plaintext contents with ciphertext //! cipher.encrypt_in_place(&nonce, b"", &mut buffer)?; //! //! // `buffer` now contains the message ciphertext -//! assert_ne!(&buffer, b"plaintext message"); +//! assert_ne!(buffer.as_ref(), b"plaintext message"); //! //! // Decrypt `buffer` in-place, replacing its ciphertext context with the original plaintext //! cipher.decrypt_in_place(&nonce, b"", &mut buffer)?; -//! assert_eq!(&buffer, b"plaintext message"); +//! assert_eq!(buffer.as_ref(), b"plaintext message"); //! # Ok(()) //! # } -//! ``` -//! -//! Similarly, enabling the `arrayvec` feature of this crate will provide an impl of -//! [`aead::Buffer`] for `arrayvec::ArrayVec` (re-exported from the [`aead`] crate as -//! [`aead::arrayvec::ArrayVec`]), and enabling the `bytes` feature of this crate will -//! provide an impl of [`aead::Buffer`] for `bytes::BytesMut` (re-exported from the -//! [`aead`] crate as [`aead::bytes::BytesMut`]). pub use aead::{self, AeadCore, AeadInOut, Error, Key, KeyInit, KeySizeUser}; diff --git a/aes-siv/Cargo.toml b/aes-siv/Cargo.toml index 83bc2169..0f196759 100644 --- a/aes-siv/Cargo.toml +++ b/aes-siv/Cargo.toml @@ -40,7 +40,6 @@ alloc = ["aead/alloc"] arrayvec = ["aead/arrayvec"] bytes = ["aead/bytes"] os_rng = ["aead/os_rng", "rand_core"] -heapless = ["aead/heapless"] rand_core = ["aead/rand_core"] [package.metadata.docs.rs] diff --git a/aes-siv/src/lib.rs b/aes-siv/src/lib.rs index dc05de90..391532dd 100644 --- a/aes-siv/src/lib.rs +++ b/aes-siv/src/lib.rs @@ -38,17 +38,20 @@ //! methods accept any type that impls the [`aead::Buffer`] trait which //! contains the plaintext for encryption or ciphertext for decryption. //! -//! Note that if you enable the `heapless` feature of this crate, -//! you will receive an impl of [`aead::Buffer`] for `heapless::Vec` -//! (re-exported from the [`aead`] crate as [`aead::heapless::Vec`]), -//! which can then be passed as the `buffer` parameter to the in-place encrypt +//! Enabling the `arrayvec` feature of this crate will provide an impl of +//! [`aead::Buffer`] for `arrayvec::ArrayVec` (re-exported from the [`aead`] crate as +//! [`aead::arrayvec::ArrayVec`]), and enabling the `bytes` feature of this crate will +//! provide an impl of [`aead::Buffer`] for `bytes::BytesMut` (re-exported from the +//! [`aead`] crate as [`aead::bytes::BytesMut`]). +//! +//! It can then be passed as the `buffer` parameter to the in-place encrypt //! and decrypt methods: //! -#![cfg_attr(all(feature = "os_rng", feature = "heapless"), doc = "```")] -#![cfg_attr(not(all(feature = "os_rng", feature = "heapless")), doc = "```ignore")] +#![cfg_attr(all(feature = "os_rng", feature = "arrayvec"), doc = "```")] +#![cfg_attr(not(all(feature = "os_rng", feature = "arrayvec")), doc = "```ignore")] //! # fn main() -> Result<(), Box> { //! use aes_siv::{ -//! aead::{AeadCore, AeadInOut, KeyInit, rand_core::OsRng, heapless::Vec}, +//! aead::{AeadCore, AeadInOut, KeyInit, rand_core::OsRng, arrayvec::ArrayVec}, //! Aes256SivAead, Nonce, // Or `Aes128SivAead` //! }; //! @@ -56,27 +59,21 @@ //! let cipher = Aes256SivAead::new(&key); //! let nonce = Aes256SivAead::generate_nonce().expect("Generate nonce"); // 128-bits; unique per message //! -//! let mut buffer: Vec = Vec::new(); // Note: buffer needs 16-bytes overhead for auth tag -//! buffer.extend_from_slice(b"plaintext message"); +//! let mut buffer: ArrayVec = ArrayVec::new(); // Note: buffer needs 16-bytes overhead for auth tag +//! buffer.try_extend_from_slice(b"plaintext message").unwrap(); //! //! // Encrypt `buffer` in-place, replacing the plaintext contents with ciphertext //! cipher.encrypt_in_place(&nonce, b"", &mut buffer)?; //! //! // `buffer` now contains the message ciphertext -//! assert_ne!(&buffer, b"plaintext message"); +//! assert_ne!(buffer.as_ref(), b"plaintext message"); //! //! // Decrypt `buffer` in-place, replacing its ciphertext context with the original plaintext //! cipher.decrypt_in_place(&nonce, b"", &mut buffer)?; -//! assert_eq!(&buffer, b"plaintext message"); +//! assert_eq!(buffer.as_ref(), b"plaintext message"); //! # Ok(()) //! # } //! ``` -//! -//! Similarly, enabling the `arrayvec` feature of this crate will provide an impl of -//! [`aead::Buffer`] for `arrayvec::ArrayVec` (re-exported from the [`aead`] crate as -//! [`aead::arrayvec::ArrayVec`]), and enabling the `bytes` feature of this crate will -//! provide an impl of [`aead::Buffer`] for `bytes::BytesMut` (re-exported from the -//! [`aead`] crate as [`aead::bytes::BytesMut`]). #[cfg(feature = "alloc")] extern crate alloc; diff --git a/ascon-aead128/Cargo.toml b/ascon-aead128/Cargo.toml index 3fe2e48d..fe3762ff 100644 --- a/ascon-aead128/Cargo.toml +++ b/ascon-aead128/Cargo.toml @@ -26,7 +26,6 @@ alloc = ["aead/alloc"] arrayvec = ["aead/arrayvec"] bytes = ["aead/bytes"] os_rng = ["aead/os_rng", "rand_core"] -heapless = ["aead/heapless"] rand_core = ["aead/rand_core"] zeroize = ["dep:zeroize", "ascon/zeroize"] diff --git a/ascon-aead128/src/lib.rs b/ascon-aead128/src/lib.rs index 3cff18ac..62ab84e5 100644 --- a/ascon-aead128/src/lib.rs +++ b/ascon-aead128/src/lib.rs @@ -62,43 +62,40 @@ //! methods accept any type that impls the [`aead::Buffer`] trait which //! contains the plaintext for encryption or ciphertext for decryption. //! -//! Note that if you enable the `heapless` feature of this crate, -//! you will receive an impl of [`aead::Buffer`] for `heapless::Vec` -//! (re-exported from the [`aead`] crate as [`aead::heapless::Vec`]), -//! which can then be passed as the `buffer` parameter to the in-place encrypt +//! Enabling the `arrayvec` feature of this crate will provide an impl of +//! [`aead::Buffer`] for `arrayvec::ArrayVec` (re-exported from the [`aead`] crate as +//! [`aead::arrayvec::ArrayVec`]), and enabling the `bytes` feature of this crate will +//! provide an impl of [`aead::Buffer`] for `bytes::BytesMut` (re-exported from the +//! [`aead`] crate as [`aead::bytes::BytesMut`]). +//! +//! It can then be passed as the `buffer` parameter to the in-place encrypt //! and decrypt methods: //! //! ``` -//! # #[cfg(feature = "heapless")] { +//! # #[cfg(feature = "arrayvec")] { //! use ascon_aead128::{AsconAead128, Key, Nonce}; //! use ascon_aead128::aead::{AeadInOut, KeyInit}; -//! use ascon_aead128::aead::heapless::Vec; +//! use ascon_aead128::aead::arrayvec::ArrayVec; //! //! let key = Key::::from_slice(b"very secret key."); //! let cipher = AsconAead128::new(key); //! //! let nonce = Nonce::::from_slice(b"unique nonce 012"); // 128-bits; unique per message //! -//! let mut buffer: Vec = Vec::new(); // Buffer needs 16-bytes overhead for authentication tag -//! buffer.extend_from_slice(b"plaintext message"); +//! let mut buffer: ArrayVec = ArrayVec::new(); // Buffer needs 16-bytes overhead for authentication tag +//! buffer.try_extend_from_slice(b"plaintext message").unwrap(); //! //! // Encrypt `buffer` in-place, replacing the plaintext contents with ciphertext //! cipher.encrypt_in_place(nonce, b"", &mut buffer).expect("encryption failure!"); //! //! // `buffer` now contains the message ciphertext -//! assert_ne!(&buffer, b"plaintext message"); +//! assert_ne!(buffer.as_ref(), b"plaintext message"); //! //! // Decrypt `buffer` in-place, replacing its ciphertext context with the original plaintext //! cipher.decrypt_in_place(nonce, b"", &mut buffer).expect("decryption failure!"); -//! assert_eq!(&buffer, b"plaintext message"); +//! assert_eq!(buffer.as_ref(), b"plaintext message"); //! # } //! ``` -//! -//! Similarly, enabling the `arrayvec` feature of this crate will provide an impl of -//! [`aead::Buffer`] for `arrayvec::ArrayVec` (re-exported from the [`aead`] crate as -//! [`aead::arrayvec::ArrayVec`]), and enabling the `bytes` feature of this crate will -//! provide an impl of [`aead::Buffer`] for `bytes::BytesMut` (re-exported from the -//! [`aead`] crate as [`aead::bytes::BytesMut`]). #[cfg(feature = "zeroize")] pub use zeroize; diff --git a/belt-dwp/Cargo.toml b/belt-dwp/Cargo.toml index 1ef128e3..c3016ec9 100644 --- a/belt-dwp/Cargo.toml +++ b/belt-dwp/Cargo.toml @@ -29,7 +29,6 @@ alloc = ["aead/alloc"] arrayvec = ["aead/arrayvec"] bytes = ["aead/bytes"] os_rng = ["aead/os_rng", "rand_core"] -heapless = ["aead/heapless"] rand_core = ["aead/rand_core"] reduced-round = [] zeroize = ["dep:zeroize", "belt-ctr/zeroize"] diff --git a/belt-dwp/src/lib.rs b/belt-dwp/src/lib.rs index 0f404115..899263e6 100644 --- a/belt-dwp/src/lib.rs +++ b/belt-dwp/src/lib.rs @@ -13,7 +13,7 @@ //! //! ``` //! # fn main() -> Result<(), Box> { -//! # #[cfg(all(feature = "os_rng", feature = "heapless"))] { +//! # #[cfg(feature = "os_rng")] { //! use belt_dwp::{ //! aead::{Aead, AeadCore, KeyInit}, Nonce, BeltDwp //! }; @@ -36,17 +36,18 @@ //! methods accept any type that impls the [`aead::Buffer`] trait which //! contains the plaintext for encryption or ciphertext for decryption. //! -//! Note that if you enable the `heapless` feature of this crate, -//! you will receive an impl of [`aead::Buffer`] for `heapless::Vec` -//! (re-exported from the [`aead`] crate as [`aead::heapless::Vec`]), -//! which can then be passed as the `buffer` parameter to the in-place encrypt +//! Enabling the `arrayvec` feature of this crate will provide an impl of +//! [`aead::Buffer`] for `arrayvec::ArrayVec` (re-exported from the [`aead`] crate as +//! [`aead::arrayvec::ArrayVec`]). +//! +//! It can then be passed as the `buffer` parameter to the in-place encrypt //! and decrypt methods: //! //! ``` //! # fn main() -> Result<(), Box> { -//! # #[cfg(all(feature = "os_rng", feature = "heapless"))] { +//! # #[cfg(all(feature = "os_rng", feature = "arrayvec"))] { //! use belt_dwp::{ -//! aead::{AeadInOut, KeyInit, heapless::Vec}, +//! aead::{AeadInOut, KeyInit, arrayvec::ArrayVec}, //! Nonce, BeltDwp //! }; //! @@ -54,24 +55,20 @@ //! let cipher = BeltDwp::new(&key); //! let nonce = Nonce::try_from(&b"unique nonce1234"[..]).unwrap(); // 128-bits; unique per message //! -//! let mut buffer: Vec = Vec::new(); // Note: buffer needs 16-bytes overhead for auth tag -//! buffer.extend_from_slice(b"plaintext message"); +//! let mut buffer: ArrayVec = ArrayVec::new(); // Note: buffer needs 16-bytes overhead for auth tag +//! buffer.try_extend_from_slice(b"plaintext message").unwrap(); //! //! // Encrypt `buffer` in-place, replacing the plaintext contents with ciphertext //! cipher.encrypt_in_place(&nonce, b"", &mut buffer)?; //! //! // `buffer` now contains the message ciphertext -//! assert_ne!(&buffer, b"plaintext message"); +//! assert_ne!(buffer.as_ref(), b"plaintext message"); //! //! // Decrypt `buffer` in-place, replacing its ciphertext context with the original plaintext //! cipher.decrypt_in_place(&nonce, b"", &mut buffer)?; -//! assert_eq!(&buffer, b"plaintext message"); +//! assert_eq!(buffer.as_ref(), b"plaintext message"); //! # }; Ok(()) } //! ``` -//! -//! Similarly, enabling the `arrayvec` feature of this crate will provide an impl of -//! [`aead::Buffer`] for `arrayvec::ArrayVec` (re-exported from the [`aead`] crate as -//! [`aead::arrayvec::ArrayVec`]). pub use aead::{self, AeadCore, AeadInOut, Error, Key, KeyInit, KeySizeUser, Tag}; pub use belt_block::BeltBlock; diff --git a/ccm/Cargo.toml b/ccm/Cargo.toml index 21f71c31..ebe9a796 100644 --- a/ccm/Cargo.toml +++ b/ccm/Cargo.toml @@ -30,5 +30,4 @@ alloc = ["aead/alloc"] arrayvec = ["aead/arrayvec"] bytes = ["aead/bytes"] os_rng = ["aead/os_rng", "rand_core"] -heapless = ["aead/heapless"] rand_core = ["aead/rand_core"] diff --git a/chacha20poly1305/Cargo.toml b/chacha20poly1305/Cargo.toml index c0d01e47..79c0905d 100644 --- a/chacha20poly1305/Cargo.toml +++ b/chacha20poly1305/Cargo.toml @@ -35,7 +35,6 @@ alloc = ["aead/alloc"] arrayvec = ["aead/arrayvec"] bytes = ["aead/bytes"] os_rng = ["aead/os_rng", "rand_core"] -heapless = ["aead/heapless"] rand_core = ["aead/rand_core"] reduced-round = [] zeroize = ["dep:zeroize", "chacha20/zeroize"] diff --git a/chacha20poly1305/src/lib.rs b/chacha20poly1305/src/lib.rs index d829f8a7..7625356b 100644 --- a/chacha20poly1305/src/lib.rs +++ b/chacha20poly1305/src/lib.rs @@ -50,17 +50,20 @@ //! methods accept any type that impls the [`aead::Buffer`] trait which //! contains the plaintext for encryption or ciphertext for decryption. //! -//! Note that if you enable the `heapless` feature of this crate, -//! you will receive an impl of [`aead::Buffer`] for `heapless::Vec` -//! (re-exported from the [`aead`] crate as [`aead::heapless::Vec`]), -//! which can then be passed as the `buffer` parameter to the in-place encrypt +//! Enabling the `arrayvec` feature of this crate will provide an impl of +//! [`aead::Buffer`] for `arrayvec::ArrayVec` (re-exported from the [`aead`] crate as +//! [`aead::arrayvec::ArrayVec`]), and enabling the `bytes` feature of this crate will +//! provide an impl of [`aead::Buffer`] for `bytes::BytesMut` (re-exported from the +//! [`aead`] crate as [`aead::bytes::BytesMut`]). +//! +//! It can then be passed as the `buffer` parameter to the in-place encrypt //! and decrypt methods: //! -#![cfg_attr(all(feature = "os_rng", feature = "heapless"), doc = "```")] -#![cfg_attr(not(all(feature = "os_rng", feature = "heapless")), doc = "```ignore")] +#![cfg_attr(all(feature = "os_rng", feature = "arrayvec"), doc = "```")] +#![cfg_attr(not(all(feature = "os_rng", feature = "arrayvec")), doc = "```ignore")] //! # fn main() -> Result<(), Box> { //! use chacha20poly1305::{ -//! aead::{AeadCore, AeadInOut, KeyInit, rand_core::OsRng, heapless::Vec}, +//! aead::{AeadCore, AeadInOut, KeyInit, rand_core::OsRng, arrayvec::ArrayVec}, //! ChaCha20Poly1305, Nonce, //! }; //! @@ -68,28 +71,22 @@ //! let cipher = ChaCha20Poly1305::new(&key); //! let nonce = ChaCha20Poly1305::generate_nonce().expect("Generate nonce"); // 96-bits; unique per message //! -//! let mut buffer: Vec = Vec::new(); // Note: buffer needs 16-bytes overhead for auth tag -//! buffer.extend_from_slice(b"plaintext message"); +//! let mut buffer: ArrayVec = ArrayVec::new(); // Note: buffer needs 16-bytes overhead for auth tag +//! buffer.try_extend_from_slice(b"plaintext message").unwrap(); //! //! // Encrypt `buffer` in-place, replacing the plaintext contents with ciphertext //! cipher.encrypt_in_place(&nonce, b"", &mut buffer)?; //! //! // `buffer` now contains the message ciphertext -//! assert_ne!(&buffer, b"plaintext message"); +//! assert_ne!(buffer.as_ref(), b"plaintext message"); //! //! // Decrypt `buffer` in-place, replacing its ciphertext context with the original plaintext //! cipher.decrypt_in_place(&nonce, b"", &mut buffer)?; -//! assert_eq!(&buffer, b"plaintext message"); +//! assert_eq!(buffer.as_ref(), b"plaintext message"); //! # Ok(()) //! # } //! ``` //! -//! Similarly, enabling the `arrayvec` feature of this crate will provide an impl of -//! [`aead::Buffer`] for `arrayvec::ArrayVec` (re-exported from the [`aead`] crate as -//! [`aead::arrayvec::ArrayVec`]), and enabling the `bytes` feature of this crate will -//! provide an impl of [`aead::Buffer`] for `bytes::BytesMut` (re-exported from the -//! [`aead`] crate as [`aead::bytes::BytesMut`]). -//! //! ## [`XChaCha20Poly1305`] //! //! ChaCha20Poly1305 variant with an extended 192-bit (24-byte) nonce. diff --git a/deoxys/Cargo.toml b/deoxys/Cargo.toml index 3c510a7b..070f910a 100644 --- a/deoxys/Cargo.toml +++ b/deoxys/Cargo.toml @@ -33,7 +33,6 @@ alloc = ["aead/alloc"] arrayvec = ["aead/arrayvec"] bytes = ["aead/bytes"] os_rng = ["aead/os_rng", "rand_core"] -heapless = ["aead/heapless"] rand_core = ["aead/rand_core"] [package.metadata.docs.rs] diff --git a/deoxys/src/lib.rs b/deoxys/src/lib.rs index 4d9f92c6..59a0eacd 100644 --- a/deoxys/src/lib.rs +++ b/deoxys/src/lib.rs @@ -66,43 +66,40 @@ //! methods accept any type that impls the [`aead::Buffer`] trait which //! contains the plaintext for encryption or ciphertext for decryption. //! -//! Note that if you enable the `heapless` feature of this crate, -//! you will receive an impl of [`aead::Buffer`] for `heapless::Vec` -//! (re-exported from the [`aead`] crate as [`aead::heapless::Vec`]), -//! which can then be passed as the `buffer` parameter to the in-place encrypt +//! Enabling the `arrayvec` feature of this crate will provide an impl of +//! [`aead::Buffer`] for `arrayvec::ArrayVec` (re-exported from the [`aead`] crate as +//! [`aead::arrayvec::ArrayVec`]), and enabling the `bytes` feature of this crate will +//! provide an impl of [`aead::Buffer`] for `bytes::BytesMut` (re-exported from the +//! [`aead`] crate as [`aead::bytes::BytesMut`]). +//! +//! It can then be passed as the `buffer` parameter to the in-place encrypt //! and decrypt methods: //! //! ``` -//! # #[cfg(feature = "heapless")] +//! # #[cfg(feature = "arrayvec")] //! # { //! use deoxys::{DeoxysII256, Nonce}; // Can be `DeoxysI128`, `DeoxysI256`, `DeoxysII128` of `DeoxysII256` -//! use deoxys::aead::{AeadCore, AeadInOut, KeyInit, rand_core::OsRng, heapless::Vec}; +//! use deoxys::aead::{AeadCore, AeadInOut, KeyInit, rand_core::OsRng, arrayvec::ArrayVec}; //! //! let key = DeoxysII256::generate_key().expect("generate key"); //! let cipher = DeoxysII256::new(&key); //! //! let nonce = DeoxysII256::generate_nonce().expect("generate nonce"); // 120-bits; unique per message //! -//! let mut buffer: Vec = Vec::new(); // Buffer needs 16-bytes overhead for tag -//! buffer.extend_from_slice(b"plaintext message"); +//! let mut buffer: ArrayVec = ArrayVec::new(); // Buffer needs 16-bytes overhead for tag +//! buffer.try_extend_from_slice(b"plaintext message").unwrap(); //! //! // Encrypt `buffer` in-place, replacing the plaintext contents with ciphertext //! cipher.encrypt_in_place(&nonce, b"", &mut buffer).expect("encryption failure!"); //! //! // `buffer` now contains the message ciphertext -//! assert_ne!(&buffer, b"plaintext message"); +//! assert_ne!(buffer.as_ref(), b"plaintext message"); //! //! // Decrypt `buffer` in-place, replacing its ciphertext context with the original plaintext //! cipher.decrypt_in_place(&nonce, b"", &mut buffer).expect("decryption failure!"); -//! assert_eq!(&buffer, b"plaintext message"); +//! assert_eq!(buffer.as_ref(), b"plaintext message"); //! # } //! ``` -//! -//! Similarly, enabling the `arrayvec` feature of this crate will provide an impl of -//! [`aead::Buffer`] for `arrayvec::ArrayVec` (re-exported from the [`aead`] crate as -//! [`aead::arrayvec::ArrayVec`]), and enabling the `bytes` feature of this crate will -//! provide an impl of [`aead::Buffer`] for `bytes::BytesMut` (re-exported from the -//! [`aead`] crate as [`aead::bytes::BytesMut`]). /// Deoxys-BC implementations. mod deoxys_bc; diff --git a/eax/Cargo.toml b/eax/Cargo.toml index 855bb269..aacba994 100644 --- a/eax/Cargo.toml +++ b/eax/Cargo.toml @@ -36,7 +36,6 @@ alloc = ["aead/alloc"] arrayvec = ["aead/arrayvec"] bytes = ["aead/bytes"] os_rng = ["aead/os_rng", "rand_core"] -heapless = ["aead/heapless"] rand_core = ["aead/rand_core"] [package.metadata.docs.rs] diff --git a/eax/src/lib.rs b/eax/src/lib.rs index 1abc7c64..0e11b16e 100644 --- a/eax/src/lib.rs +++ b/eax/src/lib.rs @@ -42,20 +42,23 @@ //! methods accept any type that impls the [`aead::Buffer`] trait which //! contains the plaintext for encryption or ciphertext for decryption. //! -//! Note that if you enable the `heapless` feature of this crate, -//! you will receive an impl of [`aead::Buffer`] for `heapless::Vec` -//! (re-exported from the [`aead`] crate as [`aead::heapless::Vec`]), -//! which can then be passed as the `buffer` parameter to the in-place encrypt +//! Enabling the `arrayvec` feature of this crate will provide an impl of +//! [`aead::Buffer`] for `arrayvec::ArrayVec` (re-exported from the [`aead`] crate as +//! [`aead::arrayvec::ArrayVec`]), and enabling the `bytes` feature of this crate will +//! provide an impl of [`aead::Buffer`] for `bytes::BytesMut` (re-exported from the +//! [`aead`] crate as [`aead::bytes::BytesMut`]). +//! +//! It can then be passed as the `buffer` parameter to the in-place encrypt //! and decrypt methods: //! //! ``` -//! # #[cfg(feature = "heapless")] +//! # #[cfg(feature = "arrayvec")] //! # { //! use aes::Aes256; //! use eax::Eax; //! use eax::aead::{ //! array::Array, -//! heapless::Vec, +//! arrayvec::ArrayVec, //! AeadCore, AeadInOut, KeyInit, rand_core::OsRng //! }; //! @@ -66,39 +69,33 @@ //! //! let nonce = Aes256Eax::generate_nonce().expect("generate nonce"); // 128-bits; unique per message //! -//! let mut buffer: Vec = Vec::new(); -//! buffer.extend_from_slice(b"plaintext message"); +//! let mut buffer: ArrayVec = ArrayVec::new(); +//! buffer.try_extend_from_slice(b"plaintext message").unwrap(); //! //! // Encrypt `buffer` in-place, replacing the plaintext contents with ciphertext //! cipher.encrypt_in_place(&nonce, b"", &mut buffer).expect("encryption failure!"); //! //! // `buffer` now contains the message ciphertext -//! assert_ne!(&buffer, b"plaintext message"); +//! assert_ne!(buffer.as_ref(), b"plaintext message"); //! //! // Decrypt `buffer` in-place, replacing its ciphertext context with the original plaintext //! cipher.decrypt_in_place(&nonce, b"", &mut buffer).expect("decryption failure!"); -//! assert_eq!(&buffer, b"plaintext message"); +//! assert_eq!(buffer.as_ref(), b"plaintext message"); //! # } //! ``` //! -//! Similarly, enabling the `arrayvec` feature of this crate will provide an impl of -//! [`aead::Buffer`] for `arrayvec::ArrayVec` (re-exported from the [`aead`] crate as -//! [`aead::arrayvec::ArrayVec`]), and enabling the `bytes` feature of this crate will -//! provide an impl of [`aead::Buffer`] for `bytes::BytesMut` (re-exported from the -//! [`aead`] crate as [`aead::bytes::BytesMut`]). -//! //! ## Custom Tag Length //! //! The tag for eax is usually 16 bytes long but it can be shortened if needed. //! The second generic argument of `Eax` can be set to the tag length: //! //! ``` -//! # #[cfg(feature = "heapless")] +//! # #[cfg(feature = "arrayvec")] //! # { //! use aes::Aes256; //! use eax::Eax; //! use eax::aead::{AeadInOut, KeyInit, array::Array}; -//! use eax::aead::heapless::Vec; +//! use eax::aead::arrayvec::ArrayVec; //! use eax::aead::consts::{U8, U128}; //! //! let key = Array::from_slice(b"an example very very secret key."); @@ -106,8 +103,8 @@ //! //! let nonce = Array::from_slice(b"my unique nonces"); // 128-bits; unique per message //! -//! let mut buffer: Vec = Vec::new(); -//! buffer.extend_from_slice(b"plaintext message"); +//! let mut buffer: ArrayVec = ArrayVec::new(); +//! buffer.try_extend_from_slice(b"plaintext message").unwrap(); //! //! // Encrypt `buffer` in-place, replacing the plaintext contents with ciphertext //! let tag = cipher.encrypt_inout_detached(nonce, b"", buffer.as_mut_slice().into()).expect("encryption failure!"); @@ -116,11 +113,11 @@ //! assert_eq!(tag.len(), 8); //! //! // `buffer` now contains the message ciphertext -//! assert_ne!(&buffer, b"plaintext message"); +//! assert_ne!(buffer.as_ref(), b"plaintext message"); //! //! // Decrypt `buffer` in-place, replacing its ciphertext context with the original plaintext //! cipher.decrypt_inout_detached(nonce, b"", buffer.as_mut_slice().into(), &tag).expect("decryption failure!"); -//! assert_eq!(&buffer, b"plaintext message"); +//! assert_eq!(buffer.as_ref(), b"plaintext message"); //! # } //! ``` diff --git a/mgm/Cargo.toml b/mgm/Cargo.toml index c4dc2b3a..e5b5bfa9 100644 --- a/mgm/Cargo.toml +++ b/mgm/Cargo.toml @@ -37,7 +37,6 @@ alloc = ["aead/alloc"] arrayvec = ["aead/arrayvec"] bytes = ["aead/bytes"] getrandom = ["aead/getrandom", "rand_core"] -heapless = ["aead/heapless"] rand_core = ["aead/rand_core"] stream = ["aead/stream"] force-soft = [] # Disable support for hardware intrinsics diff --git a/ocb3/Cargo.toml b/ocb3/Cargo.toml index 0fc6323c..9e65f538 100644 --- a/ocb3/Cargo.toml +++ b/ocb3/Cargo.toml @@ -35,7 +35,6 @@ alloc = ["aead/alloc", "aead-stream?/alloc"] arrayvec = ["aead/arrayvec"] bytes = ["aead/bytes"] os_rng = ["aead/os_rng", "rand_core"] -heapless = ["aead/heapless"] rand_core = ["aead/rand_core"] [package.metadata.docs.rs] diff --git a/xaes-256-gcm/Cargo.toml b/xaes-256-gcm/Cargo.toml index c1a01c91..6e32dff9 100644 --- a/xaes-256-gcm/Cargo.toml +++ b/xaes-256-gcm/Cargo.toml @@ -31,7 +31,6 @@ default = ["alloc", "os_rng"] alloc = ["aead/alloc", "aead-stream?/alloc", "aes-gcm/alloc"] arrayvec = ["aead/arrayvec", "aes-gcm/arrayvec"] os_rng = ["aead/os_rng", "aes-gcm/os_rng", "rand_core"] -heapless = ["aead/heapless", "aes-gcm/heapless"] rand_core = ["aead/rand_core", "aes-gcm/rand_core"] [package.metadata.docs.rs] diff --git a/xaes-256-gcm/src/lib.rs b/xaes-256-gcm/src/lib.rs index d36c8fc3..c5af4ec5 100644 --- a/xaes-256-gcm/src/lib.rs +++ b/xaes-256-gcm/src/lib.rs @@ -12,8 +12,8 @@ //! //! Simple usage (allocating, no associated data): //! -#![cfg_attr(all(feature = "os_rng", feature = "heapless"), doc = "```")] -#![cfg_attr(not(all(feature = "os_rng", feature = "heapless")), doc = "```ignore")] +#![cfg_attr(feature = "os_rng", doc = "```")] +#![cfg_attr(not(feature = "os_rng"), doc = "```ignore")] //! use xaes_256_gcm::{ //! Xaes256Gcm, Nonce, Key, //! aead::{Aead, AeadCore, KeyInit, rand_core::OsRng}, From 9be3575203c81e6ecab3524774d25d315b02d0c7 Mon Sep 17 00:00:00 2001 From: Arthur Gautier Date: Fri, 19 Sep 2025 20:40:01 -0700 Subject: [PATCH 2/2] split tests into `new_pass_test` and `new_fail_test` This uses the tool described in https://github.com/RustCrypto/traits/pull/2019 and this script: ``` find -name '*.blb' ! -path "./mgm/tests/data/*" -exec ./split-blobby {} \; -delete ``` and a sed script to split most of the tests: ``` for p in $(rg -l aead::new_test); do sed -i '/aead::new_test!/ { h; s/new_test!/new_pass_test!/; s/,/_pass,/; s/",/_pass",/; p; g; s/new_test!/new_fail_test!/; s/,/_fail,/; s/",/_fail",/ }' $p; done ``` --- Cargo.lock | 4 +- Cargo.toml | 1 + aes-gcm-siv/tests/aes128gcmsiv.rs | 3 +- aes-gcm-siv/tests/aes256gcmsiv.rs | 3 +- aes-gcm-siv/tests/data/wycheproof-128.blb | Bin 4712 -> 0 bytes .../tests/data/wycheproof-128_fail.blb | Bin 0 -> 840 bytes .../tests/data/wycheproof-128_pass.blb | Bin 0 -> 3827 bytes aes-gcm-siv/tests/data/wycheproof-256.blb | Bin 5376 -> 0 bytes .../tests/data/wycheproof-256_fail.blb | Bin 0 -> 919 bytes .../tests/data/wycheproof-256_pass.blb | Bin 0 -> 4391 bytes aes-gcm/tests/aes128gcm.rs | 3 +- aes-gcm/tests/aes256gcm.rs | 3 +- aes-gcm/tests/data/wycheproof-128.blb | Bin 4150 -> 0 bytes aes-gcm/tests/data/wycheproof-128_fail.blb | Bin 0 -> 1049 bytes aes-gcm/tests/data/wycheproof-128_pass.blb | Bin 0 -> 3050 bytes aes-gcm/tests/data/wycheproof-256.blb | Bin 4385 -> 0 bytes aes-gcm/tests/data/wycheproof-256_fail.blb | Bin 0 -> 1065 bytes aes-gcm/tests/data/wycheproof-256_pass.blb | Bin 0 -> 3270 bytes aes-siv/tests/data/wycheproof-256.blb | Bin 7074 -> 0 bytes aes-siv/tests/data/wycheproof-256_fail.blb | Bin 0 -> 3539 bytes aes-siv/tests/data/wycheproof-256_pass.blb | Bin 0 -> 3419 bytes aes-siv/tests/data/wycheproof-512.blb | Bin 7957 -> 0 bytes aes-siv/tests/data/wycheproof-512_fail.blb | Bin 0 -> 3571 bytes aes-siv/tests/data/wycheproof-512_pass.blb | Bin 0 -> 4303 bytes aes-siv/tests/siv.rs | 41 ++++-- ascon-aead128/tests/data/reference_kats.blb | Bin 42640 -> 0 bytes .../tests/data/reference_kats_fail.blb | Bin 0 -> 2 bytes .../tests/data/reference_kats_pass.blb | Bin 0 -> 41516 bytes ascon-aead128/tests/reference_kats.rs | 11 +- ccm/tests/data/cavp_ccm_aes128_10_13.blb | Bin 995 -> 0 bytes ccm/tests/data/cavp_ccm_aes128_10_13_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes128_10_13_pass.blb | Bin 0 -> 983 bytes ccm/tests/data/cavp_ccm_aes128_12_13.blb | Bin 1015 -> 0 bytes ccm/tests/data/cavp_ccm_aes128_12_13_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes128_12_13_pass.blb | Bin 0 -> 1003 bytes ccm/tests/data/cavp_ccm_aes128_14_13.blb | Bin 1035 -> 0 bytes ccm/tests/data/cavp_ccm_aes128_14_13_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes128_14_13_pass.blb | Bin 0 -> 1023 bytes ccm/tests/data/cavp_ccm_aes128_16_10.blb | Bin 1141 -> 0 bytes ccm/tests/data/cavp_ccm_aes128_16_10_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes128_16_10_pass.blb | Bin 0 -> 1129 bytes ccm/tests/data/cavp_ccm_aes128_16_11.blb | Bin 1151 -> 0 bytes ccm/tests/data/cavp_ccm_aes128_16_11_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes128_16_11_pass.blb | Bin 0 -> 1139 bytes ccm/tests/data/cavp_ccm_aes128_16_12.blb | Bin 1161 -> 0 bytes ccm/tests/data/cavp_ccm_aes128_16_12_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes128_16_12_pass.blb | Bin 0 -> 1149 bytes ccm/tests/data/cavp_ccm_aes128_16_13.blb | Bin 56527 -> 0 bytes ccm/tests/data/cavp_ccm_aes128_16_13_fail.blb | Bin 0 -> 2699 bytes ccm/tests/data/cavp_ccm_aes128_16_13_pass.blb | Bin 0 -> 53311 bytes ccm/tests/data/cavp_ccm_aes128_16_7.blb | Bin 4797 -> 0 bytes ccm/tests/data/cavp_ccm_aes128_16_7_fail.blb | Bin 0 -> 2459 bytes ccm/tests/data/cavp_ccm_aes128_16_7_pass.blb | Bin 0 -> 2477 bytes ccm/tests/data/cavp_ccm_aes128_16_8.blb | Bin 1121 -> 0 bytes ccm/tests/data/cavp_ccm_aes128_16_8_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes128_16_8_pass.blb | Bin 0 -> 1109 bytes ccm/tests/data/cavp_ccm_aes128_16_9.blb | Bin 1131 -> 0 bytes ccm/tests/data/cavp_ccm_aes128_16_9_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes128_16_9_pass.blb | Bin 0 -> 1119 bytes ccm/tests/data/cavp_ccm_aes128_4_13.blb | Bin 4243 -> 0 bytes ccm/tests/data/cavp_ccm_aes128_4_13_fail.blb | Bin 0 -> 2219 bytes ccm/tests/data/cavp_ccm_aes128_4_13_pass.blb | Bin 0 -> 2163 bytes ccm/tests/data/cavp_ccm_aes128_4_7.blb | Bin 2970 -> 0 bytes ccm/tests/data/cavp_ccm_aes128_4_7_fail.blb | Bin 0 -> 1979 bytes ccm/tests/data/cavp_ccm_aes128_4_7_pass.blb | Bin 0 -> 1139 bytes ccm/tests/data/cavp_ccm_aes128_6_13.blb | Bin 955 -> 0 bytes ccm/tests/data/cavp_ccm_aes128_6_13_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes128_6_13_pass.blb | Bin 0 -> 943 bytes ccm/tests/data/cavp_ccm_aes128_8_13.blb | Bin 975 -> 0 bytes ccm/tests/data/cavp_ccm_aes128_8_13_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes128_8_13_pass.blb | Bin 0 -> 963 bytes ccm/tests/data/cavp_ccm_aes192_10_13.blb | Bin 1003 -> 0 bytes ccm/tests/data/cavp_ccm_aes192_10_13_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes192_10_13_pass.blb | Bin 0 -> 991 bytes ccm/tests/data/cavp_ccm_aes192_12_13.blb | Bin 1023 -> 0 bytes ccm/tests/data/cavp_ccm_aes192_12_13_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes192_12_13_pass.blb | Bin 0 -> 1011 bytes ccm/tests/data/cavp_ccm_aes192_14_13.blb | Bin 1043 -> 0 bytes ccm/tests/data/cavp_ccm_aes192_14_13_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes192_14_13_pass.blb | Bin 0 -> 1031 bytes ccm/tests/data/cavp_ccm_aes192_16_10.blb | Bin 1149 -> 0 bytes ccm/tests/data/cavp_ccm_aes192_16_10_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes192_16_10_pass.blb | Bin 0 -> 1137 bytes ccm/tests/data/cavp_ccm_aes192_16_11.blb | Bin 1159 -> 0 bytes ccm/tests/data/cavp_ccm_aes192_16_11_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes192_16_11_pass.blb | Bin 0 -> 1147 bytes ccm/tests/data/cavp_ccm_aes192_16_12.blb | Bin 1169 -> 0 bytes ccm/tests/data/cavp_ccm_aes192_16_12_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes192_16_12_pass.blb | Bin 0 -> 1157 bytes ccm/tests/data/cavp_ccm_aes192_16_13.blb | Bin 56960 -> 0 bytes ccm/tests/data/cavp_ccm_aes192_16_13_fail.blb | Bin 0 -> 2731 bytes ccm/tests/data/cavp_ccm_aes192_16_13_pass.blb | Bin 0 -> 53748 bytes ccm/tests/data/cavp_ccm_aes192_16_7.blb | Bin 4837 -> 0 bytes ccm/tests/data/cavp_ccm_aes192_16_7_fail.blb | Bin 0 -> 2491 bytes ccm/tests/data/cavp_ccm_aes192_16_7_pass.blb | Bin 0 -> 2517 bytes ccm/tests/data/cavp_ccm_aes192_16_8.blb | Bin 1129 -> 0 bytes ccm/tests/data/cavp_ccm_aes192_16_8_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes192_16_8_pass.blb | Bin 0 -> 1117 bytes ccm/tests/data/cavp_ccm_aes192_16_9.blb | Bin 1139 -> 0 bytes ccm/tests/data/cavp_ccm_aes192_16_9_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes192_16_9_pass.blb | Bin 0 -> 1127 bytes ccm/tests/data/cavp_ccm_aes192_4_13.blb | Bin 4283 -> 0 bytes ccm/tests/data/cavp_ccm_aes192_4_13_fail.blb | Bin 0 -> 2251 bytes ccm/tests/data/cavp_ccm_aes192_4_13_pass.blb | Bin 0 -> 2203 bytes ccm/tests/data/cavp_ccm_aes192_4_7.blb | Bin 3002 -> 0 bytes ccm/tests/data/cavp_ccm_aes192_4_7_fail.blb | Bin 0 -> 2011 bytes ccm/tests/data/cavp_ccm_aes192_4_7_pass.blb | Bin 0 -> 1171 bytes ccm/tests/data/cavp_ccm_aes192_6_13.blb | Bin 963 -> 0 bytes ccm/tests/data/cavp_ccm_aes192_6_13_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes192_6_13_pass.blb | Bin 0 -> 951 bytes ccm/tests/data/cavp_ccm_aes192_8_13.blb | Bin 983 -> 0 bytes ccm/tests/data/cavp_ccm_aes192_8_13_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes192_8_13_pass.blb | Bin 0 -> 971 bytes ccm/tests/data/cavp_ccm_aes256_10_13.blb | Bin 1011 -> 0 bytes ccm/tests/data/cavp_ccm_aes256_10_13_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes256_10_13_pass.blb | Bin 0 -> 999 bytes ccm/tests/data/cavp_ccm_aes256_12_13.blb | Bin 1031 -> 0 bytes ccm/tests/data/cavp_ccm_aes256_12_13_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes256_12_13_pass.blb | Bin 0 -> 1019 bytes ccm/tests/data/cavp_ccm_aes256_14_13.blb | Bin 1051 -> 0 bytes ccm/tests/data/cavp_ccm_aes256_14_13_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes256_14_13_pass.blb | Bin 0 -> 1039 bytes ccm/tests/data/cavp_ccm_aes256_16_10.blb | Bin 1157 -> 0 bytes ccm/tests/data/cavp_ccm_aes256_16_10_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes256_16_10_pass.blb | Bin 0 -> 1145 bytes ccm/tests/data/cavp_ccm_aes256_16_11.blb | Bin 1167 -> 0 bytes ccm/tests/data/cavp_ccm_aes256_16_11_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes256_16_11_pass.blb | Bin 0 -> 1155 bytes ccm/tests/data/cavp_ccm_aes256_16_12.blb | Bin 1177 -> 0 bytes ccm/tests/data/cavp_ccm_aes256_16_12_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes256_16_12_pass.blb | Bin 0 -> 1165 bytes ccm/tests/data/cavp_ccm_aes256_16_13.blb | Bin 57486 -> 0 bytes ccm/tests/data/cavp_ccm_aes256_16_13_fail.blb | Bin 0 -> 2859 bytes ccm/tests/data/cavp_ccm_aes256_16_13_pass.blb | Bin 0 -> 54262 bytes ccm/tests/data/cavp_ccm_aes256_16_7.blb | Bin 4881 -> 0 bytes ccm/tests/data/cavp_ccm_aes256_16_7_fail.blb | Bin 0 -> 2619 bytes ccm/tests/data/cavp_ccm_aes256_16_7_pass.blb | Bin 0 -> 2557 bytes ccm/tests/data/cavp_ccm_aes256_16_8.blb | Bin 1137 -> 0 bytes ccm/tests/data/cavp_ccm_aes256_16_8_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes256_16_8_pass.blb | Bin 0 -> 1125 bytes ccm/tests/data/cavp_ccm_aes256_16_9.blb | Bin 1147 -> 0 bytes ccm/tests/data/cavp_ccm_aes256_16_9_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes256_16_9_pass.blb | Bin 0 -> 1135 bytes ccm/tests/data/cavp_ccm_aes256_4_13.blb | Bin 4327 -> 0 bytes ccm/tests/data/cavp_ccm_aes256_4_13_fail.blb | Bin 0 -> 2379 bytes ccm/tests/data/cavp_ccm_aes256_4_13_pass.blb | Bin 0 -> 2243 bytes ccm/tests/data/cavp_ccm_aes256_4_7.blb | Bin 3038 -> 0 bytes ccm/tests/data/cavp_ccm_aes256_4_7_fail.blb | Bin 0 -> 2139 bytes ccm/tests/data/cavp_ccm_aes256_4_7_pass.blb | Bin 0 -> 1203 bytes ccm/tests/data/cavp_ccm_aes256_6_13.blb | Bin 971 -> 0 bytes ccm/tests/data/cavp_ccm_aes256_6_13_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes256_6_13_pass.blb | Bin 0 -> 959 bytes ccm/tests/data/cavp_ccm_aes256_8_13.blb | Bin 991 -> 0 bytes ccm/tests/data/cavp_ccm_aes256_8_13_fail.blb | Bin 0 -> 2 bytes ccm/tests/data/cavp_ccm_aes256_8_13_pass.blb | Bin 0 -> 979 bytes ccm/tests/data/rfc3610_ccm_aes128_10_13.blb | Bin 996 -> 0 bytes .../data/rfc3610_ccm_aes128_10_13_fail.blb | Bin 0 -> 2 bytes .../data/rfc3610_ccm_aes128_10_13_pass.blb | Bin 0 -> 982 bytes ccm/tests/data/rfc3610_ccm_aes128_8_13.blb | Bin 972 -> 0 bytes .../data/rfc3610_ccm_aes128_8_13_fail.blb | Bin 0 -> 2 bytes .../data/rfc3610_ccm_aes128_8_13_pass.blb | Bin 0 -> 958 bytes ccm/tests/mod.rs | 132 ++++++++++++------ .../data/wycheproof_chacha20poly1305.blb | Bin 41626 -> 0 bytes .../data/wycheproof_chacha20poly1305_fail.blb | Bin 0 -> 2344 bytes .../data/wycheproof_chacha20poly1305_pass.blb | Bin 0 -> 39033 bytes .../data/wycheproof_xchacha20poly1305.blb | Bin 39296 -> 0 bytes .../wycheproof_xchacha20poly1305_fail.blb | Bin 0 -> 2356 bytes .../wycheproof_xchacha20poly1305_pass.blb | Bin 0 -> 36716 bytes chacha20poly1305/tests/lib.rs | 22 ++- eax/tests/aes128eax.rs | 3 +- eax/tests/data/aes128eax.blb | Bin 832 -> 0 bytes eax/tests/data/aes128eax_fail.blb | Bin 0 -> 2 bytes eax/tests/data/aes128eax_pass.blb | Bin 0 -> 820 bytes ocb3/tests/data/rfc7253_ocb_aes.blb | Bin 913 -> 0 bytes ocb3/tests/data/rfc7253_ocb_aes_fail.blb | Bin 0 -> 2 bytes ocb3/tests/data/rfc7253_ocb_aes_pass.blb | Bin 0 -> 895 bytes ocb3/tests/kats.rs | 3 +- 177 files changed, 158 insertions(+), 71 deletions(-) delete mode 100644 aes-gcm-siv/tests/data/wycheproof-128.blb create mode 100644 aes-gcm-siv/tests/data/wycheproof-128_fail.blb create mode 100644 aes-gcm-siv/tests/data/wycheproof-128_pass.blb delete mode 100644 aes-gcm-siv/tests/data/wycheproof-256.blb create mode 100644 aes-gcm-siv/tests/data/wycheproof-256_fail.blb create mode 100644 aes-gcm-siv/tests/data/wycheproof-256_pass.blb delete mode 100644 aes-gcm/tests/data/wycheproof-128.blb create mode 100644 aes-gcm/tests/data/wycheproof-128_fail.blb create mode 100644 aes-gcm/tests/data/wycheproof-128_pass.blb delete mode 100644 aes-gcm/tests/data/wycheproof-256.blb create mode 100644 aes-gcm/tests/data/wycheproof-256_fail.blb create mode 100644 aes-gcm/tests/data/wycheproof-256_pass.blb delete mode 100644 aes-siv/tests/data/wycheproof-256.blb create mode 100644 aes-siv/tests/data/wycheproof-256_fail.blb create mode 100644 aes-siv/tests/data/wycheproof-256_pass.blb delete mode 100644 aes-siv/tests/data/wycheproof-512.blb create mode 100644 aes-siv/tests/data/wycheproof-512_fail.blb create mode 100644 aes-siv/tests/data/wycheproof-512_pass.blb delete mode 100644 ascon-aead128/tests/data/reference_kats.blb create mode 100644 ascon-aead128/tests/data/reference_kats_fail.blb create mode 100644 ascon-aead128/tests/data/reference_kats_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes128_10_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_10_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_10_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes128_12_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_12_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_12_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes128_14_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_14_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_14_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes128_16_10.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_16_10_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_16_10_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes128_16_11.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_16_11_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_16_11_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes128_16_12.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_16_12_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_16_12_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes128_16_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_16_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_16_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes128_16_7.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_16_7_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_16_7_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes128_16_8.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_16_8_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_16_8_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes128_16_9.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_16_9_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_16_9_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes128_4_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_4_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_4_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes128_4_7.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_4_7_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_4_7_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes128_6_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_6_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_6_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes128_8_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_8_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes128_8_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes192_10_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_10_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_10_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes192_12_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_12_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_12_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes192_14_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_14_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_14_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes192_16_10.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_16_10_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_16_10_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes192_16_11.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_16_11_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_16_11_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes192_16_12.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_16_12_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_16_12_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes192_16_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_16_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_16_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes192_16_7.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_16_7_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_16_7_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes192_16_8.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_16_8_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_16_8_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes192_16_9.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_16_9_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_16_9_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes192_4_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_4_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_4_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes192_4_7.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_4_7_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_4_7_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes192_6_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_6_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_6_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes192_8_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_8_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes192_8_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes256_10_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_10_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_10_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes256_12_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_12_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_12_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes256_14_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_14_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_14_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes256_16_10.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_16_10_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_16_10_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes256_16_11.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_16_11_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_16_11_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes256_16_12.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_16_12_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_16_12_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes256_16_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_16_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_16_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes256_16_7.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_16_7_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_16_7_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes256_16_8.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_16_8_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_16_8_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes256_16_9.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_16_9_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_16_9_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes256_4_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_4_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_4_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes256_4_7.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_4_7_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_4_7_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes256_6_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_6_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_6_13_pass.blb delete mode 100644 ccm/tests/data/cavp_ccm_aes256_8_13.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_8_13_fail.blb create mode 100644 ccm/tests/data/cavp_ccm_aes256_8_13_pass.blb delete mode 100644 ccm/tests/data/rfc3610_ccm_aes128_10_13.blb create mode 100644 ccm/tests/data/rfc3610_ccm_aes128_10_13_fail.blb create mode 100644 ccm/tests/data/rfc3610_ccm_aes128_10_13_pass.blb delete mode 100644 ccm/tests/data/rfc3610_ccm_aes128_8_13.blb create mode 100644 ccm/tests/data/rfc3610_ccm_aes128_8_13_fail.blb create mode 100644 ccm/tests/data/rfc3610_ccm_aes128_8_13_pass.blb delete mode 100644 chacha20poly1305/tests/data/wycheproof_chacha20poly1305.blb create mode 100644 chacha20poly1305/tests/data/wycheproof_chacha20poly1305_fail.blb create mode 100644 chacha20poly1305/tests/data/wycheproof_chacha20poly1305_pass.blb delete mode 100644 chacha20poly1305/tests/data/wycheproof_xchacha20poly1305.blb create mode 100644 chacha20poly1305/tests/data/wycheproof_xchacha20poly1305_fail.blb create mode 100644 chacha20poly1305/tests/data/wycheproof_xchacha20poly1305_pass.blb delete mode 100644 eax/tests/data/aes128eax.blb create mode 100644 eax/tests/data/aes128eax_fail.blb create mode 100644 eax/tests/data/aes128eax_pass.blb delete mode 100644 ocb3/tests/data/rfc7253_ocb_aes.blb create mode 100644 ocb3/tests/data/rfc7253_ocb_aes_fail.blb create mode 100644 ocb3/tests/data/rfc7253_ocb_aes_pass.blb diff --git a/Cargo.lock b/Cargo.lock index 818b157b..9830ebef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6,7 +6,7 @@ version = 4 [[package]] name = "aead" version = "0.6.0-rc.2" -source = "git+https://github.com/RustCrypto/traits.git#219861dfcde81d2410dec55e64065e4c573c7be6" +source = "git+https://github.com/RustCrypto/traits.git#aae99a0014abd27bf73a31b2c810ffe0b86989bb" dependencies = [ "arrayvec", "blobby", @@ -239,7 +239,7 @@ dependencies = [ [[package]] name = "crypto-common" version = "0.2.0-rc.4" -source = "git+https://github.com/RustCrypto/traits.git#219861dfcde81d2410dec55e64065e4c573c7be6" +source = "git+https://github.com/RustCrypto/traits.git#aae99a0014abd27bf73a31b2c810ffe0b86989bb" dependencies = [ "hybrid-array", "rand_core", diff --git a/Cargo.toml b/Cargo.toml index 052013a8..382379e3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,5 +19,6 @@ members = [ aead-stream = { path = "aead-stream" } aes-gcm = { path = "aes-gcm" } +# https://github.com/RustCrypto/traits/pull/2019 aead = { git = "https://github.com/RustCrypto/traits.git" } crypto-common = { git = "https://github.com/RustCrypto/traits.git" } diff --git a/aes-gcm-siv/tests/aes128gcmsiv.rs b/aes-gcm-siv/tests/aes128gcmsiv.rs index 9d8ddc17..180f71f9 100644 --- a/aes-gcm-siv/tests/aes128gcmsiv.rs +++ b/aes-gcm-siv/tests/aes128gcmsiv.rs @@ -185,4 +185,5 @@ const TEST_VECTORS: &[TestVector<[u8; 16]>] = &[ tests!(Aes128GcmSiv, TEST_VECTORS); // Test vectors from Wycheproof -aead::new_test!(wycheproof, "wycheproof-128", Aes128GcmSiv); +aead::new_pass_test!(wycheproof_pass, "wycheproof-128_pass", Aes128GcmSiv); +aead::new_fail_test!(wycheproof_fail, "wycheproof-128_fail", Aes128GcmSiv); diff --git a/aes-gcm-siv/tests/aes256gcmsiv.rs b/aes-gcm-siv/tests/aes256gcmsiv.rs index d4ca791e..58719d65 100644 --- a/aes-gcm-siv/tests/aes256gcmsiv.rs +++ b/aes-gcm-siv/tests/aes256gcmsiv.rs @@ -185,4 +185,5 @@ const TEST_VECTORS: &[TestVector<[u8; 32]>] = &[ tests!(Aes256GcmSiv, TEST_VECTORS); // Test vectors from Wycheproof -aead::new_test!(wycheproof, "wycheproof-256", Aes256GcmSiv); +aead::new_pass_test!(wycheproof_pass, "wycheproof-256_pass", Aes256GcmSiv); +aead::new_fail_test!(wycheproof_fail, "wycheproof-256_fail", Aes256GcmSiv); diff --git a/aes-gcm-siv/tests/data/wycheproof-128.blb b/aes-gcm-siv/tests/data/wycheproof-128.blb deleted file mode 100644 index ef8716fb87af3e710735e2dd6455324331958b64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4712 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 Vs#l5nj_uIvkGcgnXpv{p{{eg431|QS diff --git a/aes-gcm-siv/tests/data/wycheproof-256_fail.blb b/aes-gcm-siv/tests/data/wycheproof-256_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..1ca0b0ca5c6092a450b160650c1a59d051c77adb GIT binary patch literal 919 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] = &[ tests!(Aes128Gcm, TEST_VECTORS); // Test vectors from Wycheproof -aead::new_test!(wycheproof, "wycheproof-128", Aes128Gcm); +aead::new_pass_test!(wycheproof_pass, "wycheproof-128_pass", Aes128Gcm); +aead::new_fail_test!(wycheproof_fail, "wycheproof-128_fail", Aes128Gcm); diff --git a/aes-gcm/tests/aes256gcm.rs b/aes-gcm/tests/aes256gcm.rs index 7f0ea0b5..b9910d32 100644 --- a/aes-gcm/tests/aes256gcm.rs +++ b/aes-gcm/tests/aes256gcm.rs @@ -3621,4 +3621,5 @@ const TEST_VECTORS: &[TestVector<[u8; 32], [u8; 12]>] = &[ tests!(Aes256Gcm, TEST_VECTORS); // Test vectors from Wycheproof -aead::new_test!(wycheproof, "wycheproof-256", Aes256Gcm); +aead::new_pass_test!(wycheproof_pass, "wycheproof-256_pass", Aes256Gcm); +aead::new_fail_test!(wycheproof_fail, "wycheproof-256_fail", Aes256Gcm); diff --git a/aes-gcm/tests/data/wycheproof-128.blb b/aes-gcm/tests/data/wycheproof-128.blb deleted file mode 100644 index 439c0c5f8d2c71d230df96429036a6d169ed98ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4150 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 diff --git a/aes-gcm/tests/data/wycheproof-128_fail.blb b/aes-gcm/tests/data/wycheproof-128_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..31a8013c7661c7d603bc33a7af82715a7197a605 GIT binary patch literal 1049 zcmZo*XXXhA32ayUql0Wpez)@9-i0+2}{H+A9*Czv7*Via{e#}nc(lRA!9a7xZ)03Q42AO*oaXCOe#%SlM1qRKt+wjC^}4xB4(_LV9A$Iw1CnRQ4tJNgxxyz z>L%y2Q-6w;TeRv_9-Lo;)lCd&0IQ<^XaK9C2$sJ#n_jhLa=8BrX504wyPIyd*6cOT PW`EIntol;BePR;;qgkub literal 0 HcmV?d00001 diff --git a/aes-gcm/tests/data/wycheproof-128_pass.blb b/aes-gcm/tests/data/wycheproof-128_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..854c459b31a1a19ed265a213bfd535d815f08e1d GIT binary patch literal 3050 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 literal 0 HcmV?d00001 diff --git a/aes-gcm/tests/data/wycheproof-256.blb b/aes-gcm/tests/data/wycheproof-256.blb deleted file mode 100644 index 629d65bb968e8be436abd4b944ffe4f42d54cfe1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4385 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 BEw}&x diff --git a/aes-gcm/tests/data/wycheproof-256_fail.blb b/aes-gcm/tests/data/wycheproof-256_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..ed43e2cc4e70124a8c6f33ac8fd22d70d4e2e63b GIT binary patch literal 1065 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 literal 0 HcmV?d00001 diff --git a/aes-siv/tests/data/wycheproof-256.blb b/aes-siv/tests/data/wycheproof-256.blb deleted file mode 100644 index 1e31f077aa0bd94bf55661831a56caf5ff137704..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7074 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 literal 0 HcmV?d00001 diff --git a/aes-siv/tests/data/wycheproof-256_pass.blb b/aes-siv/tests/data/wycheproof-256_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..9fcb1e3dbebb62d1163812b74d4a30f3be28d9c3 GIT binary patch literal 3419 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 literal 0 HcmV?d00001 diff --git a/aes-siv/tests/data/wycheproof-512.blb b/aes-siv/tests/data/wycheproof-512.blb deleted file mode 100644 index d4ca3b1aec6f2a9e29e92a724bc7ffca5644ba02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7957 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 D^om&X diff --git a/aes-siv/tests/data/wycheproof-512_fail.blb b/aes-siv/tests/data/wycheproof-512_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..7ae8ce1ab34e69d14fba4a8bdfdcd595cb56d3ed GIT binary patch literal 3571 zcmZpcVR2w!WMXDvWn<^yMC+6cQE@6%&_`l#-T_m6KOcR8m$^Ra4i{)Y8_` z)zddHG%_|ZH8Z!cw6eCbwX+vN7jSTNauz@r_U;M7=u=cOO^2FFw(Va7I|A`X# zyl(E-kF&t`=VG&88K3=Z#Mo~{to`q?*}o8<{Vl}Uzkyi$^S@vTe?@&f;m@*_i10Uv zAu{~)zwXG#h<`;rFMgcy&$8vkG=lMO5Svp$RQv<&e;Nk=2&F%u z{XgCllm0;V2V%3o6QBLL#Mu9aSo?wDe+?!7f&32){~uWMAISf}@L!2H|AG7u4FBx} z^B>6np!jD;&i_#REBdhIf2jSMZTRv()PD0;LirzNe;YRY`SID$PK^C5#M;mH7ODJ$ z`M+NZOZf-$e|s~Y@()iT+tNcgUFYx>VzVaX0ephVv|HNnicVg_nOsxIKvDsgZ z&;C+k><=W?eqjCE0mN}4Pq6+0)&E4-KQQ}I!XIWo*6@efk2m~b_Tvu!30&?1 zYnV^2{AqMBe#eRJRp9u)cX4Y$$>y2u1xI<$vphbkiW2|7y~STnxc>cGMa*SYu0ta8 zu*U!SMU&YDeWsqM&Ui1O$8l{x&iDtm!BGI%eiRWP2gQDLNv!sxE5d32e>4ELA5H8( ziv8%4SnWqwgwy`_r55>@Yqni$^WCR#eESJV{4ZR0il6(;vmgAsiZ)cw*@YVaEhZV$ z-mmCb$*#O6s&sEQ_W0j$_f18f@vH4D;uF#X%U9x#|GY0d-v#|O4`)APztGLh6H@*v z=zI5d`KDL)S${VCC2NgZ{<3a;DW0dvsnNDb_x2Z?SJ=y6!A+ewN4X!cHx@_ H*76qs86h_F literal 0 HcmV?d00001 diff --git a/aes-siv/tests/data/wycheproof-512_pass.blb b/aes-siv/tests/data/wycheproof-512_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..6debeb73617711485cf7581eb783513366360fba GIT binary patch literal 4303 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 literal 0 HcmV?d00001 diff --git a/aes-siv/tests/siv.rs b/aes-siv/tests/siv.rs index e06c7b4f..43777580 100644 --- a/aes-siv/tests/siv.rs +++ b/aes-siv/tests/siv.rs @@ -50,7 +50,7 @@ macro_rules! tests { } macro_rules! wycheproof_tests { - ($siv:ty, $name:ident, $test_name:expr) => { + ($siv:ty, $name:ident, $test_name:expr, pass = $pass:expr) => { #[test] fn $name() { use aead::dev::TestVector; @@ -58,7 +58,7 @@ macro_rules! wycheproof_tests { aead::dev::blobby::parse_into_structs!( include_bytes!(concat!("data/", $test_name, ".blb")); static TEST_VECTORS: &[ - TestVector { key, nonce, aad, plaintext, ciphertext, pass } + TestVector { key, nonce, aad, plaintext, ciphertext } ]; ); @@ -93,13 +93,8 @@ macro_rules! wycheproof_tests { } for (i, row) in TEST_VECTORS.iter().enumerate() { - let &TestVector{ key, aad, plaintext: pt, ciphertext: ct, pass, ..} = row; - let pass = match pass[0] { - 0 => false, - 1 => true, - _ => panic!("invalid value for pass flag"), - }; - if let Some(desc) = run_test(key, aad, pt, ct, pass) { + let &TestVector{ key, aad, plaintext: pt, ciphertext: ct, ..} = row; + if let Some(desc) = run_test(key, aad, pt, ct, $pass) { panic!( "\n\ Failed test â„–{}: {}\n\ @@ -108,7 +103,7 @@ macro_rules! wycheproof_tests { pt:\t{:?}\n\ ct:\t{:?}\n\ pass:\t{:?}\n", - i, desc, key, aad, pt, ct, pass, + i, desc, key, aad, pt, ct, $pass, ); } } @@ -161,7 +156,18 @@ mod aes128cmacsiv { tests!(Aes128Siv, TEST_VECTORS); - wycheproof_tests!(Aes128Siv, wycheproof, "wycheproof-256"); + wycheproof_tests!( + Aes128Siv, + wycheproof_pass, + "wycheproof-256_pass", + pass = true + ); + wycheproof_tests!( + Aes128Siv, + wycheproof_fail, + "wycheproof-256_fail", + pass = false + ); } mod aes256cmacsiv { @@ -201,7 +207,18 @@ mod aes256cmacsiv { tests!(Aes256Siv, TEST_VECTORS); - wycheproof_tests!(Aes256Siv, wycheproof, "wycheproof-512"); + wycheproof_tests!( + Aes256Siv, + wycheproof_pass, + "wycheproof-512_pass", + pass = true + ); + wycheproof_tests!( + Aes256Siv, + wycheproof_fail, + "wycheproof-512_fail", + pass = false + ); } #[cfg(feature = "pmac")] diff --git a/ascon-aead128/tests/data/reference_kats.blb b/ascon-aead128/tests/data/reference_kats.blb deleted file mode 100644 index 15b3c4f071a93036b37055c1995becd5a21beb73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42640 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 diff --git a/ccm/tests/data/cavp_ccm_aes128_12_13_fail.blb b/ccm/tests/data/cavp_ccm_aes128_12_13_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes128_12_13_pass.blb b/ccm/tests/data/cavp_ccm_aes128_12_13_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..5fb6a0f9159af9db7783ae6d4d48299ed44fad84 GIT binary patch literal 1003 zcmV1=T9gC%5r&ma3Z&KH-L0PZ1Bdh^W7csJ>lF0|7uR7IH$C|ApXr zVteBSKB-#YHF7K=h-<5(L%nQywaZs9*BE4neg63t|+$H=|>%kI}Fa(RDin|#d?NmwM>D+x8`LQyhsr`4Ft4L=~vg%~;G?@80 zj|&i;HIMWzu7(mT)T(1v;#7(v=gaOpiPQrDK){iar_%hXkIG1Ih(q#qr;S&*$)?jV z)nzNDLHQ`g*f6d26Na0YK_T%o=;8uc~2o_}<(El7rH$IQn$&H|ih7buxf6 zvLZ0{V4{UlL2ECLAx3Mdovz}5sTV-mf*H?9m8G)fj;KOfBT*KKWqpE_#kCu6Hr`jx z>Mb%ic!~o56(xgF0|7uVlebQ=h`rUBnPQz;P?;c;k5B5m(w+F=v_oXbwNgYdxv6gs zOl|6jVd#jx)|0aU0e2YMm5QnWNZM?FZj*$={mhuyUmA0tc0_9w^?KIi0cHDV8Bm#r zlMOWpkOKigRe)zMQmV_HaY{7995ehP9uw&K2uZEF)AqBz$X6IRFw9ELy)^8be7rs* zr9K8H!l%YE2J_%4jYzML-QDX2vI!ARb4T*#3$)_eJ}Df$XN-=`@pD8>Gfe%ZvMU1t zK*y}{v33dEGi~tzZ~DebcX!SGNqmfvQd4)qFs#hryfE!`(u?GIO4u8`4y%2+k^7jHQnek!>&c_Vz2NgM3vU(NE*Z>$OLNJ zub8d4&<{>&nkTdT2&>7M=D!|+l@3J4F@vUg*8>4S6F{tg@J-i63j7oJ`cmI*Qfzce zEyDL}3a#>l+9w4FFd^zMcZ~CTpfBn$=vBfBcaW7x+D_-|VMszRKNnLPQ`Lf+U<#Qc ZCIQunMD?M&rC`Ftp@(isqLHR>;M1& literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes128_14_13.blb b/ccm/tests/data/cavp_ccm_aes128_14_13.blb deleted file mode 100644 index 5378204443dce29efb6562095f2d28ce18327751..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1035 zcmV+m1oZnn0|5aI^n2r?uo=<5?d|or3=n%QQl%Jeku3JOI?i`M&e{b7Kz7eHBCq*+ zM6~VD?(?`FI{XZs2}mV% zxqj{!C6NDAU00a>LPjw?qy4+hrZ9mWRJzzgsJSba`~$TA__gtqpVOq6cHB%7A`pSr zXp8aQ);*Ev-%TLE&D?pPY1NykP_PkiGHJEsPFLP>W&s5QK;GZ5E|a-+Cl651`ZH0; zS#_tfAK06_k{m$6;VM>K&L0|Jrgq?=AtC7OLOqduuGYL z&xlhxA6MzHRVQ8PD=>1Du9P)~Y4WY4woDRRB#rm}hQ@JTJ8DeftLm>itV+6AHPSc1DMlJ5U)%SG9 zAuu-v-uQQhe}iKzVCo$E)|3-hXSYi}lq>XpGBx+G79tMw}F|f(WpBiZGcwv#4KZ z_Q9wL*a=SP4l3EUlmgX36lI$3EP%?(5BfyCwX=vNi%s4x7;TX(_P9FEcRNraXA7Hyh2ngW94Z@L1;YuOnC|M<1>lb_S1n0DMu5+V?R)@Y0I z-qt;l=-*8sz|GuwpJ~;bs8FyGZ!&4M;nNnrzh<_6Ehy>q9m?MbMVZtOPPPqh*LTr zSLv`-Ctc|)FmjZxlr@HF@~xz{OcGlpjrabB#&KRdYE0p)>aRPjO1fC&civ8Wkr>9H z#cWEim@W8ar+sGeBP`eBYV*;)0|7v11l&2ISrsiU!|;oTng8tc;k-D`TX)AC!jr~k zPV(I_NCP}ZIGHPSc1DMlJ5U)%SG9Auu-v-uQQh zUyX_Dg2 z0|7vJYhuT%_m|#(Ypsj*)k$cK%X->k|M^Co6tIE_uzHFxnLD$nUuX8gs0r8!PUsFQ z*|wAhI`aLqObP_|lTl68iCswW0YHTP zCslguC^CXJV1wgWZ#r3N9L)_w?19AP^ypU=>!>gihEQwapSWeBh_Id7iu5uyXU&>s t;D$p?fw>e=@3osPSIBV>hN?lQ1UZf{T@fV&Ife~pi61h~3JG|RSeYSE@^b(H literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes128_16_10.blb b/ccm/tests/data/cavp_ccm_aes128_16_10.blb deleted file mode 100644 index 3bebc5b01d385e1758254fe7ff8ae2290d0743a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1141 zcmV-*1d97S0s#RKY|CiVgN;q!W(%Cz1j^J80~Eyjbs3?b6WP)HKnX5n{_u-dRj6#+ zjpjf4r*|%gFoaH!78Dxzy3!$HMlfEZTnH{J84jJ8=CazYhH~|XwDOjKa{N%urT#q? z&;d}nks!zN2Dpk$EJ``bkwZdO1FI-XbEAyO7WlSP$ttt~0~AG)cv4jfVezh>KvS** z1ax^{{iNBf55vS-`&ljBb{~6FHNiS(N8%85r!Z_^Mu2xyYfPGy>Pm0p&tedRq7d5d zMYd3BNJq9poV+;#*~@TAVp{JWm$hl(;}(!LyMYvu(L&D~CN&R)QN0ua0~FZBL}TC2 z0?^|pK>wA%?G2+X8(&vf3xQftSuV}V!Nlh$;P&6yKfw&>jWBZ|rrwQdPM}sJAa7mt zIK{%v*0Jo$wAfIb`0o*#rO!QM1=R~HQVI(YywX78a&~l_Xz1oauo4e_)^3js`a%T( z0~Gd<^Qo4Sf^`K8KtaG?+EZ6>X`a$7?M&MP3QPTa zbEI+LL~oTOqzC96CV{syo;6SusulV6OiX0<=zx^q66~@;lO&%6OandIM5Zs7!2Yd2 zWwMDVzr4c%0~99fp7LAfAxQdRK#xUWiU(31=x)`hN`)R`n^&7r*S}21AS!o051yTe zNHE5Ll)`L(0egAzCfp{oyUUgNbv4RCEu~O z)kH*Qyv8xU_~nn~fr|G50~Gqw8^V37ujiz$K-^t_*?Y4jJEevC4RN4xk!E`I7~=|S zcD~&Ovn*#c12Doz`i+2*%|9ue+RLZ=diga;>Ejj;ocK^Mm(uJHi|`8~P)e{mb>~3S z<(wv*KI8BUR2eBcXX^lp?+>46QUTuq0~E;-G>Az4XFzT0Kv2~R3trULkWRw{Qe&?I zRi;TxdVVgI>VRxZw}?VL!7$iH!Emkt5j2BhkQD>6ZCLg1!Fz2fYPwKea#k;W`$xYt zxeny&5&xfZY>`_B^w>k*#idmAyX?PdL;u>i*rI9y0~EWG8%CjRAg(}0Kz$eZ_6pJF z8WxLN4u8AJ4DNZh61LXB*Z*$b1S3J{p)hf~YUn~@WNe%1UJpWv|LV6@UdD86YUxnA z!6PyVh_zE@Vo7ywZDX@ZhhTXezMeGYu@)Q#G8!Ex8AAKqd5r$MgbL1fLf8 HS-4pN%nTA!0@_UZY$HE-M)hotWmb+O39i^@p_bmVk2nP|c831RWBo)Q#HXlXGh`?b*C_FUq*m;Q)^6`l>9+$Og;o}yNHM@ZnkwA%?G2+X8(&vf3xQftSuV}V!Nlh$;P&6yKfw&>jWBZ|rrwQdPM}sJAa7mtIK{%v z*0Jo$wAfIb`0o*#rO!QM1=R~HQVI(YywX78a&~l_Xz1oauo4e_)^3js`a%T(6!wtw zsg{z0bp;DRLBL8^9%7qUn^D)lOvfN9cRmlEorg#;#(08(i_5ktFPyzu0Y&ff7yGpBs-;r`VDcQagkAz4XFzT0Kv2~R3trULkWRw{Qe&?IRi;TxdVVgI z>VRxZw}?VL!7$iH!Emkt5j2BhkQD>6ZCLg1!Fz2fYPwKea#k;W`$xYtxeny&5&xfZ zY>`_B^w>k*#idmAyX?PdL;u>i*rI9y6uXieMxkvWu0TdWeHZxl3en~o7K>XBf4j*H z?s>Knw${Mc|8Cv{BSGk)FmbzT=t5#-Y@6v`4?>Cm>bF&1#&m3I=}@}CBQgkxwNqwd zNp)^*W3x$zV0j$Ao;2mL7Atg#rJ7K{@bh7gY%T#5VW_yv{F~dYvZFvz&nk&Y;XbMe zdNj%GO@G-dhA#bT3m@-`0dJzllQbqUHZPh+s#ur$CbX z$#AviL72`e6OHL7XYK!ug7GhiGDJ%>Z55VRHES^XL?eURBTV@4#rtM*7`!{`3<(=L vj%#;N&Hg@vtE4)Z1jV6)E)GYjp;I-S!!5Z7aX=;Xg~#*)Rs^3G_*uAFU`{6s literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes128_16_11.blb b/ccm/tests/data/cavp_ccm_aes128_16_11.blb deleted file mode 100644 index 1c59b1d494625373549147b2aa6bb73ecc46b86a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1151 zcmV-_1c3WI0s#RK=Bu7?r2A2@94;mzGv-VU0~U1ViR)VVL><?bU{QNF$#g@M*%ULAsCmQT2gfkF6_IB%RSkNmD=%vieAD$zgWbVw&?t&f+`&;q zGKlkCIqi?GZw%ql>t%0Gf7V)dV`{ctvIUDP zp>6V4HlM`kuK2k~98f%-0Bn7Z|6fFl49UWLmPZpL8mIo#W?gq)qF=Idm>uZ2stRLt znEL?(7BNf{X_@356MNUXKsIb;o5WoTh^*C4_wK4b6b>A(v9J_$pk=AlV8!S={V*YW z8R}|78Xso8odUNQ=umnHtB!AAK0i=1*S2!9K8pjRpY#15dk-t-abx4-y5Ms1s-h9z z#v_z^P_ZQ|#j4W*0~T-PA5atZJx)*A2SEQAFD@6Ic@BbnztFvll9%kRSO3oW;$HC- zM@k~(>{~F#zgR0t-AcC0GxPY4icJ*$GP4NoJ4S*~Ce2;N>cXtrC_JDuR3-}5diS0n z#py3sb?p}$u=}cSLmX5Q&zncPep`if; zOO-?v{rlr9QI3;MIP;Noo};YRB)}d;gR2z=w*dndiOxo|-a7j7QH?=BS7#tBku`+Y zQ}cb2Y7APz#(lHz(cD=3|Cxt)riEfuFtV#RnhnuguaQAs?mA9Z=j^3TOdK$j_)woy z4nZBOo&Q5D##hSIQW$0I%^#FJhIlI-Gebyl^_8F7SkY(ww35idXi8# zK#|z`Wu}N<7AkpK{wSF9k(mmMI)}j@lygnX-Szd2s4($fIq>A_rN4nSosKXVWg_vR zq!mMEXwOi89iPpfT+TXy<4Ifo&d3-2ae&yn{tCLXf3`wj%r!U8M-(Ncv3<`00~Q8- z;)atm?IOpvK0w1BL?6{rv;F(xJnqHpAA^rEr7#a*Rjn$MYMl%mg>EnvHrdIblLFB~ z$W}NYFI&G1D1T@XT~XLjv8BhS{Uaic$Lc1CSOVIhai3}=?z`K_h(45wu8w-^7OPz{r%$8>_#bGPxh#o~kVS04PIR3U0i0gwd* Rr#y%k|0`8tizWiUH~|j>D7^px diff --git a/ccm/tests/data/cavp_ccm_aes128_16_11_fail.blb b/ccm/tests/data/cavp_ccm_aes128_16_11_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes128_16_11_pass.blb b/ccm/tests/data/cavp_ccm_aes128_16_11_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..81cebe2a921871940760f8e94752cb62cfe921a5 GIT binary patch literal 1139 zcmV-(1dRJK0TAY^o^Yi5QLr2?CL%NDObr1RbmoccTKPmB){v$^LiSOP;QQn+DB(Lx zvg=?`dpF5+LzLMRGn1%!!{GLTniTSBF=@^#ZGaoRu9zLmQeu~>k*H%5`@3Y8^bt2wWbDt zy2NF8&&bpM1Q3OY$=(Nkun8oSbn*pNJGz|$For##40_D;R2bBJ9@=s|HZy0b0VH_x~gk=jZDcZf4a+=*_po{BQO6O#cJ%DN{O(0-NP zgN0r|4iECjKBfAPhbE&@O!)@R77(GP+!?Yag8AfOpLQ*RFe>)dV`{ctvIUDPp>6V4 zHlM`kuK2k~98f%-0Bn7Z|6fFl49UWLmPZpL8mIo#W?gq)qF=Idm>uZ2stRLtnEL@1 zF-#L_ndBW4d)K-^Hf&{^#9a!Atkq8U?y5c%4jiwsuoQHlWvSF)#ppZzFd=&x>S{w8 zA7;Is0=F3GPqx;BxY+q7mN4Bb0hj zu_Y_Ts?z}$Z{;6Q6ZJh#PuT}R{}?YW7oB+yf_%Twy^E5U?5PKA6#g=^2<|&Zf>0*SUB&9ctlB6%pfgk^3e|e|o*>2PFIRQ# z7aOqqs&7LaR1wdcQ*8kjB)pBm;x$HRx0|Fu(A13q{CQ|xYwiTpUO>=n-ycQ?R4X3N zRd2%4yDJ0nFp%{wyBpO*lZN{0p_F1Wh4)ZrDtoHtOHiluKUT#D1)-q<1WT1f6#e_- zD^ZSZBOo&Q5D##hSIQW$0I%^#FJhIlI-Gebyl^_8Y(;$wvmFP@*l2A85k=XiWrifn_ zDtTJ|D46q+nF@HzkxNKjxZQyBJrW56+>od&rp9I zpUs|J&N_kPNn8HT$QS)_fY`hK3c9j?wnAUbH8;*j6eXpxea`_F27Tg&lQZoi$F@E| z!yZH*)lswk`{F$A#q1x0k1?e%4`5ZTDwArR3><}SFcmi0$)J-0(L%^pI3O=uzYHjU zXc1je*if;h$EW=xB8|uDCWu%9+MsctY9nYK9cACRdBPh;^Dut$FCC?MFh2nn74{oN zCefSDt`L(zxqA{S_db%2VSbosPlQ|K%Yas6MRS{ah)ile>`?;0FgM5wrN?xF)pNJ;xW(dw@>d@GpHv}gOaYJu1gAWR7ym0&VT&dL Fzc_n`D3SmG literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes128_16_12.blb b/ccm/tests/data/cavp_ccm_aes128_16_12.blb deleted file mode 100644 index 59d29c9cd6389d8db102b55a0639705c4587d10b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1161 zcmV;41a|v80s#RK0A7zxjtsv}9PYK)dM8*&0~ij&tVJtSdyrzP$ofDp7$K@x`8j@nZ@OQws zKo`h(iK1mDHoW%|(GkdNooLog7}YV7fH0-(m&KVeq%fUh-*-DVnd4!_GL1yLu`fYX zbbil##%EAdGCP9Tr&QQ1>+saPlMe805#eIRz$e6UT4WeBySH1mS1hHZTrq;V;Dm~PGGmRBsPKKcACff2H7qeL< zJq=x5009FS*x@th|Bea{#>5G3K<}PIEEU+vI!jyzW?+tC$Ry21ZFxY}Lafu=GX;DD zl`tqa-kHGmLCsa@pIY~3IFx&WCpUihi~CSs+XZcf+WxBdOW#bYM>Cyjb-y0zm{wk& zoZo7=CHCMZ^}Z_Dl>Pjc1+g!Mi z_r5z%Ys(<{e$xUUYStiRi-DG_7L#!Um;nPAjbo1VKUUt(kpVgBK!@sk2~&vPaI6l} zK8E!IKnV~6ii)-4ySW_&f*cJkVK8%W*|bxWX;rz&(>C<7gClu{BQ4+uzd=yGF9Y_@ z7coJKUsJaBCEsy*yBVl4_fR@+`hcnWzywXGg0~qvq>WC7yvi7Wa{+&P| z!npO*rdnpYiY4OiGn#jrGSpvPxe#~nu59xN{_jvQS^uAPfv16hjW+(%cnAq&^IQPx zT5dTqP|+vJRy3Rz;uvpLw<1)=ckn!6@x-mE=3%>(6|*gBSoQa0e$*Z2g#iN?LNyil zy;&`4dL#&DKpF1#_n7=>2x_ey+HHAu&ClkzuXI^}GM6lqowESg!7w~GpOCQ}Vk&l5 zR-s<}kHgA)2(u^|MfFe>c`gC`7xgJjGzCaPkq9gRsPt{wuZ*HFx|PHQg#jZ<8<$i( znU0+S0~o{e+G*iDS2F{bM6p2b-vFw$?eE=XNz;DRLs;P)Sd1j`LEKj{FhAhERMB-1r?JE&uD*54$BPDW z3tRt->}va3b}$QHV~O{|4@;va=nA&r|tgZ^X+Z82K`pdTnH diff --git a/ccm/tests/data/cavp_ccm_aes128_16_12_fail.blb b/ccm/tests/data/cavp_ccm_aes128_16_12_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes128_16_12_pass.blb b/ccm/tests/data/cavp_ccm_aes128_16_12_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..23d67160d417f72a591ec555b85eccb33aace3c6 GIT binary patch literal 1149 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

R5Pd2{nXq2M)6ZhtBpVYgvDTJU-1m71j zH6S+a1xH@>9KiGqzS++nQP$Vg6y`^{iH_}%lmP!b4LSALJ8|TH&B#2AAbqdj18r`0 zvv`Ijw}@p+gyl&QPp0;Kj@Z?`J_&2m%*DC;RW!puBuFFVb_sr$ZEp(l5YjSckXz{< zt|pB9r7%e(_R_e-Ip6V}?&*!CdkH2Xm*xl=LHnDb$;%l@`n4w;AGbj{4Y{*Yo9yqP zKf@Bk{K}KxlitP*KY>Po2&>KQOxMmaCmM%f)T-8A+-r^bPb6Irt~z@#Ny_Q+low%e zVMPEpR2uDbzEo>qCvlMl?bo${Zlv(u(=hY$|qq%+8(dlF8F$}xjY*$z`GK@hP_`Jv(lRUOJXd6%GiX1JLxE-ut{E}|e)YqO zQk^jz|BPp59Jl}WX1CWg(-s?t@iOe+3R!!meb=vsQ#dz%iebE{%vdc8{z_56+;toZ zsC_z%aycqOX2;;MMG@mLSN*P%Rz*9`skHb^d4YL#f`kC^Ie1lq_p?o&=|8*$iq$up zv##YzL2#@|_=!Tb9+p_(r@xSo;J}w$7F^iJSwdFitUvFZu4wkm?TXTB$*T+67(^91ToZp`oJv04X9H!W0PHd>RcMaW%N;)or1ix5 zqyDQAn`&zXb_b^(?A6!dx~^3MRxK(Q_3L=~u17hGsr^=96)N)I?CSHCpcfLJaq7{B zc${FX@`;~C8LDz*ljksDlv&JORTQ1cZl5G0Nh`+jC2wFH-QY+yEX3%?j!hHQ_&v@_ zYusqUIm$U#-mGrA{CBy{yo13gTYba1^qh-?esyBrE%GbP^4FJQLwimE=UaUPolu4n+iuvce$GeTDx6h# zRptEU2Ae%{6L3v$_Dl=XU0DUpZ>53WYQN@Q?@RPqbcjsREuTImuWIY{Ac|b5oI|^k zDd~p4jLdT0Kh~h-HN=?oSOdx($1}o};33eZR96Sa#Y9LJx32Ew*ChYhp(atwYJ&Tr z_)!A>g}Yvq2-X?0s3!zh>j}A0s)m|sLM?_LrTozTt?vUxB>^Txm(C-i@r&YbF!zEd z0v6qiw8YW@3G0C{+m}vg%(Bf=PLamx-vpW3c?(AhCPs+#8}?pnO~5CeH($f9n0<|q z;K!n@&#Ai;UF(dcbA})X#vvHlvn3_E@)s(1ON$Dmcy}!Ro5pV<*8}oJa7a`VhXJq+ zzK1a0JoDm0*&z|oP}gkUpU#YX&|IZ*}NMk2Mw&@p1}r_?L)w|^w}?$fP+n$S8=~s7P$V$nA9k* zH0(cp&$pUp;d&75v97Je%4(|ye0Y3oKQ?RnR+y|LH8@v`uWW5(T-_$>Yq={jTTffBaiKhCY~+H9Jv4>(6G)bD zpW+c~2BA)Y%Hy9OzN6~4)Fh|h8dlDn6_^=A!QeHP6KJ+EaPY#(_i3@wo~i;Oy0*fZ z!b-RyGm{XSS7c}SLRUiI=%jQ7@hhlUf^~JDvoC@u>mYnpjj;AT^)lO$MsVq`tD?yd zUwR8K_mF~AcBR#_+)9S$@2RoWjoi9oQ&092->M(D6_u8fNB@Woo(!+r9kbS;P2~?G z`g@7NU$|@S7?u=VuCVxitqgm>t&7SXt@hM-@2}hbIR!V3e8b27@F{GOzL;#-@DK#c z*s3R^>)f`l#U45V(2D9zS!Tvf{HVq@G=@L@!{vGy>G>fH_;paz~4bont85lZvb4_~#2G?bea#&tn+vf#q_Vt{pl>`&_j z^yq>DLMF;-9641G3*o6HtvB=VgnM5n?PFVV<~_Uw){^fno-%^g*m>wbV~yr3cEcXs z^0}&IHn+n+y5WE*7UwYL58sv3SX>iVzsOB2+;n)8?}b$zR?e`jA^sZSd*XI+GXd2W zW%GD#%`%e7E<@tS`UcH;{pEb1d_M;B0!%Kn*M3(eteIoVADT@q2*)IT%u z#J4wqGsxerpBs4|kUw=V=i^-j#)H#SORt6exQEf z02R%HKO9{{G<>>*i>BWZxDo9)m~dPFWq6!Nk&XByeW97fY<(4FaD^Jg_ZZ_(FLjyI zyM_ED)vP4+++`$k(VmuE4-?DKHbrx^J;O+!zbfnRm7O~y-9>Elv*e?~8Ot*0lKv2M z6kG434&0`mA*q;R3hDXH*n!=z}x>zXEKPuQC)svHBr+O+&;$PA5f7+C^ zq`6>8!@Pf5?7NVR1s9|_TCiUBcAG|CDX4cH&CE4m)PyYKlJd_;T)bo3*eNE}KzvN1 zD5GU0klp%hRS?;8C@umTgmeWKp&_DxJ$kGCg6Y zDHlR4=?^K%zJju+%}0fvKi(emwccKzk}V0SLJ9JZJSKRI^7nkjso((3*M7k?Z5AdA zH}p_8D3SkF*Il(m*@X)LCZz|2A*EYl96-8;#sOhaU;sf{x;rJLOF%@rTS~e_8bs;t zEa;laVrj)9^ZA#ZE%+K676%#r&?P3T=I`zL ze*!mzd8A3>PTAA|3n}$1oBxMzh~c8knYLq+c++B^Z!OnNOW*bA*DXLWVS#Y8&DX`=eiBcn zB2TkEe=T$io(o;EK%d;`K7hRJwR1e>YBG2lBT8!%Az@qo?%EUkxrV)y!dvJB^+;T+ zhK`@|9)xz-CGbw`iFICxzh%3reP9>=C8OyAkwfSI#;~&%{8kAlXP$dPH8Eh|#=OId zl&iN>;`j?E4#r%x8|P~Envh?FT#9wt_s^fN)*sE%1d*jhbBP z&Tx`Y1TFC=2#5D!m^3N_|07z^glbd>8S!2U=ta9;)GXzL_J?H@s6pk0&=o>w8xW6{ z`>YDwf6S5*N%jN3YHc*9ODFBNTXj0ePbtWCNLtpY*YkRETZf}xzZzGe`3AZ%PK~p4 zaiLrlNU6s4AE5!^hZgC~x4e$8+d62>$k?%yJCgtHy7qQjLdGr+>k?Iujvg84X%BiYmV2QxlHOoZ4o~QN=Ok#%OE% zk8qvC8E1V2(8bjL62~zcmX()RzH;ZZmc8*&lZh6=u*#$DZwIVZES~~TN)=nb_Qex< z?W>4YtU6ILKxM329r#M^4@ruUSHO22Put_CZ#qw|1;~XiF9}xCW!kb)Enuj#06-+} zmCFB0^|aVf#+2Roy{^Z{+A9~xy<5y^z!r>D<;jwyFpwXng*!gCW1>?(Rn6U>`WEs+ zm2U5wMtlz%8fj%?%3rRF9@g!#FOK~-y1&vT(4u<6?5|8YLef#0b`-%xZ@WIyRkn0w zwY7l|M29E0MP`__rn#LEU__Dr%7*exvu~!%TiZcQ(z@FU))64RgWRV>`KnsSGD!d< zCrUK5$JpAT_eBd^g_z=OWN+r%a-E8ZqVMq)RrF!kF1$3GBRZ&QgCSf{JLg~QadSG+HOVlM@|2wVdB*yTubOB z{?vNrNM<7W7vr_(JCdo`j`Jtq5V}JW^RxdE!Xn_tKQjRFQYkg|lkDoAFW{-sl zVwxF0tiP(RhO;|!!tF-1JM#V`ju$(-Gm3-+*_(xW(Rw0kyGR*YqTi%OW-kF;U)Nw; z@~C@jQ-$FvG-gq&@l}@w@Vtic+x5n){w_ZOzQWW!ybVf=kR1*wn0zCoBtX(0UM~1o zAXYh3tL23Ys}ia_f%;IRDv~0Y%W|yYbyF5tWrx-5;+EDRr|vzL!T=9P2TO6-47C%mY_o-9)ZmAOf$j)4B3SKZa_s(}q{ z;&Ly1OcbCNdZs*riemw+CcTw#GymHh>YgtqzYWGes@*&op=to<$h{DU3R}BUQ~0PR z&!LmYnM^ZNf$2r}#cjtTC{kM|ZgZ85#m9C5d<|)wiQ+WfhtUwKrHZ}`pN42_FVn!b zHw=pxe-*#YoXq>hb%x#(q=M=7tA9dFfeWiM{dA4xU$XqeI_QLF3%Iy-{JS+Xwt z8Pc2e)$Jv68cTI``rEsXA?bJ4M?~~3aMu|_AZnHAXJdZMa9PYtW&z})n(N;1H2GUELW39flOAJ(7rC^j?Ow#xMZOzg@l?f1I{;(ju!zH5}U6M&0 z@>L}63+eFEskk3XBU4|gSd)^?LE6M=Qo4x??zNGFfsN5UjvOl1a*J5D z*T08{tHBWhwSe_%LAtRSm1eTankgrEyf~k756f*N8>`cM)44uTv*e?7*iOU6GKZ(T9y+Mh!WbCE27PvdQP0@9&-2zq{DJ{{BUr5& z*Ojd4gQ%XitJvl8sl*$$mO;A!1G$8c>eve`$-3rp%PvcLMYs=!uwtIE<_7N+8de6( zL4RZ9d8n*ub)o+Lm})E=GCgP&^z3OIi3Mh3$)~|@_`^!q@*w$(x*Z-7HEG3EO0C?% z1#p|x;+W2^j8*qwpIy>b*Wlf7-lbvn<3qH^%-mkem;s^zrSgpQULn%X+5K1AkFCw-x>!7F6#>A*)Fzm3ijG4!`@K{PeK z>i*V;?xSyGtovaa?yS;NtBcU0C3PpC%O_7M_c{0cnFdx*f0EUfy&suqUM7!lh7+PX zKOdYS2$HaU8OOqY@(mXL)^~%(qwJG#ii+4Gy1c<@3ga0toXF6tG^SdGW*~FZ;uneD z?wZI(P#rrb?4r4zJ>v5!1LVbhY^9Ps(WljS%emAc==fd;wJ44}hEt=Q`X7c@sG{HhDev4CcDr9ly=!0rq8gX2J5lR;+TcR=8h+zD1QN z8fkNR^I?neX}%oBC8T?Y1R!B8dc3AA_h1P?Y>dJ4L&EG@KWk8*JWq>D64pNleLpOL zK-M%vC6{ZS;k$;&*oTaI$K21vvry4=a{dE1@Zd4&1~P=hRt?WAOLC3vn`mt4SLuzY zKA5#4vSlXILj)LseRgi;v?(7mlgyyZ`8UqUk6bQs-Ej19wl3zE6)nFJlagirJYco%f!fkm^@Of#q0>lf!owD-5&=uZ5Q#Ddh%R#jgXjqG4-^ zGW}(zF$kO~yM%j9R)|#p8rm$+MS-zj`ky@!T^h6jWd31#tkb`EIO>fpU+?{f_5tki#ektrd_a=-D9pPDJOB+`Ig4;RA`zUL`-`qVLl!Aa4@!Bu1@@?!+{vF>ZgOZXu~{>2>!TBgpZqY zk(Klc_Om^*kZe-WJ8v7^WkQ;Pk=rEFcr-Q&4yw0lWD?WRE2KBXQ}_)(Ly=q@Y(9wc z6S1&mTpl9Z*;3jn~?R!>IjV9t|lTP=LtC!GZGXOD3`k|R3dj9&ij2-VqX!E+#(<8@e%`7n)D zD~fD__8$Nv^aDy5=7KFCt9z%0-`<_bdtY_ zD-KH&&5x>M1|?8rO9e^k3z~sm%e>|oZ^##hE_yR$Ijc&}Atq)sy~^M7=3hnXM)&ja zvblORlX>8#?_F!<{X&c$jLK7kNC(di#Pmxybz}=H-6UPu5M7OeGikU}FPZ0Qa8@$J z-`DqN@JJz@f~2lPt3HU&AUU8NMXpo>Ja>^Yf0NPWcGn@IX{huCgTlwMIWH{zWwWFc zztRHTjv93haeZh9_C5(%B{1NnhqrEh4$iPd%D`yeo0*LRAzh0ISg1!z4YrPzpFI+K zbEgoEn3-cDOC^vajg5;XYlyI6eMy*F02-%BLXnj9kMYjeJv29Vxj3gG1f91tA3MGT znGwgxgf~WIG^KYWs&?&08XSd0aC%u5f}i`+*H&IrwxW?9VQ;IJE+n2E$8j604Z;3W zpOWIm*ZZ(UY@M3R%_e<3*_sX+=-=-KG-`$X5_e-Pf#mNd^82C4d5Mx8{08FyxfjAI z#*iU&p$yz{zu&q2DFZh|kAGc5(KNmVTGQEzjlAz)#Fz#jtyYq{kHtsr(ojm_qZ;vEt&+3o6|v*J6dO9#RXqg_F^y8z{`Z$NKg z7U|ypIEoyY$6PyXZXm0whscsZaz7`?RV8U+lquwc?@kUg2{B-gT)3|`6V}JWUrj*CJvcwqVqR1*BP9bvJJQXgD$e6{*xxu%-r%NWcS z|H>Lei-cK7aZGI=E4ZP^|I^5&lRi5GGL{wI9!? zT(q=Jr&?}W4iFjZ{o>U|i=d+e8{T4@5&amFmptbOb2@VojEv^BpQTT+>> zWB>plEUVU#q+VHtOLd2`ZP$N}2O1_ou}=`O7C{{wTpG~;03es5>lY62KcOKc@iAUI zX-@|lvMIrHp*t;uuaWFUumAucl-OE>7M+d9Z&aQ=|tPYhpOA*llNfqO;;+EC2u?T)M@?7&l62y>Nv^OiK(C z2O8GPD#m-UJCAKK`qoMS03aqYe`|{YFbQ-)?F6_0n(qf1GN;Wp9`Fuj^>>fo)Bpe= zxGJ{uyY-uFs{B;&RdDxC2O8{l(S-`k33;LM83y|R03hra%+E8unhi|nsvv0$6Eg!E zNdQR_{nsXvd9m0i_FtNZz^qK`t;RC2&hKD&o zOJt|Z-C?zN!-xYKdy~^>+*KApunVKhwEzuJ(>1zRB_P8#_Yv*#ey2FPUTY0^E~G=a zvaw|I!d14J%lA_-*=#%$0~%_h_c2m0&VDv)rI|$l3sAQSP%y0AU%QX$EF^J!93x^e z`Ez^Bc=Ti2H&&~iG+ zuFVn4tOVirn-9`JQpnEVIX%vu^H9=HfD3`>H0oW_y~4(b*-%qi0~)A=n?$X&jVBp- zWoa+~3sBRiqF-^bn1q7dg)Y|<)mpvGOR*B2+^$0iiOpP>G(5oG-@Rhyw(A2LrZTz> z08tSltIc93{{Rb6HjWi^q%+rz0(Q^^3cdI zw3M1HFRG2QQSOo|JO7%xiDREYGrpUt^T7eE!My<*hdH#qp`e-mRCJlk#z6KEc9!k4 zGP3Fgorqxm;%nqCUJ~J?_nM6kug)7Hc&7j$?fA5Awwk~MK^6g>>=-a|0U8gO{k`I_ zLx=KvGy&Z}0s#XlW)G(pRbi9sNO10iy^}(grNu3hyQo>r6UwdJ03c>!D#C1XC!jKy zIbk3Yb9@0BPVHFpf#m>@E2YI~WI&b$ZJxb+RXifhEuDdDVG=h`*=!pK#I|7vlqA1A zNk#x5PTE>WU#uukui_!raaazxk&$gP?U^c{_a6py@ zXSiG7a|B~SB)Kw6;VK*vMIRrj+k(b}CRq@kc+0UF9?4%4|8z^tJ_+|&C&B}#_%vJEs!*l*QR zJqYoJM>oD#a}+?rnx?cRbXPA?03fY;^d33t3=Gh6CO(31Jn#V;WGdrEW?{}BQFuM> z&Ok&mq0YsZY{5H^w}U~{Cc-3-2^(2)Bhq94ugCZ;rKJEM7O|xI+pWn4sYzKaZu1$V z0UEeNEj?8wpxWEIrnb01hVE`Rw4&LdwJyn4L$v5Aej|4w;aupyb(5)vMEE|s03Zkg z1M7q zXZ!a_FWc_s8xRjrcI#+Ag!ezJhNm4%4rPrfIGnCIfCBFEtk0ebD3jhTgJrmH7R~Z9l#yp2m z=|Felda0+sFyS!BVxuW)9M_=%mF*pr4=k6z|3}8~ZZZ#0tBm-G8n!7Uz{d2Q(o@f% z!`3DZ4&>Roh|2h`S=rGO7AD#a-S~1X1sYuzUENMulZUTaXUgV4<8=6S&Vrj_$&bBf zyzwZtWPc_9`KCiK4!KoXxQV*$2~e)7h-cH+2gEv-JRN`B{FOYtaCifc!uj(5^Yeu=*7Yj%o?xP8a}Ro4+bRA0eXnE}co<#MlO2iL2~c?&V%7UO z|Ccqblu&*e{w7CpOi@d4SDVr%nR6t#| z!-(6h$?Lqur<%4V{ zsFz^im74_`FE$EC6$eg~B1Efyn?UdgdjN)@fx!n9f$%e^zK)a(Hg+(CGMl(Y8<7Gd zk536uRb&qB631CuHmgECsMsVK1-AblkZrkQNqDD*UHCSZH71l1v#RSd1sYlwsE{ky z51?%R7))0{Ih|_;QiEhy>`!nX4Z!8D*F6?kU17@`wYTnqPr`@DFioTjfLELyno|k) z@9ek0S)%zAQ5>cG5Kx_&JCsy*tl+uIlPP1Yh&AE80_X-^qSzLAY)y>uOarhn|8g@C Fv&8it_0<3X literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes128_16_13_pass.blb b/ccm/tests/data/cavp_ccm_aes128_16_13_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..9521ebf4321cce20dc803b2cf6c677fe9ff540b1 GIT binary patch literal 53311 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

)on05FZveeldj zoKae?LVBVQ8|upBSx5CUWaW`6BK{Tr(XBwFHKATTLeMeiz?HR@K|BR$M#W5~3XA=G z)U!An^$)aC@X>6dS<9RQsT14raK_~F+_QrJNwEyC8p(8x?M(LT-WlVBItpNMQeL{bScmt+C~tU#wsq66 z584f(g1N-D0nXWj`+iyKM_$LE3S%PTpv%lR+CQ(vg3Z00c36u|O{ZETBY8`x7;yYi zP&T>ywdokQ)Vzx?FK_AhnY+ugGAH;%Ob3oPe_4S$lC^uHrt?{xQq_pQA=uRN6=RR2 z2fna>cXy!4-L-t9$>6a+%3x;Zt3KfGm5dlrBNQ;+_c+AV1-fJ2LmrM{Xk8p1+`d#WL$RUYCEP zCUaTEyY*^0IaS#AOyMkOA;1UK#3rE(S?h?hokHz5x&|qNkl{!gRs~HbTZ~P8xK2QE z43N+h?oFZ@i(p&(Zx8*)k4$;w?ca~s&3WL!)DU-y=fut;_LoD3P&{`TQ=w=av`hP& zRHe^cUcK;3oUX~y%11d2Hzu|X=i!1U*V{VnMVOJy6;J9Zy`^FW= z^b*j*1Ah^H(keox_$4r>eFs8rhVxY z>sOu$c#*9L<6Dqy#UG+|!1R2xF9Na*THmAqFR{!xEc%CVd6QFU!cYV&_#Aufj|@mu zpahFQ7)wn04)=M3eT*jLqOoU(Oj!2#IZXbze4pQNVXhsnF7kV0^@|)5Ik_Qxh5Fvp zlX=Sl@ZH+~iGec!&~(qN2rz8n2d8|{O??D{Pc|`CB?soGLCnf4!X_NBc!Bl-52ku6qK!8(yBhB`W)~WY?tI<%X{!Cz+Xte$n@*} zq0D7t%`V?u&Bwp`yP8h+TAKrrAGL`+7`pJ7v_nWu-#0@>dF}xi&-Qs>g`wBdBM#Ba zx4$1)C52q+f&`Azl8JHN_8N^Fb7DKTTU`hDtoHs2FS7ENMCrWxjw#lz-_^9MtE$}>W+;wC~cmk0w6H;^=UHE2cPl&%{fF^3;P~b ziVog|#wZ_M=OC<|y$=b9dXbB9sWpxC6-36z@0^xUjc{W`Fx4>urKP;~o2{uIKhGHj z8l1UW%0f(qSdi8?LF=L~(B9+k@jER9-n&dUlM}B!@fce{@izJ0l5oPq|M+YX)fw-& zT<{{>Y#Ec82jfKbwdI70a}>Iap5-zx0;|QIg;gO`q{uoH8_Q2hhM{fmirc8ptH6y_ zEi2Bd`*O`*u4y#=hfqvRxW?W6HNw z;G=FXm0(nQ9k!@d86-K&!U@U4hJvI&zdtSmUhNRS7vz%j_GnOet;tgkjt|?kayAf& zrKlN|B@9oGX5nTxH0M=rN%`O4V*faZ43xlO@+qnO=V7tk%E2QRp-LoDJ;nOydn!Rz zR7X1Qh#xO!aQ$fZh7;p;o5@ns_vIdCD3r17T2$H7$3pKn^3ozoxI_q zM{cJ~xlDnXWG?w(MLMncH9}(aqX0LnNZ

eTIL5zaxU`#K#@ZTFJv&OmxA9kNHWl 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�!x&q>6-^FAwW&p+LViJ`s;#xO1r`#XIr8+eBym-I_jhL7*Q)H7W9;KlY8 zOWeJIR&f)ZJ7ek@AaJlqz9~R|53GSe~;wAwG8F9sx*0Y1!tDGu@lyj zn8TWiZkJc{5<3RqPCEF#DdSk=2YQ=z8rt~vGTjpzuEGE8`Mmn0od6wCR6*msYs|S} zZ71R*(r3XYYf*}G)o%fy>(;YW?QU~In~%$f#1~IB9uN`D_MAsgTN2Yev?3Y}$0#c1 z7$ef~P+rcm|8TiBIUoP_ZAn&=<8^yp!T_!N;+X^F1ZZ?DzO|6xa5e2bBtZhFA5_K_ ztQ>8<@nwk_IRi=3{OFvr<70TKi1ta0gBe(E0bQRLgI|)WHFNYj=G=Nd+XGNN=C3gZ zE=(Ids4r0>qWfL`loIg~f7}BbR68`-n zu{Vnaxp8+VR^x{uL-pAp4`7lgR$FaTjBPwPYsq7TODL$4pL;GT7LN2B5(_V*L1ExU zh42R-eM+U38nqx-13Na#)%KB!Jxs%#4Z+Gt0eQG#|3)(HzpWQu^2R8`7L~PdNR}%F zX-Eyy(ec^fxB@v#3W1;ws*(~-u^gP8pI^E4X19~G7o$Xk`$Vu!qvCCi+8|Q7z%b8S zVxi~>&93Mv0#+h5S2~QTFIDTOAajD4%IfC(N6pph>bqvo_2UmT*86+dtqlH-oXXDz z1OWHDXyrL?f14#nWciDiViOG5apjM^xAn|saF#GBnrt3)ZJ|kARa<6jB0SlDQhBEf zb%Ekic*k|}vHd_m$ki>W=Tvw7q=z#pwnLWcV;S5);r+oj4~7(h8Gk+-i14j;r+Ujb zF3k`2o>+iYlRLsPjoQ&8EMJ*iJ{uP%Q!u$3}it%EyhvRPxJOXOQd9)av;`$6Rh zb0eWTi5S0$&>W!-HV)DzbEXfD%^6-nGU-13AadoBvgkEzMWzV1e$>LUib()zTfSn0 zjr>jcYgeJRR+ZeIQq_7&r91z#;cC67FSD4Hh5R?`08oEuLoYHxTZCp>Sk4B5qhdX{ z8I7#F3T800a7#9p3}bDXFO8xcll4HX)Oh7JssgC`#jAgMsK8`k;k+iR=nurskV=;G zA5mgi%5CBfq@t6b4bzf5?4X;1q#=z9reNh47IN?$-hrAuJ*v|8B86y^wlufOL}q~8 z8(4lkA>=3(XN(qR*p3{E@~%ZC zqM}n<;yn|c$*wS9v0{?V)uoJ<*P6CwvU&h2_k>5rIYLf!AHH2+4Ve6i#Ga=yg#Ou` zRN?jhc@a!%d$G=><5rl|otyfj0`ewe4f*4xI@uks1*eb`dS=7a#lJJ+p~1`6(Jb-i zZRko*reuHHDfgypeeYMrQB)ePB97M4M3HIz)h`w@Mc%|mRfsGBCMX|8NASA3Gh1EW zuimII>FL5SxR$5cd-hR5OL~~rf#!bQgQFM!UGz0O)5!HQtN-WwEdMcBu1AzE-IW^) z=LIwUH*?%-f>A$wK4Y+LY3q1DnQe4Jp7lg6_i+o7p@l32PU2r{d`DFLViBcT-vTSx zqf>Bql=WI3KPukxeD4w2vP6s<&v?)Y?bAHEjY2brcrDIZk>}Z;2v_N>uyUiyl_bVO zxYdG=OR|*~u=lU7SR-USof|?^Z#i0NB_GL>5YOe%XHNsEYYhfitdBu+stij+6nlH?^9OH zF%eWl^C0s0Jdd8l1FMA&mmqhr8zM*zMTAoCl_ z5vBDPhlYwH=l$kCZcVbbQEOjq!MGS%@HLWTbz{LzhYgKlsE-OZk$ionJ=z5zuuQq1 zT6K>~)gMOvpbQc+~j8UEXJ^xvZqO+i~q6GrP`CPg2G=!EVXk7(Fs_(ak$l=DW{ z7&>^@XVm`koA-?lS|>jAj=oLi-|N;QT>v2wQ@e@z()vOJEY!&5WgaY-J5;=m}$;Y!#KC9z)|HMnqD!kTpwUVn%38_Uv26 zKG`CaB_U*s$R1%BrkJt34)3S;!}}MU$9)|4r|Z72^Qt^}_g#_NthIzmgbd>URiXh{ zrTId&$R%jvGhxkDO|5ypVteYG0eVv9y-SQ2tVx3{e9D6*(tZ9I^YeWB;h^8?=Mm&7 z=L4G-^C4SLOwK*&or(HDOgDSs_K^j*kM0-l7O}?eAw&Sw>92xL-FCR8=mD4s%9o&1 zwMO1XfPUv@@q<4gq3A>;^IVn3ET9aGduV+zL@e>d_I$1`Xv%D0=!{4dqs zcpiAa@z7TXdr@_NnYsx5L|8rC?Gr}^%~}R)S|NeJ%n*;vwNz~|8u&8~PS87}L;>w# zbT=ndx>?-ck2H{~gL#k(9(>*`1C^*OeL{G^=VQz`d4q^KvqQSvV2Yodh!gV-An)s_ z)Rl4KI-LEAfNO|21r#;o9*g0UejWP$%I1j+@4Wk z>=?pYz&@Y^Uug#K&RlT$47ORG)try0l~VwIH&Eno$up9utA~X0%SHk(XYNktoQh)Q z4Pe}emCu#ja>%ByX46_`?3CU&)&B3P`6wjPw!EsY$x{%tMFQR7?GS7^X zcfY~ol%+c>TZJS%d!s)e+X=XtFdN4*{WW1Y&TaZVuLUFg7)kPq!g{&5@oc#c` zl^j=P^xuUB)apbB*`m+u&sM~DzT`@tX6r|4J#f5C@1WBlwiU4mLzyB{%+K#+J1hQO zjcHF2!=5JX-7s_Xl8@yVxDrJwiC-v28K=D0<;c%B+IF{Dj>yMc59>?F=1HU;8>01TKB@}`B z7I;C#zyToeBVrJ>gxbm9FOTjh`*`Tn+o-C79N!^vDN1x=@`dU(9}6DojoZ+0YztRC z!^T*E$6R-^7R6?K#jN+0fAj%qzo6@ovc!oGiuZJ)`NGOeK5#_4>?4RT*?;(poz4?} z$G(M&e6cLRdm`m`7V#$VspWYAbogRm?h>odSA9t-CCBI30Ya>`3gv#?X)Ozz0ttH_ z<6i4+G+a?$Hi%J1(~6!xp=^y}VV%6|o>6|$;oAxwCNEG?%WZcSa9#XFQ*E6B!IM}J z?v0EGJ|0aU`h7~T2Q6qAfI!waW@rPofcLQMVxy`Ot&J~X`{W6K60Xf!Dj>9lacz9` zA{~a1|0nvRb3goE6B=G`+O-D5*@hKMev5QL&8%$MSKXx<<}y&hUqyw;PHJTV(LoH% z*k*FiW*V~!vAAjlOYRdLzb`lZGVclF%Q;u7?BL*9J-2`th2{>26A1=6Ht^wGM16DnY+0AOl)u!KkshYU<9WvDbzgI4BarTxu3^u5Ls)^> z-)2KnJ{y@uIuZp0e~SE4Aa1OS@o2JDQMDt5wV>fYDnXBznU~f{tcJ^TC}i4E3?XU! zqV!t;hwZczkrq;tk7=zox6rmVZRK1ABh13XuKNdKDB0ZoIw{=)x&MyMuc>2PaKJPF zlxogf_d*^rP4^Cr;}~P#PD4}q3?YPg0`x8JzRY$0)O?j8I1vpOp`7HQ&-q)FM3a1d@T7dXFSfZwUSEPvrvcb7@tz

>6|I2tZ#O-x^Xr{VMHa_EI>)Rb6oR3fH zgh8It(`lZ#UxpUx*XrD1ZH&F#Bom=bC;&0A{AbEpSMVno0o|YZwOw=|`p1Jm!(sWN z>_OO-_9|E)EDN%-I)sLIPq5EY8{R@IC@2FkDknM7u!3mGR%)DwIG|B8`Pl$2AEljz z#JQoEtD^VZ5F;1zbEo#F++24tRAjN(!-5&T&BCY*Wx#e)R7b6*HJVVT_tYml7~Mrs z9H}=dm2~>PZh$o{)R2a7-*G=_?2Cr~&tEA@k~vepk-fywb8S{FG=XGWq+yVup4?RI z9;?0T19UB-Wm{Hwjz4kD#ES*mVdcQVmG}HOFGJEJD-y ZKsfe9+I=Xu)E`@e^V4^kB8HK*{{fY*JIeq7 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes128_16_7.blb b/ccm/tests/data/cavp_ccm_aes128_16_7.blb deleted file mode 100644 index 2ea0bfe7492e812da6a5374b396d72154e176e1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4797 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 diff --git a/ccm/tests/data/cavp_ccm_aes128_16_7_fail.blb b/ccm/tests/data/cavp_ccm_aes128_16_7_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..d4b0bab50794db6c63a66dcc628492aee2da5e84 GIT binary patch literal 2459 zcmV;M31s$wNC*(8s$*WI8w;`u2`klCK5~o@YI%)(UK(<=J|L}Jdk9v05KFVfr1+Dq zjGNqpJThHkvk)12`vU*Hk7=E(u7?RtQbQP>13o)u@9h+4hL1QT7sv&ahk7Wym-Gf0 z4e|m*9_R8=ql&L;sLe4qg1sp^`4K<`7@}oJ45*D?Q*E%^YP>-D@X%Z5sb-gVXc#w^ z&r!H?W>TaeM>Dwlut(1T`;n=Gej)`9HFy03bSL;5zerfzVpae!;vs-mnD@ ziOO1J1rMJ903h$havlqwOgxa@s}3Dp5xoTt?46F^@>WFv03eaHw|Rm;PYyYG&e=Pe zb8H0;E>KHpPmT2e03dsX{SaKqVBdzVhJt+xD03hQX*xZs2 z=a3E?7#IG8Tzv%&N>~uFA;}v603fbf2Y2v0zf>PET>z~A1C|92L z4^R!~R(h0N3iP5W8f6{i5$MoEg$VN0+JN`HVW1U?%)FwB6XT!g2?hraj-gpfSpG@? z2~aqdMFp=mryqe{a7T_?@YD;9bH)}an$!mlT6aU`o`Tu{ z2~eq8qcnrt|#zwYB&7`U$h4ft30@D%5Sm& z2~cG0FESAk+MH8~=p|eJX@_l3RF9O(%~G31)l9-n{~H~Oq2Dt5*ct~8OZ0;%a#a)n zFuj3j4n4rLR58gVnB1x+?+MBcrRQ;z-cZRe!tl~XllFa_3DYJOih(#Id_a~7KMiwt z8Qp};`#E|~VYdv0CMp9CqGd=7sEuDhq9lrlF3b2(+W8qXqlxE^fnq%)J^e?&gCRB= zIPp0C03iAB82r&Cf+iLSKmY5*$mRnMhwOAC@$39REA1Y@Y#gCU+5fumNW^sNE#Ls_ zc~J3tmu_dMhzORytK76enHXrEBYA%nSl^)p=j403daFj6dZdFAg)w7(9b|>h%K-Vnrlk z#W^%U9=L`+p#ZwP7ZYVl{Pj;E_`mm5B0ARsX{_ncH1cYe03b489p#n`5y>S)OI%0P zB8dYIOwPIvdhVA%^FA0%mT_h4VpJ)audJlw;~9hwLz`Q*2~03b{p)~9sH z=JeuW+aGhVsvrXnwG|r%0mg$sbJBAI?2+<}d9rwjAT-e)wxuR#M)Q8#w||5QsB?>q z03eImzz^~>5Fu;5B$yl?EcXKrPF-z!$>$zGpc`%#FXA$`!3$l9kO^VLMfAjIGv6dE zf@XNOjE0yI03a7m{Ror^`I9S-V;N=VVx|KQ+=%Ikl^Q=l{mRd;^ks!WY{XhEqh#iO z6DpC(i2$hi*T1n&$x-~J03eO%4`K_{9`0&bl3mC^OZo#2>K1(c5dqmiC=(Bpj76cT zD+1f<+t}ZMYi*NGhs>hi+x^6xeAqxi03bCdX`!0OTZ$2D;4!m3WJv)I{nFO;1IZOY zTar0XA>G5RN!hT78-kiyHOo3pBjS>#FScu5dba`&4N%`2QiaN-8%wl*Zd~l^r06Fh zf{kcGdN6^}jG;-^c5C{~?1=G{>stX1C)Yh#5CBv__C|$5k~`;{O9tQP2_V&d9j7{+ z7Wv7cErAVv;L#*!4NwH4pTP;=#wO?~eh*k}3;OdCU;%xV_AOqt@P}R6T+N%50&Aq7 zvrYjH-4@`^5>Vqnyk*bUUYKLZw?%zeucp1Uii8&pim7|0vzN6h(Rz|X4N!OF&0R5* zQ|z|5o-N@^&+bpZbBkf$6!Ve@LzzwQL9WvfIhE5nF6{vhY>TN+3Crd{cS_NykBhKl zl@x~5uEoEC)%;Ui(796hVgSJ-!+)ff3s7Li9$Y`<8FWLOY#wDGE(MUU>lyT?O`7 z$0?#f-IZj)Lmt$Sv3~ZSVHJR0RPPmT^x+Oz_tkoShGJt<3s9Dfp%qv>WLFTp?zx3s6agf*Th9ZA~;5S3WPgO;Z?ckuM7ZI+>AO03h0u^n<0R zkxaT2vF8B}Nggt=yZTH(b-wU*$DM5bf5$rS)_W}>Ti|4gH%EJ>2C@Dd<&h(v3sA>2 zTLT{WTi$kJCZ}LJ+Na#GdV4C1;k9u>4g+qajosF9zG5vmEL#B%yi0vLI1AuFH9fmQ z;?*Uo^!(UZ(D14o9)_$BlWklH#6h8tptv;t#u|q4JSFz+Q)*nA4pH3q$9+5#1uJx#2_+x zW7m-qveycJFmk5}RMINfBK$ISYW(JVG)pf$RsJ2G?NB_N6oK(Viq9Y`Q4Pvx<>s=h Z#ockKRN7HEc_OcIg16LaGsgqw=cpb1Y=Hm( literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes128_16_7_pass.blb b/ccm/tests/data/cavp_ccm_aes128_16_7_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..eb903a1c6f2b7ceb0f629742cedc93ecca20233d GIT binary patch literal 2477 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 diff --git a/ccm/tests/data/cavp_ccm_aes128_16_8_fail.blb b/ccm/tests/data/cavp_ccm_aes128_16_8_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes128_16_8_pass.blb b/ccm/tests/data/cavp_ccm_aes128_16_8_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..ab5ce46718c119c1d237c9f99f1a87f035d0b56d GIT binary patch literal 1109 zcmV-b1giTo0T2sfR=qNcOxh(7)hEFBKGXpaA^ngM*4ao(KxY3n#Q190bz2mk6yli! zM`Hp$bAX2DyJcLvOD$x5SRHt*TEwT*g$wQec$7Y=ZSN2 zu=oXFI+~tUS%gw3S7c-yJGZX2N<1)kD)06Vv#s^1Sen&M+5`d2mt|O%3ER_9?_5BQ z#?Z9^l3GXJ^-YcIn1G;qK4XBqq6#^c&n3mDxkr787Onqt0T8VH^8)P=YQ#YPotcTh z`s2yw79OywomB3RP*L#QtF@<4#Yc=0d5qyOng8K!<0GlIU*-b^qR?W>h@N`Mq*j!vPS;({2;DMVv=K zKRh~2CflKpI8t=1TEpLSC?8khk^_aj<`4FfnfFR4_81aAQb_Yl_Ero-kH` zo+a7}15o`fxnUY6qv;PwVMcxS4&23+^g=T$2$==_*CPkRHCq|#X4Ii>@qGahSR!>= zK1afRKpk?{vvKHLqghBdVQ^1?vo;S+W)SAp8F{g_l5J4c?Qe}-LiF?MQgD2t1u{SzXcJyw?310L8 z5NsTj!si=?TRZL7dtCx`N!-Tn| z*vTEg0T9l9#$5i|G1@>A!6}Ttf99#HH;;zX!XSA>%qk-z_>pLJIhSOy*8Ek;i zD`q?0iT$cE<0-YM_r;bYZs^^BPyiQA*gAiX+;OkIU7(c~12(>qg!Yr$J+bs%hlZY*y?*e~G*06S=4B>ApX1xQBuW1(V1=jJ`+v;al83SAq!- zFzH?tA{WRw(fOFAE;KGrEr7Al(_HqqJy3z2bK2VQm1QjRmnpL1%GdmNgNS-s%oTAx zlpBOymZiUC>G%rg`6B@k*}HMAkQFUlKp?-%p&-q^uzX)la5Inm1 z?^$MEnRXnptasOPxyk1ti+a~J?Y$Y00}{7)YN?p?(HNURpPIyE-cXB}=ZPdg z+cMilg*f=4k?oV+_^ztYzr%5=Fjml%B#`Asd5?JW?v&dX=69y8@Mw% zP+q!zJ3h*{fg!NfYRjF!#&v8GRkSY@T@iH_IPEsU{XBALw-z(O&jAAxO6LI(JY(L< zTR>QHp-_B-JXjjSbqgz0t<QCN<&^JGJ1dqI3eFg9x0o2T(D%3!Hq&4i(_>np*cNbyU<(0cI|^Lo0Rs}x zwXrEE;lpT2K>ogUTe##$U5yg;>0)WC(A4A&bIX=)EK)N=>88@x8Zh*2X>i=beKOfU z@M7kGG{KN=LQwor#nKKJ<++bk!UwuvtEzrM6`p3CxT#F#pUIr1Nc zNc!Ym$8F_%&foz966y*2<=PLV{*gdq?ilNG3nA`I6@9PEjC;&z7xhhC8;#cmj5i{R z1Nf~l!GRrNJMeg$?(b76*UOqNwA~xF^Tv?W?m-d%FDr0Rs|5n^EouU>BY>K-46l5+8YgM&C+9-`66k%@` zqO0|iJ?crV?H5Q{D%;JML0mKI`d1YVFcJMfl(nVKl=5^6C!lv4?yPt76N;{+O$Bu zmczm&37^G`!TEQ2Fh&Nk9{!gS`=L6&bo?ECM5zEUc{~fl-nQVr#KF=07vxpz8l~yt xT&<{KQ2I+0qk-;0{>Qf`o>=hEYCG=2ZDe18Gh!HHS5(zjKP=RX+p=fn$^n>vH4y*+ diff --git a/ccm/tests/data/cavp_ccm_aes128_16_9_fail.blb b/ccm/tests/data/cavp_ccm_aes128_16_9_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes128_16_9_pass.blb b/ccm/tests/data/cavp_ccm_aes128_16_9_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..ffff96e26100eca62879e04bf791e19b70f0f288 GIT binary patch literal 1119 zcmV-l1fcse0T8d;%!Kk+%XW);*EQ|E8IS=Iw|8o(nDo&Yn?RqM#AM!3ix}!TN(xmhmLVPuDkr zkO>P>6kQQ@7C7xT!TmgPXtx$K!OsB_O6LI(JY(LQH zp-_B-JXjjSbqgz0t<QCN z<&^JGJ1dqI3eFg9x0o2T(D%3!Hq&4i(_>np*cNbyU<(0cI|^Lo0TR!(u_-9w z!)QrB{=Rivxa3D&jS}_gVri?;)Z`6w%a(2|QZqy8rqb6MF!XI{aNNUvGTA@yV&;G} z!H{m`hy5t-`cMs1GNdoXgY@_pM7WvF@}^9!9(dJv5ijmp%pHqKdm29qm*}-|5_a8Tqj?qN)9NnyY=JO(=&*SyV9HL^#*FKHPJM zE<)SCc+W5oXczTOTpNwo1&lW$iUatqFu{Qx zVLR}6o9^#vHWBZ0JkfL7a64wJJW$K!$C;HYDEi+)MhB+Pft2a=5tOT}7_! zu&YMQ3O?S{HNgQA03p5@?RK-HOhCI{-qeHet`P?P2*u*L9Pn*AdUH{V)WmuF1?Dlj zQ<*R=RWZ@U9B!ciuqat;`SMNK3*k76*UO zqNwA~xF^Tv?W?m-d%FDr0TM);QSJv|7oIgh>6_npFmR)!gfVbVkSBbmT9*XDF6!dq z*9&6!77lpE5R&K@WFJal6|1Ni0LU8 zuZrQ{Py96}08XAQ3nk8{?QT!$2AVA7m~|r!0TN~mw$@ay%i6R+y_UnmB?+I!jKTSL zc`!x>u^#@H68oV#zjXW^eMG4MFnK%+!``;wzQn=N{1@a^>l&r$;#{q$VNm)@6r+Le lLH@_LC!SdF&}uvG!fj+twRzED%i`%ki<;uZ~H0A&R literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes128_4_13.blb b/ccm/tests/data/cavp_ccm_aes128_4_13.blb deleted file mode 100644 index 0214231071a32e157584c647bfc65ec0ad93b9d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4243 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 diff --git a/ccm/tests/data/cavp_ccm_aes128_4_13_fail.blb b/ccm/tests/data/cavp_ccm_aes128_4_13_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..34c61d90bad1d71f717b57a86a4da5a06d464570 GIT binary patch literal 2219 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 diff --git a/ccm/tests/data/cavp_ccm_aes128_4_7_fail.blb b/ccm/tests/data/cavp_ccm_aes128_4_7_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..493d8dc9c26d48f90cb7bc4119b5973eadbb89b4 GIT binary patch literal 1979 zcmV;s2SoUQNC*)5{mM$lPv`Iy-VZ|qoON*!kdm593dUPC3ei~>5&lRi5K89(5Ikev z%3E4FIoHrxk`Ni|{o>U|i=d+e8{T4@5&amQ13o)u@9h+4hL1QT7sv&ahk7Wym-Gf0 z4e|m*9_R8=ql&L;sLe4qg1sp^`4K<`7@}oJ45*D?Q*E%^YP>-D@X%Z5sb-gVXc#w^ z&r!H?W>TaeM>Dwlut(1T`;n=Gej)`9HFy00^1{!a)TNiOO1J1rMJ900{N@ z72gF8?46F^@>WFv00??KG?@hsE>KHpPmT2e00>IyesKj32GIhkGKgaU00``}jEe;h z!icyK`%^Rk00^8-#V`d92%%=#>t+xD00?I(p7sR}N>~uFA;}v600^*CjRFM@L(Y&{snl!6~w6FCjWap z%VgZ>%&Ls-rk^9_*c=BAQ$X!^Qpx`S4>(aS(g?p0)pQ0^ew5M*TW&6zuxLH~#)XEO zm+%J;oV?@$Q5%T>4>+%K+nm|f^kxUv`BW^XnTXvLC0tyQ7aW6*f0YLgj-gpfSpG@? z2{`3q$FBo~>J~#Bq6svjlb~4FBFp?ShREvm_$3DpT6aU`o`Tu{2{-^vor%N&s(F!| zCnGtpSJV-HVk1FI&n8~+Tx4P8C?nsZ;I1{enp-BGyd z7K70M2{_YI%b9F2b^kVcjmpcqjxw(ttmu_dMhzORytK76enHX zrEBYA%nSl^)p=j400>XEVSNJ*Vnrlk#W^%U9=L`+p#ZwP7ZYVl{Pj;E_`mm5B0ARs zX{_ncH1cYe00_WVy*>jDOwPIvdhVA%^FA0%mT_h4VpJ)audJlw;~9hwLz`Q*2~00@T!g?0lDwG|r%0mg$sbJBAI?2+<}d9rwjAT-e)wxuR#M)Q8#w||5QsB?>q z00`=g1P22SPF-z!$>$zGpc`%#FXA$`!3$l9kO^VLMfAjIGv6dEf@XNOjE0yI00=?B zEyV*4+=%Ikl^Q=l{mRd;^ks!WY{XhEqh#iO6DpC(i2$hi*T1n&$x-~J00`cM&s+lz z>K1(c5dqmiC=(Bpj76cTD+1f<+t}ZMYi*NGhs>hi+x^6xeAqxi00@Rdx<>&H{nFO; z1IZOYTar0XA>G5RN!hT78-kiyHOo3pBjS>#FScu5dba`&4LD52dYLDtyg(E|hYc~4 zzlrP7WA(rl0mmq&YiR)vC)Yh#5CBv__C|$5k~`;{O9tQP2_V&d9j7{+7Wv7cErAVv z;L#*!4LBbb#?x^B^b7$SBr{eAYiH>N)MqN<^N;Q=;fw(e-4@`^5>Vqnyk*bUUYKLZ zw?%zeucp1Uii8&pim7|0vzN6h(Rz|X4LC;aumRPI0o>ud@MO=)pi0chEJCw8p=Bgf zdVv8BY>TN+3Crd{cS_NykBhKll@x~5uEoEC)%;Ui(796hVgSJ-!+)ff3pkgx>n&A; ze_dUljCL)oB4t#L|KkA;A7=vs{M^Vu8lU-TjQp0hf!7gSf-Xa2*EL?n z+U+i`Tlk*oM67+B3pn-6ftcLr=#W@@Vpl5%K{}CJ`&D9$kQ@U=n<)VfT?O`7$0?#f z-IZj)Lmt$Sv3~ZSVHJR0RPPmT^x+Oz_tkoShGJt<3ph}~vG&E}$Z8Cej?2el?ys4- z{sh8;3PYAV1oHt7BBy=1{JfPwhQAj%!4G5Kb57&t3d9ffV{A$GjHJPC&M1}%>p?zx z3pgL!=@E(A0mTW7@l%T3*jpU_@T<^yd=wKf_A>zvNggt=yZTH(b-wU*$DM5bf5$rS z)_W}>Ti|4gH%EJ>2C@Dd<&h(v3phqDeBYXCRXfTz)Y&`jNrtx-&@_@bVLlMS_SXRp zyi0vLI1AuFH9fmQ;?*Uo^!(UZ(D14o9)_$BlWklH#sX&?D7qW59jg;f9m literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes128_4_7_pass.blb b/ccm/tests/data/cavp_ccm_aes128_4_7_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..36b62e81e62f6986a4d832c82c4e1dac3bcbff2e GIT binary patch literal 1139 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 diff --git a/ccm/tests/data/cavp_ccm_aes128_8_13_fail.blb b/ccm/tests/data/cavp_ccm_aes128_8_13_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes128_8_13_pass.blb b/ccm/tests/data/cavp_ccm_aes128_8_13_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..445dabe3000aadcf97c67c59a41636d8c6ac1f66 GIT binary patch literal 963 zcmV;!13dgP0u6*JghhmP0_t}*Iu^DNHjg!-_ztS9*1HpC2{@N00|7uZIc@y0JX_Keu z9zcEu7nA@%Xyk#bFg5@~Lfv%dmS&QuNV35mAHxyq$=S~K7C2qL^cgLReFgbNCu7THXK6I zxq zX%EYP;IaskhhJc|*mgQVAwrlbSs*`lz^2+YVc=>Sa>aJs*^e2tq5VhALHzI&0|7vD z?_!4xQ2NSUPHb+(U#GQ8_ny)z{PFyZdC9<)mIIqGY!|Immfy_Yi-&eF;pKwbwJNH< zI9f6vKx%_=L%m|gf9pu2&j00F$W>^A0#prMkwfc-|E86VaRUKBwKwqcm=p!}2Ae<` zW@Thyvr%d?(SdhyA*KxKQ+|B!Fx*NWIaVJOG7>l^D&P3GN=|nS3JiuyQb5|?!Y+NH z9+PtS^3=ijZ&kf+U7mUa0YGUDY9n_sPr~=z2ChIJHHF8YuVjjP^H{D<_7!H5BI_`o zuO#?Rh#2CAK@H;})?fSbT^bYzJYd>Dm^=9IWi=8*=8o7MKh}ro5+5_DYikcwh(UYq%bohn$rIA+&yx)YBD)#bo2ameccc~zP)ZX;|- zx6T`E{wBwWhcoMbKzCd>7gFeukq+#+x2evO3Y)g&`vdlz|N^C-ub$A*73w(8@^S!0iA4 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_10_13.blb b/ccm/tests/data/cavp_ccm_aes192_10_13.blb deleted file mode 100644 index fab5851234a63f7979afe7af4686256692292d3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1003 zcmVBQW(+E;I$%w|u`cSKBL=b>|c>x0jK+B-u6b}hb7iBJ{_Dm-B zo!LU0{`*0y@dU$*`7ro_IfeC`@`SxOg6Nsbn`iq;Z$7t;e!fJs!!GkH`PLay zjG!+m>`hYAv#u*F+Lc272<`O_1=QGIuK@!EK&VF0^=`Rivk0q?X?onFc&lvBpL3qv z*Y(>OdoTK#tT1whErQuVbd6Lto-soiBvS^PfYA>!SSVN%~# zy#WISKoEhi)xVz_hZdQ0>)fbZD`{DQRA)VWsn+85JyHV?!7#|4IE~g4OhF|cbRx7M zryfQa_0OLQWBf#f+%NkGaA@4hs#fI$25~EI;xyU>U5Eg(uqe%VUr&}mX#oQTKnI(} zL&;`yPp1eJ6Pu_75^?SvPjD4^0X#x~j{6iHw=if#o5S|Vy^lIZsNqLaEti={$c(3v z(gZ{#28^{Rs+khi@`@(+bo-*PvI&_y#yR-?KJ!=Q=ATeZl>q|; zdPu9!XTrK?khI%h+JdxHzRfBn?=Uj}h!rvf!`0q*L5o&f^|K={^7;;Lrmec!HHM_F@%DI&Y?~0D7)l=`VPIGinVLc9&E21FAAlOAe0U0RuoA zz*Io)J~YtsUXaQj%e7U|`;xN}VjUM7=JK~0l073Z^-?Z01=+WJzcN?bE0%TU80d6L z4&XlzM7a<-LfgBO;ZTNk9GkGC(=igYUzNAi^Dpqbkf?{45@)o`8cbVk?fw9Ytg=#$^&Egig#804 z5t)liBCc+n+{-96qgHcA6{7ciX@bysZX40en0WyMK+B-u6b}hb7iBJ{_Dm-Bo!LU0 z{`*0y@dU$*`7ro_IfeC`@`SxOg6Nsbn`iq;Z$7t;e!fJs!!GkH`PLayjG!+m z>`hYAv#u*F+Lc272<`O_1=QGIuK@!Im%L<+DD<=dTVg3cVjQDe6HVY+3LG7#`V@-(8AM__nH zyqGir13-)@yt%^>k;6ybWaUz?TK`ZEZf`m0W;Gqx22}x~gMBa2|P0RDqi}dW9&WoYn?e6A#m_C-|z{;l7)fbZD`{DQRA)VWsn+85JyHV?!7#|4IE~g4OhF|cbRx7MryfQa_0OLQ zWBf#f+%NkGaA@4hs#fI$25~EI;xyU>U5Eg(uqe%VUr&}mX#oR32b;x1$!2p;rw9}i zo2Ug6aqb*Xa20t0JVJkt`xG6wFla=Z!}iF%k2*%E;YU&}mzhY&jHi*(1VkhTjI}7L znG)6ViYE7T`=YS237I^`Ir#lP^H=5OpHNJd0Ruqi2}YNaI(xM1Mk`W9(+uJOya6$=6&Gu`dCfug^7bRI|XovDz+#=o6hAy zIa)A@JX}TFn48m-h035_*8sa0#U`{S?ew}t#ePdO1^T~Edok!|?(x=+K0oK7y}BPp Nud36Yk%O|A04FG1+Is*1 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_12_13.blb b/ccm/tests/data/cavp_ccm_aes192_12_13.blb deleted file mode 100644 index c5dd1735bc61c5c023de676743999e143c4d6243..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1023 zcmV)ZYdvs9*&H zKq@OK7i0_p1p`1aPX?XT ztXiY}!lzDy+M(6agD}lIkZ4MhV7o~5Vr@wR2L(!?2D9Fa;;~m8~7RSVCGGtwVv_g#PIR;{gQ&Ksu-M3dO&?v-sY8 zUUnv&V2`|ZHXR{ec&otU2;IX{k1$yZCvqA#n0+7m74kf6rOZ`r{Q7B=qWehBaTtI9 z|3U*2_h3a6KQs#pRJLUoP$D_+%R|Ph?1;4;3O9=Z1p`1krp@Im9;D^jM$W!4W%RS43>+TwltreSAyBY1a8wW!5Bb{ANb--2t?AXojhRT( zEDi%9^Dk{$i*Y(y61k=WblEUN7UKL+*#QLuKsfG~@Z4iubQYi_QeQt%4Sq2g!rMa|uY9rJbTnX1{p}-?MQ|c|1i) zp-oo(0`toUVG(22u<>(3lI@HE1p`3pJ3l;IDEHKg^33^ggOhu#%L;261Q39yI~BQP z49`R`xB+#bJ^vdJ2aWAy?RB11Q{%h_SH^{qNH2Oyt=KlfZVG^y)50bXlMLGSnJEPY zQtj`&yHVNJ2e-25_yGk2Kq!AP=9qwjJ@o0M|VM1p`1GMS00V48uy^6H@I%J`GQ*swf~1HJi&pK+{<{v!{|U&aE6;@ocD@ zz=9Wb_{*rmRv@4~{U_G(NLkh+R}`gk<;{;`!q=EN1qm7IqJ!jCGa1c*!Ojn!)DIq= z>;VM>KtJpbT*6If6O=d0$PpwI{Ee*58kDq}Om^balLJ(97cjmuFIexV_{NH3UJIPg zck+%ukE*9{%G5|HNf1>EZX&pcZY#XAo#r*s2E{emtV$N;JzDI~w5Ef5d8Q=+1p`3r zXjfA+V%hd diff --git a/ccm/tests/data/cavp_ccm_aes192_12_13_fail.blb b/ccm/tests/data/cavp_ccm_aes192_12_13_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_12_13_pass.blb b/ccm/tests/data/cavp_ccm_aes192_12_13_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..f85f0a2b9c895ff76b4fe3374df48b8d6ae87327 GIT binary patch literal 1011 zcmV9Cfc)WB`>M1UT2^Nne@3_hd4SNP7HkSZmlM?A1}Ugu0|7uO zz4luvIZZY_QbW`vo2>|SAo$lar(@coHEZNp)Q9CT(BuM5ZZq1iz!CmNHAU?p@p6YR zZ!^yNNJpPNK#TeS(aju-@fsF<=dMf5uo3W1ICC%)xa;NVD;XDL3!P58?8fu+=Tw=1LFe$Ksu-M3dO&?v-sY8UUnv& zV2`|ZHXR{ec&otU2;IX{k1$yZCvqA#n0+7m74kf6rOZ`r{Q7B=qWehBaTtI9|3U*2 z_h3a6KQs#pRJLUoP$D_+%R|Ph?1;4;3O9=b0YFwTG+$;d@<@npcN;5r%nZHA{!GNC z&E+c|q~+O0&b}~Z^s}H093JzOMW&k}P_Q&`R1g#o`P$G(@{f$I>D9!InMl(t4g(?c zFKt?jaXMNOxuyej*)T&E;`~tA0|7ud?w9b~V_b9=pd{n3T$SA&No}~LrNg|!3y_n_ zkZt=g4&I`#uCHYW1k%RFVk)hI7MKUggTZqNNSURbqDyAKc?sXMaZPzVMMN`I?TPXL`it^0)aD$V3tjh{(8Uzr4r#lt7WDL(lFt`DA zpgsQ^5C@IzWbJjHR8!-;23N*~kVr3jO0C#7!EOqGnA5^050ebq_L(UK1yb$ryt`4^ z)(5w;==cKxKq!AP=9qwjJ@o0M|VO z0YDu^dC5Tx!%E&0Qtd-N4Nt17C?F0so6A8!(^)yQr;;$vtsGkMY^a;Sf){o8%c#Ou zAfP?{C)V*uS=J+06s2<(PQ zO=lC7H_ONoBozFOtj!vfw3}Xe0Hg&b_jYAc% z)%Bc$Z#>H_3)c1oy;S$fR3RhIFv21?O*U(;FrTFc$!}6+P44z literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_14_13.blb b/ccm/tests/data/cavp_ccm_aes192_14_13.blb deleted file mode 100644 index 38a968d13696b398ae3ac122e8af11204c1a827f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1043 zcmV+u1nm1f0|5aT($q*UsOgLx^9g4dm7!)36)fU|Lrcmy4Q}Cg)Q?%cHw0e5H!%YR zK%Vl@)mG44`O)s3tD7<^IGlCOPMz*74G8Y3Veig{kT7@_j$Fgd-%F6yyb)nEWdjKV z;2Ccps2GD>Y$L*K}*sKAW7!bM3+JgD^ZflFG-D;2ClaIQMA2tUc>$L+9c3 zpCC-89aj5N9N?Nva71ddNQ`%=RA@C0<^mtf4vxTwow)y{ktOQFIROI&K;Euq_KUHB zc+tEEH1VI)t2qEk!paCb6`x!OkIPRAI53W?=PpwzL)L8QB@AmrO(~md`}pFt__0hB zjw2t&r$bdzm06LowQXbARM097r)7?2N-dc$eE1>Zo43^8_yGe2K;qSs%Rw$>`2<2& z*N$|N`S=Wr2oNkSU7`gw&i6{#$S@m#mbaSDjBe%I*mGYJhpH@;hF>@>!rDxMq*8_t zK#c9%rljtLbtHRVzzWoS5 zd0upr0)Q3S@~Y>vx1?i4H!uND6(N*ktRjL7rlI--*Y<`0KJq{W+Gk9gYtaw^?X01^ zcG^53^7p*OJ{2IZ7e`q8>%Fq$UcYEBf8z<3ya59RK;CYsZ8kyK7Q{JE-7)5+0hF0N zZt>IK+5h~a3olp@eK5?7g<4D!AV!gE-1rEdx;@)~NIoDOaRN+Ms6lJloFK)o7NBL) zXqtDJzGLjq59~ee;WxWm9&?4N8`ajBF#!VwK!>?EvD0pfnzK3`KJ8&}Fp@gTtH}xScK>LJ#L=4mgno`5wIWOoYYJQKpH^w2UrK$he7j1PqwY7+d5+K@&W7Q ztqqVeF4BQIGeZKNlK}$-K-A4?vTmd`mM4phuEat9-0;^a)ZoH?(K9bdha8saSTN+P z<3st1E%1~R!`}OawQ6lN+oJ{C&PGgrk0)|$1TAx_ZofkzbCn=23h;62&r^8-Wnde% NnR3HhSO`+)gaJdc@}vL& diff --git a/ccm/tests/data/cavp_ccm_aes192_14_13_fail.blb b/ccm/tests/data/cavp_ccm_aes192_14_13_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_14_13_pass.blb b/ccm/tests/data/cavp_ccm_aes192_14_13_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..ac609108d0c5b1c3f467ef20bf2d7f48c7e1b8bb GIT binary patch literal 1031 zcmV+i1o-Zo43^8_yGez;?g2)K9+s2tavWbdv&r z71{Et=d-t@V?;MF0Z$bnlw+(Sf(xdh`UKbZh5$bDKm^)nOq*-b5CQG1p}cn5JRtJ- zyv05hAg>okSo`a}vg2OAXfJ=`36{J813=zxsBJbu*%rh(Pu(%*r2&+gJ#O*S-`W5C zq6;rr5PdMrjD=cE5+FvAYuxw?EvD0pfnzK3`KJ8&}Fp@gTtH*W!!AK{$TOb0+3K=cP#2ib=~^F&X!t*F~NV({_->*TEskTNdPfjToo z0-lor13=WxX|islHI^rfjIP8%{@n1_Db(P?e$g{8NQWGj=~yu2tK&oYiY@Sz6T{y7 zg|%vJG~1&E+|EW!evc<|Yy>THs&2nSA#;@=E(-8*>d#Yo0A*kswV86mTUZEE=7gi; B@?`)3 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_16_10.blb b/ccm/tests/data/cavp_ccm_aes192_16_10.blb deleted file mode 100644 index e8d1ce12e6ff10ab3abc426fd62f30f1a76b8c44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1149 zcmV-@1cLiK0s#RSt8(u0tD^!1$%f(uEp9Alh#e%ZU(TwJ0~FV!ZgOtaKNW!MK)R@J z6ek-i=i9S=+ zY=@M8`HZ`$;ptFEa={@seGZL2+TMsWLOEYPpk@Aj*S?H{Rk;<)CNuq2e5dU};0Y!H z0~BuT|I#Pu)ijkOK;L&ZRtp*vs*Y1-0P1YpnrBxqnyvC$YLSTrS}>eHi!d4P@D~sb z$S)@C2o=R#5-tlBhcGCV!;w(phD>e}tO%W|q3KHWvh4&04Sx1rFLLnb&=*lnNsk{q z2i8!p-hz_>0~Drw26c5ma$1knKz-FlIeMA_DTW`mfn7nGFn^HJS=C=P1C|$55^T}8 zb})eP@#;p&EhzHV4y!rN1!_v~=0B#0Q;txGENFZK>Z;k-^^s(rb8ieBc==vH)C|{j znW$7t!l?e0^j3l0~G6nl8+5vdZVXLKn4uch}4Jo*X>Hl)G>GnR=E=JhJf z1jhGHa6y1#KROfq6Wf)Hy2PJ!A=a+}0~A+RtKc7c5rh5DKy*eaCNM$p?9a|h9=ySf zOqf6r`6L}RmSSV5viC0HYcQD*N%Ct_n)tB3;LL-VocI^gNF_mn^D(L{CkGDW|O~iVR$H_#C`p-Fbj+F3X=wT_$k`Uj` zK4B;U0~8j$@r()94>~F`K*hgXO{ P2Y@Rj>7}t;L$px=7H=Tq diff --git a/ccm/tests/data/cavp_ccm_aes192_16_10_fail.blb b/ccm/tests/data/cavp_ccm_aes192_16_10_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_16_10_pass.blb b/ccm/tests/data/cavp_ccm_aes192_16_10_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..2717ec6ac72a9e0417110b3f41ef94534f11ad45 GIT binary patch literal 1137 zcmV-%1djVM0T`=t?((an0tLy2;sq^kEN6%vB(7i1s*eE_*Q9Q8Zqz>&fa^fIsBaV} z8!PAAvwhrrmCi_4<$9?`B-NDHy=?BP+Kpc@DtSwU{GLjFZE&b7Q9=C^A$O>2PLIJl zP%VFUMno53JGLD*S4a~^w@=B|tHz_cy*V~r&W44Y*dvwE8~lv%hyfJPugk%*Qc6li zQ$Tzsaw7zK`9`pBYDNFvN?ydAD7YM=Eu^Ds^&{w>ov1Ls#m*BJ%-hY1#w3L2Wo(C( zfBB5NsNv~QM{>a-Hhm6_KHA=hGeS9EKA>g(eb>H>gH^c|$|f`YReY!ILEs4{0TgcR z|I#Pu)ijkOK;L&ZRtp*vs*Y1-0P1YpnrBxqnyvC$YLSTrS}>eHi!d4P@D~sb$S)@C z2o=R#5-tlBhcGCV!;w(phD>e}tO%W|q3KHWvh4&04Sx1rFLLnb&=*lnNsk{q2i8!p z-hz_>6sCLzb#*^-T94E~ebq)edYS<#h99PE>eDDu`0t2xdEYD(|sKc2;Z;b&I>w}Vy4PSbrr%ylz4AbPU&9FE(->LOPF^mcp&BK49qZ3=_h>FI3 zezI#Yf$0}clyY}_YZyld5R3uV>T6vPj>E>tP$WG13JNx)!UHpwi4f-XD$E4N_fBv@ zfMP#76Z{j~m5jQ?pL8MCuK^TSSF7M3dJ%*D&p>oWDJC#M@a)gdN*=tyj7*q75cwn> zHI`yysIvDi;%hLO5J~cDQkwX%zTnJ*n4I_*(nuvig7Y#^vIJ?h^FIle=-!5!(G1|3 zB%r<5wt9)6oJ4vtGW+ErF*9WV0M!cy0TkJ-{98n=dZ|kVK&om~NXG1kzIE)QS0$}3 zkS)B=gbgLKz4zuWN{^(a5ik^JBLS(K_JDw0AO2$DP;E%g=*1rK(p6BKMDL-6u)zZ* zyG%R?73QYoZt6B`nn7z?9@mmMB0q)71Z|HGATyDIoGDTXmsA_yM|iGz;tLYn~;l_T{(lD6c!hUGxR zu_MgM7Sd`iYKvYl1RBclJsEr9y8Zkb zA=Qpo(Ab+Rp~L@B`PYt~Izh9%zvossS~nGUZn#Ug*wIunmxot~KL>y-CF!NHTtl=` DvOplX literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_16_11.blb b/ccm/tests/data/cavp_ccm_aes192_16_11.blb deleted file mode 100644 index 4ff17e45cb714d21dca8c36cd6738229b3d94ecc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1159 zcmV;21bF*A0s#RSuY|_)0>zr{=GAhJ)!HsRWTmHp#Vk!50~X(z3__x4l?HdjGeD-R zU3fx&DSAtOA@KNMQd?eqADci#YgR{qzOFPlc z&Re-qjFTuOi}x9D(>^1k|AEXLoW2=q5|k!O{c3VmT+Zo zzAegah37y{4=vvqGJ)(97L&csqx_dcb36y6hNLZ5H*;G*Za?2Ja%e>48y-!FFeI}t z?hVePjEJ1GD2Q8pP?{4yMS{ZX#6^ZGoNq5qIU+oS2p%#lk0veS4W{oSFlJcY^g3A9FO01>f^A@I`ReSyrY)vvE*y( z761)cULBQL?jivL7A|fy2Mn(ph#>7bK#S4uIv6qh$dR3MZ?Z8F%0BeW%JKqa`nc;m z2Od^te=y1jV9XwtP;4vfCAB>%NBgT|PXltV$huG&=RAK%ErM z55KOQ*~AOC7sVe zT_o5KBCqEY#0P933>&L9k$DIG=eE;M6cA?hLsD(FFzb&Qh|54wLBB}RIITh2e)DA1 ztXZk!Bv91yF=oJ;6-I1+4l6KXe&wi7BG={vj){cLWf@VC3OCYm}DT8P?Q8Nu-8gz z6RIU7Mlg0TcjiPM;1{Vq*mnOcd4N<5ckUJKu<|)GP$bUGfyk_UsgPrG+)`umA`4B? ZV)5XDgYbVN=2Uf}57}--#>SP+g8}oE6;c2I diff --git a/ccm/tests/data/cavp_ccm_aes192_16_11_fail.blb b/ccm/tests/data/cavp_ccm_aes192_16_11_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_16_11_pass.blb b/ccm/tests/data/cavp_ccm_aes192_16_11_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..d78eb7734fd8b9032690e893bb8a4f0b17609add GIT binary patch literal 1147 zcmV->1cduC0T{1@#`6Njn(pS+a*oy7E<9wVr-8*RO&b9g-P5rmJ0e zLVqcGOMW5o2_N&NvJ9#};mgYjMV+1XmZr$zFm1FN>tB2%--#*P!vuq~$CFDt(ap|V zxloLgC?$*c8F14+BcuO;%p9D)8EO)gCQJQla#iGj8DqOJraj~QTY>==x9W0a8@?^d zZH4DRP7f{L7&3wE6Bd)b&ZGR7LvuU_q=uv|S2uH8KW;zYFmh-_%>KdDx7aGPB|hxga{roERQBF;|-?oP+#Ui#XWXkXDk60 zL~rgMb?2N7{GHrDLbaIc?k64w+3AhhK~l1g@efdKWxZw#FSxP3nk{lvFbv%DNbJeO zSbzb5EFlK_WWJm*8r;Tib5IN>SFlJcY^g3A9FO01>f^A@I`ReSyrY)vvE*y(761)c zULBQL?jiveE^agj46hrAAniFoi_z~o7%}|Fk)3mIvM~|LKJ?7W@&aV~xa&Iy9#&?5 zFvSJ519Gp(x=`Tk&?foJ(2qpD0;(LIX7_*yeFd9@c=m=F2-K-nw8{^`XUxo0^%sL#OjZna#47%)Px5`pq zvTlIx4AG2!^n5wT1cN?VzwGj3zuP2eW+(lX;UEDPYGo|q6Evg>C7sVeT_o5KBCqEY z#0P933>&L9k$DIG=eE;M6cA?hLsD(FFzb&Qh|54wLBB}RIITh2e)DA1tXZk!Bv91y zF=oJ;6-I1+4l6KXe&wi7BG={Hrbp#&n2@- z_7M&o6)TfaZiS#8XHZREa9s%V?Hs1@%BM?4FmN4O#uNw+zDltWK2#8#6WnsZe9q7#88w3F0j{1Y7?p@Bt|fHFn8ue z9^e(eE9rL^O0~i|eo^l+R=pVKyV{kxZ z_@M6PNP01e{@iKlOmQ*Yo+aWajlq{(j1j2MM1}?9#%?Z+OWe|)HR{Y1K1@jy< z;PawPP;wJQ;{65E?oe?xF$FDk>{cNc;B+2ei!K7Zo5>O`P=oPLYoMBLYf$jnO?`PcWnuV{`KA^v4~Zqi ze8XHEg)p$bNEd-hjsXK0w94CGoVH{Y!=twpK*TseY2cbYP2$N;eqdGDpaYcRXgQ5; zqbU>#dh9o$^e`g2-dQ0}q`5Q8UOmO|mf|_DOfN+Bg0N5`mgD%MBvK^Obn&?k(I|Yr z>qbm)sGj6??6pSkxQ8k~ivoeOkQY(`0~m7V&b_aQAY4v#LWV&8uK^E6D%1)%?)!L) zWR4udlFdu7j=ujqIT$EnDPTe{FlAb6T3Kb=nJ#ij(m_E5UYLz?YP*hdP-(J%E4ro} zPbA^OUI%#;fA4wh6@o}>Mp4iDR~2w!jw;$ScDnoLtb_(?(V0iIL8;}H)OM=5sC}}0~lBXjKf;f z+}BZ+;Uz#lr>9rxLO_~3In3M!Y0hK;_u(_Zd`v>)X4eXio83t;?9bR2`d&H#MwWlB z6Z|A`?m0xx<9TWHP(fNYhbjd1w6!-cV>wE>`!zlexwJ4v0W+w7qMl#Bsk{U*u*$#- zegOj*tk^2!8~m%;3iYo=K+Yl(ZvnmGVoAht0<_v_tv=qo)S+x7p>C(l-CZ_K5HOt~ zCeuk{)4CGPgd5W#18le~`*`xEQ(sVsrMQXa{dD{lGj1a{OG62WL2Q0&ZgNPoHp{-Y zPrkn{aCWJV&s)9$0~pdoSJh|z3T6GP@)k+j zYay5!)fQtgZKJG(P+pV7^O5Q{dY%>fn>dd5t|pVgP;fb@q@4O>0<^k2gbryS3=^zM zKC#CMqYkMF1bXzDjAjb^uQYDfTLA+YP{o|3PPRpLxGNLJKweHl%kgrBJT)Cze0^;= zv8l_qtdhV8W2g$mqS^50{V*l6x(btfar5qI=NByU#8OLUF8t7p;f>uAKik>h)l-{_plihZI7kEDlQLGQQGBW`Ib3-TD diff --git a/ccm/tests/data/cavp_ccm_aes192_16_12_fail.blb b/ccm/tests/data/cavp_ccm_aes192_16_12_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_16_12_pass.blb b/ccm/tests/data/cavp_ccm_aes192_16_12_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..9ade00d5ccdbcb46b4fdc3e6f1a5faa58bf93c85 GIT binary patch literal 1157 zcmV;01bX{20T|SqC0gx^;lM7o*sd$AZOwTB@%A0_yY&GW8uFfU9GK`IwkTt8KxFu! z?&U~&Nm!(b?KSZ-ejt`qEF0S)H2ah+sTc&pbT9@kudvMt(r#rCj1N})$D;-F95mqb zqD)Y76GYyp4@<2}e(j`?pR2)B3%D##kz&J&)=tjt4Yd)gPeNfXxGz>8OH(i)dp*r-Xr%`V- zG&Wq>M?BLO=$1@STQCf9jap>&H}=c4(h|`51GPu1OChgT?{;ERP$9*4d@Xe9BbrP^ z0T?lg-niJ`M~951krzPz%>{cNc;B+2ei!K7Zo5>O`P=oPLYoMBLYf$jnO?`PcWnuV{`KA^v4~Zqie8XHE zg)p$bNEd-hjsY07%G+O@wqzB*6;>k{aU{%^GtGFe19%Ss_oPxiiaNJ;m^r;yJHOFGTf%uuvkFn`*4@N4~3OMfjc#C9?9Kw># zOR$c<|2#PuC}JsKLNG98T5DQaW!sr9a!AraK?PozjdE(cj&e|GvVSYOrW{Ws;lf@A zc@%%|dF&N}NNYw>&-zytaAA%r+B0^&pFUp!7}x_3vmVMUL-Y0Ph(Km=LuK926kqG> zGxm!jia!bA<)pTON#@{fh+_eS5|uEW0ZIZ;dT%Cc(X8SdRjZ40m_PLcyPDfjBRYsS zP*aMyz}hgm1t<7`{H9rxLO_~3In3M!Y0hK;_u(_Zd`v>)X4eXio83t;?9bR2`d&H#MwWlB6Z|A`?m0xx z<9TWHP(fNYhbjd1w6!-cV>wE>`!zlexwJ4v0W+w7qMl#Bsk{U*u*$#-egPP)*ec^2 z{Hxgt^{+)h&LR?T0lnd3NyKpiwAyH`KHj|4p=>0fZl}!MT{cY+Fr6VL(@A5~x)RNV z8`B{JY`84@c=D!GUr>mpxQXWdbo>=FZX-8KLkWmMY<_EQa!9i_%f7ZxzP~PTcBzif zTfPAp(nMF)XZ;Fg{j2gBKmd``pEP*V#hdtaxox@54}ObJa;V=!%_ ztc6fslf?6p>Na|w75bYvj`yx6lfh7MIjE$Z`eXvMx;umpX&?*}tV%wy#|fhjsR;yn z^qGui3j41#Zq{1?7*NHWrB1d*b+{`N#z0<9Ld)@Tg*-JKS$utMII*eAx2%%D2xF)U z#G={o=lw7xvbqYBdvWvbXy+F!^2Ab0W-k2DjN-FU>0iV`ht4_0t!t6Ug@RT;riz|0 XK$PCNv6J0)e;0T^3sI~Ow=y#U`Y$K0 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_16_13.blb b/ccm/tests/data/cavp_ccm_aes192_16_13.blb deleted file mode 100644 index 9f95fdcee2bd2e9c80a7a002af9f6baa95c9db63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56960 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 L--^$qd5&lRi zeglU|i=d+e8{T4@5&b}v zugf4)llmBvmptbOb2@VojEv^BEU8F=^k~tj@t6w%HNqYwxd$PO$z{>pQTT+>>WB>plWJi0=Ll))5c%B+(kKXx1 z2O1_ou}=`O7C{{wTpG~;03g2&Q|?lojIYJ5dXFuI=b{H1vMIrHp*t;uuaWFUumAuc zXJc?>fo)Bpe=dKt4fbA<4j70}_Xld17+2O8{l z(S-`k33;LM83y|R03gJeMe^!AnSrf-o0KnMTa5!6NdQR_{nsXvd9m_vkpeF+wdy~^>+*KAp zunVKhwEzuJIEpBnxK%T@XR$%2jSP9L-nsktD2COmm<53WfA8;-!nF$G3zNtk0~%_h z_c2m0&VDv)rI|$l3s8n9zaBo?{Auwrj5$5n=e-;lEdm~GIyO?oxBZbEr+HBSEdyRh zx9kHNp&a$T&;%ai%OCGcLjVgn($q*UsOgLx^9g4dl>iG+fsm`@!X7dX5Q1JNk&wF(qf}`b zSmHxsbwfN#;)hqrR7{5P_fDpz0~)A=n?$X&jVBp-Woa+~3s408tSltIc93{{Rb6oF)nPuUlhE z7UhpFoX4r}coLy4Aecu03PduqT|0r6UwdJ03hr!`)fhM+UR`qmHZ#$pnw4yPVHFpf#m>@E2YI~ zWI&b$ZJxb+RXifhEuDdDVG=h`*=!pK#I|7vlqA1ANk#x5Gs5yQE!Dru+pu4a3N!sm z0UGcU`A=Dh$C{ye*ZurJVJj~3XfX-dlv4RnnL&0z(89hyinPnJq)vl1Td6QS03aQ( z0PyG2pf?yPKfxGhgeL(Saazxk&$gP?U^c{_a6py@XSiG7a|B~SB)Kw6;VK*vMIRrj z+k(b}CRNk)N1f972T)#%`wfw9s0U8t=<6s^*7+Rm9S#2&rU}RFpB9OE- zS*3`(12u1iZ0xYiuM67tdKjzN5!5kS03gu`e!Y6oq#t3rGNetxQw0GU{N1C)@aPCb zusw%}+CT&HB1ffEVWN}LQ^$0Jg`e8NxO^ml;s~SPc6|H&oD#a}+?rnx?cRbXPA? z03bwHAPE+t0T!^9B31_Rsp0_|WGdrEW?{}BQFuM>&Ok&mq0YsZY{5H^w}U~{Cc-3- z2^(2)Bhq94ugCZ;rKJEM%xh8enmy08O1rq9P4W>G0UEeNEj?8wpxWEIrnb01hVE`R zw4&LdwJyn4L$v5Aej|4w;aupyb(5)vMEE|s03aqr2jAzGzkhDA@@yZ41n&hJ2oiOA z(9BI2#LwrZLO|?nM5pOaQKQOj?jn$wITdy6audi>XZ!a_FWc_s8xRjr(eP1;DfF%{ z1w-B{ef~?Z5eu^geo{&t2EA><=Dfp0Z2!4wu8;$W1sd=55UjztUo`@p_uK$L2_v~D zxG7v+`u2ULUQiS%JIKcf{iO=FHCfH{FA_lmEhbILZJrmH7R~Z9l#yp2m=|Felda0+sFyS!BVxuW)9M_=% zmF*pr4=k6z|3}8~ZZZ#0kToh^$t_Q%DweJ&B^pQ^lRgC+{OlJIVxoGM z24R8vvOv#69K&ZG#Axb<_RI-{FV8xJv+oa~$Fd6}Aw{%Coni@45NKG42^E*c3d~fp z`(+gigQpQwQP%jqeb??kb}Ro4+bRA0eXnE}co<#MlO2iL2~gx#tNHGO;HHngu$)SI`nnGL3Z~ae7sNv` zKz0Wz4!tEm;j2i4>*@s>h~Ta>i@d4SDVr%nR6t#|!-(6h$?zmhG=g>XOJLS%cg$u@g1+g8L#Y7N;ac@RXQn@aGu^th*`n z1sX_V<6@T9ugN)@mAkY+HrOt`4i8`Bu_;E-L9SZv7Ut1#B|vT0cJ!IM*yyy#2~fhj zO;mLH%kirqB_M&3*DyiAIL{?wyNm@IFE$EC6$eg~B1Efy zn?UdgdjN)@fx!n9f$%e^zK)a(Hg+(CGMl(Y8<7Gdk536um5I2k%SYu-ZjY@#Wd6tP zPjIY5TeIazx8~7<@1gY@fAb!yQter~1sYlwsE{ky51?%R7))0{Ih|_;QiEhy>`!nX z4Z!8D*F6?kU17@`wYTnqPr`@DFioTjfLELyno|k)@9ek0S)%zAQ5>cG5Ks)2wvw=W lIRl$O$PD!__ZA4QhskrSoXd#2sPY86n6Z4b$Yf4OD;~<){xbjo literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_16_13_pass.blb b/ccm/tests/data/cavp_ccm_aes192_16_13_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..d80c7db65af45cdcb9475e8be6fbf559fa273202 GIT binary patch literal 53748 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%0AW= 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 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_16_7.blb b/ccm/tests/data/cavp_ccm_aes192_16_7.blb deleted file mode 100644 index 6f1764b5fb445d2b1ff2c37861e2a8b1998ef878..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4837 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 F^oH;&g_ZyS literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_16_7_pass.blb b/ccm/tests/data/cavp_ccm_aes192_16_7_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..6c362dd37b56d5913cae8ce86d9152bdbd09fe58 GIT binary patch literal 2517 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 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_16_8.blb b/ccm/tests/data/cavp_ccm_aes192_16_8.blb deleted file mode 100644 index 9df598f8db8f49087e5f2519fc23f3b44bb8aeeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1129 zcmV-v1eW_e0s#RS9o1w)`U#{ckg>EUOO*$3>Wl88;7A!g0}!oromp*&q_jZBav6}A zD6Q{gLL!C$jvg>*XQ9Be+Lc5_2d0Zf$y4Moy^_{+Ox{Fq$YK^HWsk(X0NlBM1{qq{ zPzP-P(8`yO;=0rk&eU273cC9ushF1br&<|lCu*Xw&9i*U@`PQ#ZUF-jvD|^t7THf; zK&ne|kZWc_@egLgIUd1R$Ia<}vm)CN1X}dPB!~z0kuaL3+u_YVxs5XnlYKGolfLMa zi)>u|INnfl4`_C*k!D{Y6m)~|WnbIk8DpRxHu2h~em2+4ja1L<2Vzk~brO340}$s} zbB*=Ln)5(c75XEOLoAYRV%?K)jSewILXHm9ULN{^NYccsY`Rb|&Vad)IiYT80gWC! zBc0K|2I)$8u(97aP^{m3qwUHSV{(4jT&wVf!tluQbymZ`WbaVeTf?p9r*qj>vStdy zX8{8c)rQ2zeN$9+Kpu_8JZw~@K(??TXS#fGk|ED1pQDL#nQ|qdwqI*<~`U1U9h;3TT>rYki+ zo9#Ae5{S|P0}yxUH(2(KCo4cD$PV7~)xC=ZpQkY)TY$F#f^Q8I3fZ3~_e&&^fP6hrl z_m=Rqr&>jy&TM^j3;_cWF&)B1RFVeGK!mteBwqAj?bDOHzYSrSx zIse|DY%qqAz%UviYF|Ft5;%s@05F@_RxsAMMfFhgpW|W*1G9Qd^jDCc2XI7tNs7{< z@cGxbU!FoaiBPq3;6&x*kjJ^}5Wb zPhkJskwT(c8r7pPxxT~Vt;jYYcOXdC%lmJ5H9(MK%ECGia#1jYb)k*ia5DS zPejSSK*)JJX|LEF0cmP$N-)l%j(pJX@Wtx>?2wI0sJbvda;>91u!m5_1>}z|X6WFl zByr?sm>T8d9kb-EfUuuX1+Z-u_CGHHT>eCODB1}D0}uk&E#4#fcPv0H#7sGq4lSIN z(%a+r~A}f$(Q14uP2}H%jBW$+A5hBm6sOOgQ&VQ6i^eyEChd5{fp3x%r diff --git a/ccm/tests/data/cavp_ccm_aes192_16_8_fail.blb b/ccm/tests/data/cavp_ccm_aes192_16_8_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_16_8_pass.blb b/ccm/tests/data/cavp_ccm_aes192_16_8_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..de8998858f30749606ba4f81b7bc17bf6a22a496 GIT binary patch literal 1117 zcmV-j1fu&g0T>8myhDQ)Dh0qS_ule`y#2BmiDJw8EGeKqOi@ge9H2KUB7Mt5V72W(H7ZHUO=i# zagb|fLh%n~!Z{wnSI5oiezPLm5CmHE#UzLa_K`4}rrY7oKDmuE43m8^?~}ghlZ$Lz z{W#uGat~;BtdVA4AQW_i@MT}y;u&M09yamXrhYcp%#Bpf><3~|M0FB-0TAa{bB*=L zn)5(c75XEOLoAYRV%?K)jSewILXHm9ULN{^NYccsY`Rb|&Vad)IiYT80gWC!Bc0K| z2I)$8u(97aP^{m3qwUHSV{(4jT&wVf!tluQbymZ`WbaVeTf?p9r*qj>vStdyX8{n^ zhQ!8wQ&e_99*xF4Y*eK{wy+>)x_ohxAXlx?KWr< zh|&QNcjz}*_KhbiKqbfy-t*PHiv*viF(F%k$}Z{dZ?I7^Zj5aUo)P2M?=X_&dxEzp z);V{5U06fjDqJ>6R?ABv%DqqiBPq3;6&x*kjJ^}5WbPhkJskwT(c z8r7pPxxT~Vt;jYYcOXdC%lmJ5FIJrtsM9IED$ayHx-dR+t)o4#hfu}^P}6(S3v|Ov!BmV$=dAM(-4S-kk@!8mpUoL>;Ev9{VXM#PG>Ha zRjH-9k4z58#KfF>-X^3_q+n-EFExi^>3#f_jgXf<9zmVFYJ)DAb$PPHro8YqZ%EIH zSbC=$O`@@6v!gupc{wWfm4hCyYu`32r#y- zp)YzUAs(G92g|e5pQn1Qz<0AuM)^>WwcwRQh`F_e8AvH&NPe3KXzY{jC0_7@!h;z#YQ$R7p4x%#Mo z$T1c=$=7PGS*F7&qB&iOwX8Zwx+mSncFYTlK}$~-f)|yOt)7Az(5T6>8q7?Yj3Dth}dpV zG@2K{*#!xco-{t~>4@h>B2_R^-JjZ(N%CFTXe3%{RJhfXM$+>(t@*D|{LDT?uco~( zy!>2)O}0JB(Ne%n4ZyTLIWb}-D(M`gZ@B0)jJ~&B0Rs}T8%!H|COC3sKosqUe8~yG zVV^c>7^l^)B`2S;H{ssr{g~apJJFql9Wdiwq@ivnPs+4c{Y}S+Y(0VeW{er&^K?+$ z%8H`uxU4^2xy_Yet_N7x-$2*cXwml{NsgxMf>EZ?Nyo}KvR~u@0}>$6GAF0}uJO)5 z#lccV=0RwE45{f8Kx)k`a`?OfKW@g?IH*BZ$S1fIxLX*VcF#@amL_(jx%_5+;9k zx$F;Kd~ZN2LL20L2i&nL2L|^^4Fv*E&W}SddEt)7k4%Pm_3>3OlQ6p@LW;CsS2-i; zciVJ`B7)1|Hyx&qP{yt#_$tNEoEW0nj$r^N>m_EP%>4P8MP*(T$GnT_ex!4V%X=8S F@B#W-Fb4nt diff --git a/ccm/tests/data/cavp_ccm_aes192_16_9_fail.blb b/ccm/tests/data/cavp_ccm_aes192_16_9_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_16_9_pass.blb b/ccm/tests/data/cavp_ccm_aes192_16_9_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..7400d182f1effa12ddab9b3c4cd02d81e4755a3f GIT binary patch literal 1127 zcmV-t1ep6W0T_(NB4kiy$1M#i%5{J&@w>f&31=Z>8US3RjrT|E@AYcnJ3EXoxWpDG6*nPdo~pRoYiNq(W=zt^(@2sOrtBCAv{%3 zEq}N^W+Cp`2R;La&@#r98}B!=&o-pS#p7Zk(R^>PV;nzL3OwYb0TLg_q(0FkbX^2M z$da&?7ch3D4kS_{m%bP}6(S3v|Ov!BmV$=dAM(-4S-kk@!8mpUoL>;Ev9{VXM#PG>HaRjH-9 zk4z58#KfF>-X^3_q+n-EFExi^>3#f_jgXf<9zmVFYJ)DAb$PPHro8YqZ%EIHSUMwX?PE^n}~C;-AvA#{k&Xo$+uM^Hy`(h%xrjlZjw;~?q8OK9|buv-Cw zY|lc8q7?Yj3Dth}dpVG@2K{*#!xc zo-{t~>4@h>B2_R^-JjZ(N%CFTXe3%{RJhfXM$+>(t@*D|{LDT?uco~(y!>2)O}0JB z(Ne%n4ZyTLIWb}-D(M`gZ@B0)jJ~&B0TQtrOdEP8IC5n`6zzt5$qB$=pEhY2r`4_{ zC!eu5;oj%{nBBfR(Vc`HFymgNp>8Kn%CuMgO~;6AJ%RjYj2YnbbWq&NilXYctUq13 z&6QxT2UyqNK-bu4(f1!oj;8E_QKr#J$I3XeU*rK2AkZ==r~Iz*&OpV%Qbp!LXnhQ+ z=@UR|%`M~dAG-3~UQUT)A}yvJ0;Vu$b>;g1(6K&v+Hj|d1R_P%?=kANBvXJ;OStVK z2lH=0_ANRrkoe=hk64gdwvaawjN_|@MMdg?ls@q4l!?+K0TL#EcDd{iUVLvrD?%IO zeFxmJDhCGlNeu-8PtK1+FnQsQ$B#^gc=hpBFq1I5BSMO_UspLJ>37?7h$4c^;Wr(o tj!?#~B={=D&zu;d*^XfVC+j63*bhh|7Bzyzp1@FWdkC literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_4_13.blb b/ccm/tests/data/cavp_ccm_aes192_4_13.blb deleted file mode 100644 index 501a7de25a2e907dc2a95428ed427464aa7c354d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4283 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 diff --git a/ccm/tests/data/cavp_ccm_aes192_4_13_fail.blb b/ccm/tests/data/cavp_ccm_aes192_4_13_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..b9aaeea7cadc6a895f55638e803988bab0931c9c GIT binary patch literal 2251 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 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_4_7.blb b/ccm/tests/data/cavp_ccm_aes192_4_7.blb deleted file mode 100644 index 3b14a62ce368e67f04c28ec9e98c766b40ff8e9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3002 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 YtUv9{#gcrgKkxd{l3j%d@y77~0KPjsh5!Hn diff --git a/ccm/tests/data/cavp_ccm_aes192_4_7_fail.blb b/ccm/tests/data/cavp_ccm_aes192_4_7_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..74b43eae9ddaac5e99c82fffd21257002398bb71 GIT binary patch literal 2011 zcmV<12PF7_NC+7D{mM$lPv`Iy-VZ|qoON-O)kMx+74Fm+$%@zWi!6SZ44al-$a)AM zgM@L9cpz+S7?6^hOA5wYH44#L77_kPDSiW$Z(xJuQ5YHP{o>U|i=d+e8{T4@5&b}v zugf4)llmB)13o)u@9h+4hL1QT7sv&ahk7Wym-Gf04e|m*9_R8=ql&L;sLe4qg1sp^ z`4K<`7@}oJ45*D?Q*E%^YP>-D@X%Z5sb-gVXc#w^&r!H?W>TaeM>Dwlut(1T`;n=G zej)=7HFy00@9|UFic3iOO1J1rMJ900=K{s3QXo?46F^@>WFv00=z6GR6ZA zE>KHpPmT2e00=?g?w|t>2GIhkGKgaU00_t+xD00>Zm;A#U7N>~uFA;}v600?kce9i+7L&TmNvl>CE>+YNiV~96q9v(_>k|kmf^)WrkTwSnQ$X!^ zQpx`S4>+k~!&Zv46R~v7mCPPIrXJyeDJ$#SC>NVe<6j33oV?@$Q5%T>4>$vs=E&Pa z<@&+}^u>1lS955s%V>=A*XM2d|HTImj-gpfSpG@?2{-}cyOWL<&?rqE5AFn=fcuv< zYUJ2KC(m;>qY4KOT6aU`o`Tu{2{^0QRUBS~>Av;*`qSb~6YwZxK@P5wcdZOS%yI_~ z^mq4E*Y0)z2{=1i#b8ilJ#m9Ou+%-#H-(vSxZ1PUd6?dJ{v2{QO1vD(&C-!SHO6NFo1;4bbV*nNrIT_-LC}>qGd=7sEuDhq9lrlF3b2(+W8qXqlxE^fnq%)J^e?&gCRB= zIPp0C00=Ke0xAU#hwOAC@$39REA1Y@Y#gCU+5fumNW^sNE#Ls_c~J3tmu_dMhzORytK76enHXrEBYA%nSl^)p=j40000_^AACUzPwG|r%0mg$s zbJBAI?2+<}d9rwjAT-e)wxuR#M)Q8#w||5QsB?>q00>VG1iS?fPF-z!$>$zGpc`%# zFXA$`!3$l9kO^VLMfAjIGv6dEf@XNOjE0yI00{h$6W;|6+=%Ikl^Q=l{mRd;^ks!W zY{XhEqh#iO6DpC(i2$hi*T1n&$x-~J00>bu-tz?x>K1(c5dqmiC=(Bpj76cTD+1f< z+t}ZMYi*NGhs>hi+x^6xeAqxi00;{lzp()h{nFO;1IZOYTar0XA>G5RN!hT78-kiy zHOo3pBjS>#FScu5dba`&4LF3@AugQ!At5CzsyhZ-9^CZ=m$_L@vFq2CSS0}tC)Yh# z5CBv__C|$5k~`;{O9tQP2_V&d9j7{+7Wv7cErAVv;L#*!4LDz5sQ722J0N%L#+YNW zmBYrau6=y1=lJ*cmi_?_-4@`^5>Vqnyk*bUUYKLZw?%zeucp1Uii8&pim7|0vzN6h z(Rz|X4LB21v-%sc)qndFkQazt0^)3tBN`;NrWLsH@~#06Y>TN+3Crd{cS_NykBhKl zl@x~5uEoEC)%;Ui(796hVgSJ-!+)ff3pfm+evgU1rhT-Ej}tET#@~7=DHPNJDVp}b zH~;|-A7=vs{M^Vu8lU-TjQp0hf!7gSf-Xa2*EL?n+U+i`Tlk*oM67+B3pfnrLsp)F zhx5+I1DXGlE=dE+9TNGF@KzHfO!ff|T?O`7$0?#f-IZj)Lmt$Sv3~ZSVHJR0RPPmT z^x+Oz_tkoShGJt<3phH>ycRk&4>2c^u~MWSS7Lh{$iF^8$gZV_ZRi0GBBy=1{JfPw zhQAj%!4G5Kb57&t3d9ffV{A$GjHJPC&M1}%>p?zx3pij!800qX_n=lCUMNpF6@!{> zD9Z-#c`6xj?H2(KNggt=yZTH(b-wU*$DM5bf5$rS)_W}>Ti|4gH%EJ>2C@Dd<&h(v z3po6FwIJ4gsFCJ2RM(Pyw#Wf2mY7-qS=IK9jidn%yi0vLI1AuFH9fmQ;?*Uo^!(UZ z(D14o9)_$BlWklH#-jZF^EjkEv& literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_4_7_pass.blb b/ccm/tests/data/cavp_ccm_aes192_4_7_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..ac71c8ba3d9a7df1aab39d30c5570c40eff641c0 GIT binary patch literal 1171 zcmV;E1Z?|c1{nGM%1Xvh=kOHX4?_c-b#au{M9y6m?$j8`ir4dtEPj^^o0eY4dI%tc zgmI5}AZ%5&lRieglTaeM>Dwlut(1T`;n=Gej@B5v7%`Bjw}NS000P` zOMg294h7+F4??E&000QbomE!@4yoTyH-vs4000Ogmu^A>4iVp1{LwM#000Q|K z4v7!{R?!W>000PxkUzNx2>>uRmd{bRa%NJbAV)K}`>;pP0Q-@tgMK17K^cb7O=M#b z3;zT6(7osCEHsFCLwFO6-N`ys2M!WC3+m2JIRG%713o)u@9h+4hL1QT7sv&ahk7Wy zm-GfWv>W@WPTa4=8%z{JX}J<=ZAY=5gRxg~vW$*62M+donD5h@RRA#Z=|thKN3B?M zzd0Wp48VV3QR_@lyG61%3V-G>M%wtPd6Qd-aEQiA%o|6gskm?5ZSN?n2M*>AEC4MW znE)_w^o_ySZcr%N2jZAgfD?78?Xn?CUZlV{+V|Jrr4r7u*V98*G})&MKK91kIP?kN zXp|q$2M!621wWvGLjW+nfoKjrz_U~_$t9TFswVFV$_=IGag*LS&9oQa_D~`ScV8jn zT-%O55t%TJ8k8cCQK9Tg1qllP2ptHTUj+_~XnR8#fjU6^tx~9kL^4~m9<|;|LEHao zmiCt-l<~%2v`&lIt32$NaZ44J(@uM#!mNYJN*h3(7cX|tgmD=XO^SmTKw{? z8nHI^KYMNf2z19>N(Bz)f++RITXR5RPW||t;;H<-IK9BM&dyZd*Hb8f;Iz(ev!nqF ze6i;M2$+P4ivbA>FrsBh45*D?Q*E%^YP>-D@X%Z5sb-gVXgHs2q_3M5kx0mirdUl8 zgX$*YVMuhaP(^j#sL=rq%I{6Vm1vtYIZID3W?N5A^WYTc^Fe}sXRvab8 zxm$}%Q}zK4s6gqB_bTZ?BF12MGVdGQf6rl;;5W^!*X|d<2vsfF@Joec(@(K{FrxJ{ zg<*?9Fdt4nq{Wx?5fDABD>tk4+Bi|RxhTES%nQ((exPTF{txEJVbf?Uhc#d^@HfZHb-QtI8v%VlYQLW&l;1@3wz=cJQUlbWgNa z@7Ql)R!BT1(!Ma^aYLO{p#H*<#sWB^X1^HjL3Vb zNexS(U=g3i)<$>?#xO*S_f9VenBWx%# zPXuBM&>S$-hfFzVf7E%%QUL`6Kxl3Sc6dS z#xSnG!E1i|kmb1OX0Ry)z|Y{)ssM1Lm5rQVuPCU$r<3wB1k z!!lPlbO8keK;zP%mj-7jYJpg4pewYH$1RJqqX_E$#o7%JU)|B6S1<^&&R=qt0d9uS zFN}Fo*G6zYwi`Ve&q&|R!C+Z?*IK{It6Uh^!!}HF>tc(ze@lB diff --git a/ccm/tests/data/cavp_ccm_aes192_6_13_fail.blb b/ccm/tests/data/cavp_ccm_aes192_6_13_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_6_13_pass.blb b/ccm/tests/data/cavp_ccm_aes192_6_13_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..b546fbfac7dcbec0f26a828abdb012aab2369cb4 GIT binary patch literal 951 zcmV;o14#Tb0uA+oeo=6Jjbyu0DTTWj6lxYbzYuh8d=ddvYou-GX}%-**UT({0|7u; zn-c5OG}Q!RhsX%e|dKBrOb3sv{vuf zZ(&wQJSNh?&32CAIV@mA2t>ZSv~fy zxpzv9^Q|Y~pSeShPch65wdIqJjCBJ6Kn=&4lLUX(=OzlQO@x2jO%_N$D6uZ0DFxFsD~OTYcB` z&Ynbo_5;B|MWTOvdXh$?&pgJy=4;73Smm{y2*fwbH%AM}4#P=krlLG-0$-{d0|7vP zIgjwvek>2n*r9C6=bK0qtE@ufM*1_l136arnAWT?gf|6O;Jf!v(44Dsf~x4GUclrs!ty#(X3(Exw88@cKuWr#CJcr}a^WRY#j3yNE>3VbNexS(U=g3i z)<$>?#xO*S_f9VenBWx%#PXuBM&>S$- zhfFzVf7E%%QUd`%Xl?~~>fISwGLfJj5u%^TS}YZ9p#a^5LYmc!rc^-2Fs{Gj;aZ1e z66~G#6!EX9nC6fK!S5w=D?HCuJJIfJ$T`PEei)&r4G>@5(V^zD-!6MA?XzNtv~Xo--F3jLyLW0YIKEsOx`L2!7=Tl2%A& z9`67BWI6?G)b#vZ!ZC8S#y2qMJ$)l{ZLxgHfoifu0Ai>G5qH#o>rqZThSa4K$A%qO Z;aK8;a0(QvtfvKSq{UPtyn>m`pOw<)zYG8X literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_8_13.blb b/ccm/tests/data/cavp_ccm_aes192_8_13.blb deleted file mode 100644 index a84e2a17e63a53585548e683e7b5934c83e5b923..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 983 zcmV;|11S7F0|5aI%sg3Z=!ECW?NBonz!<&qcdsHQ@IJwyx_X5&t>&(&v(*{?EjR@O zKuu*v7JEL`UjfD|(}dtI5IMlse)p^6GLinv6Jm1rJ1`IUp8t}iFt%od&2^)cf#=|9 zr_f%Bwvs?@_G(hdX1!hV4#f#==^uMavFZZjavns(CqzHbOF~S}8LzvZjPPrAK+xp& zPAJ{UD6`HtvxPtGPE+`1h=^f4r{HzyDGMijK#KiSx(=cgEn+)Hf=2bhyy^-Vh?f^U z;_=HOkNq$B<^cr*Kt0nD2Lq{F1-ZG;`6{<0PHb(GDWP!(C`>@X?c*BCM1zc%Y!3l7^8=@h#6-c*8#B@$IO5WPsPq2; z1p`0?O5_GXR<`TFk{q(b#s`;UIrt>h+-U;p#%U1T;D)j=iWZp$ka2y%Zt5i3Ifsfa z=fPK*cIB~iKmx>oQp4syH!5oCpj**T51p`3&Q0Z-DrC$3x;BQ0_gc>U2;{ZBCC$h;) zp?eMJ&oDfDN@(A=X5vRV@kugPKe!(xSsxBD=#@ZSb-u-gbn6Mzv-vgrE1x)0&NP3p zE%OUZ;+7}xyfq^M1p`3gZe74Mah_d)Uz2-hEb~oWLJB!W$oDoyBo}$ozQIs10|Sc9 zErU_y<*G1_RZ73j4FfdT_+;#0Kw=GkV0S>=4{;zk@|!mwO+e{cxJG#Q{s~cN?T~_f FvH|Jv*|h)w diff --git a/ccm/tests/data/cavp_ccm_aes192_8_13_fail.blb b/ccm/tests/data/cavp_ccm_aes192_8_13_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes192_8_13_pass.blb b/ccm/tests/data/cavp_ccm_aes192_8_13_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..762d2c738ece77cf255ce6ea226bc4beb41f8310 GIT binary patch literal 971 zcmV;+12p_H0u9VOS!?Ko=gRF+GZnxXz4CXjA|~)Y!JxW&g)*(?uBo%t8U8Ie0|7uy zWkwczKGk0V#w*i=;4Tn3z}9~EtK%|}{>u|$a`!th5BQ${lBF=VW`xakqm+T?;AyAO zUWvAnKyLPGQpje#UGfga32o^iXRU+Eu;7)g40nntpAsbT3 z$tbhVH?xI5>`qig*8Vc=aOkDN#;}*5O;7^?K=-$5Do@~{uzG75J4OJmz$0MmHHAHh z{)$gAsNJNB*)YNR$FktMaVt$LGURDH6jCT5Ihk-bXZ%2*_cI^5dHlfHp*onSMzqpp z%T)Q!D|}-1E_A{%FOow80YE@+Im>sr*v3D1m(hf_>)wHy_tcH$05v$kBL0@RLC!Gi z^QRY7VVTDEu}=Poh+#aZ;C1LJ3nzR)iv3f%4x$t-Vmn5HM)kqG>IxW$mlr(Z@yjBQ z{V(|D0|7ui(-8*)saplPxzG73w*xY!^Q`fV>$RF)ZA$T>c(jh+~9_?Fp3tL29R-m!EWj#+Bt`cF6Y5lnRex| zb3p4DZL7+%@GAOXET;GRDz2(4I{C=?s_n15^lMIayAcBcKva3mf09NI_oL+i_ib?F z18hVv00jk$RTty-O4J)hvoIchQSkbjGworFCiUZYRNoJM=XZ#L!fZf)aHUmx>oQp4syH!5oCpj**T70YLds>1}1DUi&-arCqQ4LK^zf)nZ;WK%rz5 z2vlkB{v0qq@$|$v+~F~q3#B&KrWRl#u6^XBHu!u%U;hAUVjpbU4S}sn8QZqtZ$uD; z8Y<)BwG6m%7d@M}0|7u%bSvYQm@vAWE6yg#j4!lG$bsxt$W|w^$xESo4d~A>JbOxL z-?wJsM>+9HGFCshA0$~H4l(GJKwWjd#f5b13DdLrHT)}|I8x3uf3Pj{3rymcC-1y9 zBLe|I;ci{PG;y9?fnSq*XDstgT|x>uMacIyMI;w_(!Rk^FaraM%`Jmb(T` literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes256_10_13.blb b/ccm/tests/data/cavp_ccm_aes256_10_13.blb deleted file mode 100644 index def67e6ee51731ef21b9332746adde80b722a180..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1011 zcmVSm4h3k|qc zlF+Cb$={w3nUP|0s{2Hj0)6H0{es1hjla1G*J*FQEmVq|< zKzF8vm5itX+spGt*1E?gV$+8Rnb*AD_GVpIy3I~ik1)cSAeMrIC4vquddi`C$BDLs z4#N_S*ZD+0J+~F$h^$IE^;e?+v}ZY%zQe;3o$MkgitMz*j3bf49RULcKsr>@;Y+;* zNmmZ>BqhYNZ_-nO)oW^+bOVZ095+dN%PXPl3KwNeN`K*uMFz#3&<*v6| zW!HsXT`&2}@F8Re2frUv=rAAWhV?C~xhiU<^fF_<*FjU+1$m=O&i_Q>LlJgQp)lfI zec4;WaCh-@@8kKti~NKA`}*ycZK?O8oUtA^5-dR3bXp z0%@%2&@}RDmM~Vs6AW7N5VgGb#fz4Y$6v`SoHL&LdhSH4XM~S9`I&u-FX-YoL1*vj z7Ev>v>p?ZWKmHpKQS34X+W`XwK*ghJs3{*pc;}b@5$axdeQDo2oD4G5VNmT$J}f=& z-7wmx7W2&>0E!#|Y(Kw7$^mS5AEg9xQN-?@osdTZpKB%p^pc<1j);eSJiT z9jnazMsBQ diff --git a/ccm/tests/data/cavp_ccm_aes256_10_13_fail.blb b/ccm/tests/data/cavp_ccm_aes256_10_13_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes256_10_13_pass.blb b/ccm/tests/data/cavp_ccm_aes256_10_13_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..a979af7e1f674dcee936abeb300c2e2a9a022c65 GIT binary patch literal 999 zcmV8^vbDKDH2}N96|cTGjt8JU$Q1H-=Rr3 zp!=Xc0Rup~b}PN60oM`Y-^ttK06jV15JSp@RuZ`B+@JNu&~C&qYNqODjrI!-xK)zS zs2R!Mo)DRlVsfhcM3(}64Z@w*5kz!(zAOWP;WxO1f$qJPL13-7C zg_Vq`0o%*-M%KE=CSucv2$|Qs-u7l)SGvtkRgW;jnIM*egC&9vEqcnKddG>jgAT(I zjo0}^KRve<;E1eBIrUeg0JLX0mcGNo5}oWKD2nW~!;B-5!W{tvKsr>@;Y+;*NmmZ> zBqhYNZ_-nO)oW^+bOVZ095+dN%PXPl!Ty_NctdHL??pPq@uD4rd*M(kP zFZs;yA!G*!zaLZRFdyfJ^)0HoDr%+lGGo5iK~vcUd813t|3uKnvTJjLJy!XY6mXF6@$t#>Qp8I<4M5||nk2v|6eTy&X;x|EO@97p%GoI@~ zHN8Ln8xT?KG6vfL13<;2X{ae5LU`ww{}Jk5cYSH!JDdzM)L~HVOFk?;@7*xkrxx?g z9sr9*F^5AEg9xQN-?@osdTZpKB%p^pc<1j);eSJiT9jnaz6%_|d$Fu>?r7`}`VCGIxhC;^zP>cAvGhAP`eUaaa_6nXuIqe>%#-L?1(!s1%eu zd>6=mEYOy;&AE*j6n`r58BE>FWv6UFX@D0213-_LhLj0Ibu3e5NJ)R4t}EEqceuOD z0U@c$^TV08E=w?mz8x7!{sXwU4)?3G;&YTIJ$rW7X@3qxdm4(GEA@(SkJj445-igs V2LQHq*Lg(M-Lx%GOK-$|Wpxb)>F@vm literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes256_12_13.blb b/ccm/tests/data/cavp_ccm_aes256_12_13.blb deleted file mode 100644 index 9d92af39603ad2a24c5eed1213f425218e3296fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1031 zcmV+i1o-xK^7`2g~Jb+o2558FsJFe2NWR*TmdIupbT8>0`*c8pXeN}|mvC!kZwBuz3Gr>zA6 z1p`3o?FE4{V*BT5!4OT0rN}nh(kY@UXdUBLT^FnoDfw$K{q?2$H+!`z(0Z2~YMrCu zri~|?>8wuINVa=*OJBjr4I}bzUTNnCcVoJ=pH3cto8HJzHPsd}BMl0S5fInK0$%wSIKYdi&lsm*S?KVaj1zquVD=k??p)URQY$7ueuo) zHUTDpE7p+$-V>f?O+r(a9A;v9IZhrZ&l>^(1p`1>!_GMdV>ER{5-HEk@LmG{H#n}1 z8zotE^f9wAp41*NL7bMlfkLu=Gk0-gSjl>dV{L!vKrvhKL_kI#hX0Jt{>Gnotii3^(xmQRcHI%9z`ifcM#h&dzV6*vnXmeu? zf)qgx^tTysx%dEwQ#|(p1p`2-E{N^Ym)eYQiQ*U{v*yqJXg9};mt2Gs{cOq`nY^$t zq+4}XSksH%rF|c&;vIEDiWl<7N;A^cNbl99<}hjY`BwGk=;z%pO|%*dC(2EK!)_ylZBSLr{qE`Oj}t%B~jFDJvAb4er7ZIXj>*f%<>c8=_~tz3?Q? z@l-nm9Ie@FVyDj^NXm4tWOEoAn@)J#jP#UY3nHK(i{ja02@?UxdMcFP6nu=%OaZo5 B=k5Ri diff --git a/ccm/tests/data/cavp_ccm_aes256_12_13_fail.blb b/ccm/tests/data/cavp_ccm_aes256_12_13_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes256_12_13_pass.blb b/ccm/tests/data/cavp_ccm_aes256_12_13_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..e92d5a0c723760dce91f18490c8cb6072067309f GIT binary patch literal 1019 zcmVryfBp@e@gatT&*2Z9k6~gs;|{{M(ih@wkZUPrgsYR zNJ**<0|7ulPhI(b&U7)Dd%&2?>6H9D20Kxo`bV%fQYN4QUiOtRe!lW+^z8QV>$2;H z4%_(v@_Ti(rZf-RNHs7b+niR5*BCkz#0wjv56pIqR3=KI%_%3KQ^_PvG8d<<1p@&< z>Fou9GGhDZX~7Upi>1gm+tMkbDrgFD$shD9BQ4T;iioz zo9V1h*GRT|bxU8t$PFX%Z(eU*`RN znCcVoJ=pH3cto8HJzHPsd}BMl0S5fInK0$%wSIKYdi&lsm*S?KVaj1zquGA_Ua^ML~?rGuKLbb9ak{#EIMnrU@a*CMTJUVB0g_JztFpqc>0J)q@wEE(ArQA z^UZw-TH<72eX=QA5(ZbEfPEQlCMe$=I7k-v0|7unX;W$2)}IHoZL)%8Hw42$2CCRD z{mhxPQdx^rQ~3lizS=3r{uReQ<-Yl3h3kx-Jk#oa<}>d_NcB|tcb2cZ85TAHCV(r} zkpkWmo@Px#QhKL_kI#hX0Jt{>Gnotii3^(xmQRcHI%9z`ifcM#h&dzV6*vnXmeu?f)qgx^tTys zx%dEwQ#|(r0YIrPi0#ss+Kh0C;us>c=Fk0TH^+;YT!a(-Y|0y%ys$8&TXj}g(~I7v zeIKgg9d$yA7xKqSGt$*a@71N|FlqMrR`uuT=iM(&v>FR1%1wX6ZYSTrANTN$8zDGI z0|7un6*EOVfhqisXdGy{*Ebs53K>K$-g?Z@g%Y33eYQw2EIuf<9PQwNA?Oa^j87jK z+PfL8+0xvKNN2G426R`QrqW>cqKS`17UZ_zO>!aFoF7i)ElB_yuI)w&hb<`1RSl|YhtI* pA4tk{uVix=8kG>;VGAOlAdBMJVhIxg$a*T2-xPd|&P+7r=dS<& literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes256_14_13.blb b/ccm/tests/data/cavp_ccm_aes256_14_13.blb deleted file mode 100644 index 6a32bd6052536ad82c7f42efa1ff70b9fefdbf03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1051 zcmV+$1mycX0|5abT#H%L=a_6KeOlEXN+L5Q5O#o`zgb2tp2(H@ayiN6Ny+p-I;af!otYh3$C$sxT9dIh6*FEA$a58Y6#%s}1Hled|FBiF{$$h<;dg2*UAHbc01M3l=? zHUR?#Kt;vEgo9)hKyql;$f%kDMs=M0k|ZDm0)1G}f{(3q=P>>~_)h7vH~Hl{a}_7XbqW zK%^d|CX(vFkx%b6<%9_Ub3)GWC*BkiBmcB*r}d5SG%(=xz%QSK<$tZC^H*OR8g!2~ z4i2Y*x42BGR24FHpX(hhLSrs(rw3otaE#k&7vb_6_Ro_V$wU1*|E8^P(E$SmKo{EJ z4=R)wcn;6+nDUUN%9|I+bEy=Z*c=$WGZsn&1u!~yqU>55=F9uPsAm#H~|9%Kr^&RbEl!@ zu>HG!b4Ox6Pod1&H~zA3+9yf0F938-P%zM9izWe`t%TlUjh(CXEc+QzWus}rD@jb4 z!(Kb_G!=OU2d~DCmJ3QVVc^!WVoJEWJ!v6ggb! zbw#IE_PCL;r%xa(#z4ZdgnIXwqr6u60KVtwCme07A^`&hK)MAT8^N2JCsGJB`Z;&D zK{_#M%dhbfN;Y02zthq)whG6lIwsA}>D^Z-*vUH8g zR&hGsm9df!?E|0>RaKm@O zVEyV!U}&RgXK;0O_b@)KN$m?k-g(F=35^3wW^2v`EqT8mR@+Q=44m-cTF@Iv$eHvr z_j^E+L$9oHi2#wtTZsQp-J5}j_tzVsO92A~K-x%e(v>=LgN|q6ke<{8E%tmhTV#qw zywc1YrVwSGb}&UlMSPFnMm$USQCfB^+=JPwsE5<)qOVL1;*eow#7JJt8Nnk)kin>h z>?%?neDvjVd^7}BPSh1BmpwR~d;tRmK%lYHU=MD(kqQx0ePQ|%7)e?2!>%}GaLc@r z2KT4B2QVTB9`(`$L4TRNFRxSV#KzBgUUz_2Gww`krpxF!A5R?_UBA|2P}%L1Kir~D Vz-6RH?6o#by|6OQFO85GkpEG^Ka z;4iAOBV|<+9bW1POj|E7Ci4&7P^`>A-O!V_nSUeK#?#2WLSKT&C_y$uxOqgB%ThK0 z13*Q^!i0ll6hLxl*T|@v0Y-J4{E{Rf1Ok0n(1MSxbmuVsJ@`)PvN!qd*Lquu`D?@B zgjbr$#^Odywwx_f1F1QiZ8qv6xp92mVb7D@yKFgkal>{=V<%lp5ov*uJM%Q)6~ixV&P$4qk8 zck!?Q=&5^NI?C4QI^blG`(E9-qm4MD@SIkzWjo}XHD9?n0RuoYv`BNOq2;jsyMA*= zVm?oy%-J{ovTxcaNwhBjbWTt(&|-@w0iCUc-eQfNtMn}U8Bt}UX~HW>Oqj!7JL`s{ z=3avxirTF>`gKuAevTY)_Ht;*|< zJyy$_RG@?S><9j~X1g#Dwd_FyZcD}17bxg~8&V5!fWjAi5-hz;SQI&2>2*b?R`$4& zv8PWUEXF{>vV?l~n4`Q_`2fD>=qDU)t0DmdK)MAT8^N2JCsGJB`Z;&DK{_#M%dhbfN;Y02zthq)whG6lIwsA}>D^Z-*vUH8gR&hGsm9df< zegw5Y7~nhRVm*MycVjx9Pnnyzg#iOV^~NbFofwcDj5Ne9kHVU8!*{`8{pw0!XrpLn zaCLR}Fg~qG?F&KPdB`aVjRQ+&Yt98NdA}c4+e~&0obcgV&>Kj|ne;RFdq9#yudH#2 z0FlO9i2qOBn}LV-*BhWq0RuqVNN>`WI&y=KXW@{Z)C4W|d^KBSibcHA%p0Zdqg%X-#kz`Cxofsu}jT2W1hu8oo=l@b@)}~sVp=9z(DUgci;nD=IU(~d>GRK z0~GGOF{Ob!Pq{l|K%9rIca=N%s1e`+-ML2Y`uqB&m=z9%@NgJY`Y?TW)-dbO*AXDF z`J&9riH>dh2q~D$;Q%t;K4DPfj;hh(-*@O z>M)Qp`4BXHuVxUEwZZXQU;fcHn;A`>67W!li-jnNC{P^n&}I<+!d{DtOGADxPgP^L z^SGFzHE9WWMVR=gk#AZ70~GS8j6S?{<}W12Kwn8*U7$6}zPEmg?-1!41-)9N6w#x9 zp$VG#S+Z_a12E6%?wdzmHU)%n;+RV2Z)>5m%SU?^6<$yx!DBP5WgOYTgXfC6K9dsr zJ9pi0k(p2@h=vNTRW#3pm!2@gGJQ7z0~DOP@yI)-3m%Z_Kz{Kyy_#4FXKK5uXaQ|+ z#}ng9#J6auBx@0v$yxL;g)qasu&U~li9ZGIwnLnT8Q#HmaHd0^DIrkn+53i8I;img zVq!!=GjEtI798bqeVGbboTls?VWCVnwU8r;(0xjn{Fq;8pfK;7Px#spjH}6V8880LUzS-+ zZ3uDyrm9e`Nl3H29#Foy_0R=}AHdVw-YH$-$?QD5hHA8X>UvE8aOEpWFSzyr0~BSK z|GDa|582o-K+=|d-)Zk+sp3457~iT@-;%TuV< z6Ui7#2QY$*YE0ChNt$ksg$VhpH6>k+pY1ccO_5Nxepo7W*YF~tYT7O5>=??g-ui10 XORrAZJ8z7N8}}>cS$5>>=G`9w7qvE3 diff --git a/ccm/tests/data/cavp_ccm_aes256_16_10_fail.blb b/ccm/tests/data/cavp_ccm_aes256_16_10_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes256_16_10_pass.blb b/ccm/tests/data/cavp_ccm_aes256_16_10_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..a3d4ac1295e4d449703631b5dd4bfc594f659122 GIT binary patch literal 1145 zcmV-<1cv)E0U)l-UKj|A`Tctr@QJgh8~`HM{*eBzAV%;dnb)B)F~X9kP}6(;-6TNDnUwg znDcu?HY?veP&p@rso=3o%{OD7#Xy~Itv+@5RpqHHGylLq?>Tqi16=0nZ54bN(*YFj zyfLMLJ5RYgV?dmTt#_3>_^1)!0o}Pq?)v-srI-~Ch463~Q~EG{ch)fL&({$ku=%3Q z%ZZL{`UokQ%i#br-acVa#*xeogxdui=dM z8gj9K0Td$}Gu%LIk`VQpKsdfe(s93rj2VDZIUkB4N5*4t4V$uB4637Pbn%U>>M)Qp z`4BXHuVxUEwZZXQU;fcHn;A`>67W!li-jnNC{P^n&}I<+!d{DtOGADxPgP^L^SGFz zHE9WWMVR=gk#AZ76!NHyKD>11FC@o6UrAhDpf$?Aw|7H}9NEEx=Zd;MlM?$ocinH1 znNTN)h6=7#G|z;Wo-o5QeK!FVoVxMIJEjXBkm^8w@ix7hSP5rpyQ*jbZEwdD<4VN0 zXs9G>5tzwY^e}}m!@RJn>XV5-1@5*(oQ4_R!FF(_L!K!iQ0v+IhE_VL@c?3CL_sre zm@F0?<#BzP3R#?{>>OdCOgFWVBZ=gC?g13yQzC?2huEiQQ$Q+-x$xy`9Qb|Hj@N)F zwkU4+w-g=Hv&LLnjvm*W^r|qfVlVkP7*zN%i7YXTu3P{b&2HhN1b|;pkPhwKiSTr*qMieKlQ@#0TlGtmyfMBA~qw;K!$PNewj&U z@=_fpIVI;suaa|UEu09>(0xjn{Fq;8pfK;7Px#spjH}6V8880LUzS-+Z3uDyrm9e` zNl3H29#Foy_0R=}AHdVw-YH$-$?QD5hHA8X>UvE8aOEpWFSzyr6lItHx$3PC+1M~Z z(w2SSY42jG;yjTU->OyLlC%+HBJs&5Q8D9(UCA%1Fi;i9l(IvA@mxl{sUv7G|4Xn} z%~xdbCr}F=%RI2O!!J3HJVWfy==3BnGs&7NB7^VCJ*=!HzR)mFB7fDldyfGWfa7+! za&p<6-Y7uH%#W6R|3$!ClSR-t6Sm_Gtm&0j_uqB55(~EF^;jn`VP9o_BodlF4-uJ& zm6iyC5*f~eRK&g}P}AtR_y3QoW^eu_2^fE;zWj6&{Z2dE2F)*Yl(G8?3~C{S<-~Y@ z>H!oqOwN`?RYBAP^FVZr&KUbZ5^Uim+v7p|yjjw!%oh&T?*fytR};w?N(V54i)u{N zpGlf-j)e&Mt2HHEj-Tx_x=oQ#wtiSDbl31Ap=#PK=j<5DuipA=5KFI4**kBHiW~PU L=UH~->*n1bHZ3+P literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes256_16_11.blb b/ccm/tests/data/cavp_ccm_aes256_16_11.blb deleted file mode 100644 index e4884f28b83b86855f51bd5bef9dd3106eb6dd55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1167 zcmV;A1aSL20s#Ram%Ma>sC%FVM_u|fNcEjdKb%aKod~m=8zJwOTn|wt0~QO0J5b(=4t_bSl&~{~Gx5cPMPlOyGVWjsO3L#joY~?VyoAlgx7nS@?I)rDi zZWd+K*O0q2_XN|O+i%#OeFKMdPp&2-H#%TA0W+7hR-TgQ1=X3jq}D$H7D!0{DcU%-Yoi|+IfWRHXj<+7g*RR zw+%>vx7MzV&;bJ$&$ym_+`3>Mhfxqf1t$~%4W$;ymaJGps5!2LQzT?O-LQb>AYn*D zEe!+*Fav)eY^!*t$_GWS69)*yBKb{;Fp4%}Q;OWy$l7M6Ur_)`n`q&nL|K+icEgwQ@NBCf%fTI?Yg;f%bpJI$ha>XN&cOjBgtZ|Q274Uz}>nb1HK z>XS%~LWI&COnl))6s`1J9@)~_ow#Pu<(ka4BTcL@I3U|cTzs%f4|Le%N$@7@l^>;+ zXLE*_P~_PvxY7Txmu7I-k<5cQ+7kF}U3s%K5IrjB7VY>~$Pl*u$MVM?9RULtx`&fU z2;K>@u7aCDFyiVeP+uA7b_xoFmJk5Pptt@sV5!sfqmNV+o8sy2Fb-0qgwEXGe;1QT z-fnX?s)qQ5U%ik#`cQ57lkU>Km5yIjFO0OUvy!t%hRaOoA?%a=}v0~T9=*RT9aw4}C+-9S1x-F>4ETrn@P>3G7Dh5GJG&!`7doer;$PvW8ne@mhBj`dx@K4`;#0nu(2Kdsk4)98%jbvTFpHHD><4-d>P4f+FLWn;I+s6|hN93Ww&_ZkWzSgvg4Fu9xb+;|t2{7pK9XRvM- zWz^+EWq%_QpHK}rk@^g(!T0Or8%PNt|I^2`7))!dVD7Otr zfw$JKjL-oV&$ym_+`3>Mhfxqf1t$~%4W$;ymaJGps5!2LQzT?O-LQb>AYn*DEe!+* zFav)eY^!*t$_GWS69 z)*yBKb{;Fp4%}Q;OWy$&mVCDOQw#W{I@>}(&p8@|&^|6AuECaE?1CSe=f5GR!&nXf zr7=cJBG@t|Fv_FZDAK5BCaXsJmjY5Rd z9ZY=TL=>&`Tprod*`2s%(B+!Uwj)ifFgPIFM_hccN)L3{@u7aCD zFyiVeP+uA7b_xoFmJk5Pptt@sV5!sfqmNV+o8sy2Fb-0qgwEXGe;1QT-fnX?s)qQ5 zU%ik#`cQ57lkU>Km5yIjFO0OUvy!t%hRaOoA?%aIwVh z+7G1ukscU8BYntGD=ECq>yG1`_&b|z(gT7$7hFWu_64z&=j;=1FhS1X?5~_<&i6n> z3iEkX?@6VFcbzJ`%1|#LPQ3L=?ka!{hYn*wxu}{!t4iq`X#)RnN-NK}zRdzA_ibqV zu!{i}TY%TE{7ST>wu{|BIyl{ZqYqp$FR|%(*n4_8c`w=OKAN#sSaj)~^@lQiFkksE zZ9J!uLK9=*49H7Pjv?Ud<=DktY)}P9Ew_hVS@^!xRtED`r54_kbPA%n>!FSLKn?UO zuI9O**IPw|0R#aSQA@f=Kj-qd=Q75-KT($(Lz!N2cRUAtrrx1fT2N_%MwY zPg#zkK?o}lX?JhT*n6*PC1cCm$6r710CjpKZh_whnTxt;>^w%-%}L z^R^y-fJgl>vWi>C6zBIE=|zUMf`R`9rxB6KE=AjPP%tG==fX+A5?ofv3#~bW$M{m; zk@`-8i*+LJ&6dqg4z%a`!+Ix{lrd z94Z6d(p$MC{{~u<{c$TSPhsnT*MF-lNdVw55kCDGFK9KEhAhoqx-KnG`f#0_g~svK zP=i_`>y2@Y4&hT8EgQLCSRq`Qd|@dF?(ICv>w1AtY18Zoqt5Ins$8w z0~kxbOrnt@#EC4Rn_ECOe$5+k-??gp;x?Zsa9#TA@W(#WT~lO4nQQ zc0|9>C*wwLf*=%3uvIUcC;;XG0~qeipAc#XAu~+J^}0a6IMD79rHqQDGuNpK)qR7;t7ZF6c-Pq$geAS>WP@D6z-;>W*Q6Z*riD8} diff --git a/ccm/tests/data/cavp_ccm_aes256_16_12_fail.blb b/ccm/tests/data/cavp_ccm_aes256_16_12_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes256_16_12_pass.blb b/ccm/tests/data/cavp_ccm_aes256_16_12_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..e1afec096c253958746eca352b46b388b84d8cf5 GIT binary patch literal 1165 zcmV;81akW_0U*}@XE&NItt_Z|r1F(EC6AxE{4SBO?HK2|_1`ls(cA$TFC7OLs3PJF zeA15!K-C99(@ceA*)KV3m%ex@BmX>wUa56^-a(&ZEQ6VLFff>6Z~SaT@jRAJf6ILq z>4=#PZ3aC7Ei+J1;w`rd!n(HBuW(t(4FLP_`%>=Z>tzlItf$__HWv>_9m}8ZxLgGR z7=fP4=O2X^Lx&M#%s@!sY&$7Hfu30FBoZnqh{=~}b4RA*Od%$Hb_Ad6-1sn!7Ef7@ zp+N{M5NUUB%-DOcY9(XK+sV;TaQ&S;eV&T;5bd+mDf4m9FjCkc=a+S6r710CjpKZh_whnTxt;>^w%-%}L^R^y- zfJgl>vWi>C6zBIE=|zUMf`R`9rxB6KE=AjPP%tG==fX+A5?ofv3#~bW$M{m;k@`-8 zi*+LJ&6dqgIM`zmjy^htV<>2 zbW38oih!KKl2fTmFb;8sJSk!%Onn+C{B>UpbLGp{FsR$!vrr>xwQnIaYPy=k>AFIW z4P=NyrwwpPt1L+X;4l$B{TMH3HI{}f&0e}LEl>JzotuTm@zqd+S|aO> zaf}Y(QyMKBxnEczT$y}fDG2WEJj&~Oflq1E>>s}_>3J;y7?G`zwT&P|tE~A~;XqHv zmAMjZBi(=16vE}G%2+;#r-QPLyDDAqpNmoppwTexRra~-kLN^mz&GvbPyK|gs7CGN z?EiF7?6s9AZ`ITir_4WG{+16%pwQyq3kaba!dKRDLvkvYY@L5Zu$p##0T@fZOrnt@ z#EC4Rn_ECOe$5+k-??gp;x?Zsa9#TA@W(#WT~lO4nyNrZ@CH(o&lBjb57~~rG%0P@v661AYq(I=Z2$F|iV71tGIs}!3hx%K5 z_||$wZbJlhvo|DNXB;pxq}m9*)e|=DSD42adxbhvOUaKeZ+%WsmH*sm_aVTY1gD3qA5ET literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes256_16_13.blb b/ccm/tests/data/cavp_ccm_aes256_16_13.blb deleted file mode 100644 index 6927c26510900f292cfe3d240ccc7f5edcc03fea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57486 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 z 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 J>9&B{2t6%AIC200 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes256_16_13_pass.blb b/ccm/tests/data/cavp_ccm_aes256_16_13_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..940366bbbd62c18c0b195e266d6176a0effad69b GIT binary patch literal 54262 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⋘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

oBn9v8U_6XE$9GFK%mveTUFUVx!9tbx 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 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes256_16_7.blb b/ccm/tests/data/cavp_ccm_aes256_16_7.blb deleted file mode 100644 index 084f79f5109466ce836fad2b42b000e321961331..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4881 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 W-OM{{P$kf)7G3!gZAa5Pg!dn80o%s_ diff --git a/ccm/tests/data/cavp_ccm_aes256_16_7_fail.blb b/ccm/tests/data/cavp_ccm_aes256_16_7_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..e0231c0e3c157a255961032559630c5340251ee4 GIT binary patch literal 2619 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 T=%e?zNCix?HQ}|5Y7)iEcag|@ literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes256_16_8.blb b/ccm/tests/data/cavp_ccm_aes256_16_8.blb deleted file mode 100644 index 6072e14b040b838d46d7caf902d583c7205bc68d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1137 zcmV-%1djVW0s#RaM=SS~Yt9`!Zx)Y4b>+J{XVu>?pdMtr=(}!1rpU2(0}y!uG^pEy z^4dVBsA@z9x9sc4lr*}gUh#A2i_+TJiJNhJrFe#XEs<|9S?fi+zOYoVxpOqtHGs|o z_L;0Ien|mCP}@mi2M^ExZ7+*s{DiI*keFdiQ}JRRIGK z`y@fpSxQKXKnQgL30duyoclOqZ5>*x&X!oP0dc2cPO0TNQ!&S7oG?WZ0VNK`@@7&b zomt$MOLJk>ai|a+-_uYV%6knpri>5#R*(FGANsKpHtbeueueX9@J{Q1F&O;nrTk6I`@JI3N>iJnU(A zDllfQ2-K9^o%y%;^)Z?HH_*t4g++@Nj8{+>G2&pZF}Mbb(Fv0iv1i%l%jBO&9i|$Z z`E5Mp>XacnV9ROQAW-H30}$C;)>1;dB4t3(;tms7zFfh?TpaK$g3zYWf=v9jS9H&n z@JG4w%pE^4F)TNc#!Y!3S`qHQ!AmWAYXCVHlgU+^P{aG>SpS}=KG7xkj_#D? zq#xBk4`O;XEd^&1;M7C}#upOes{sQLKMU{_9n-AfK%La>7$BY2&GDSaZ|+1mC+9O7 zuL22R!Cia4(DtLT_b>=GM1TZ-?mO$5DTC+m!WVmVi$rM4DA82p3bEJD@AG64e+6x$#C9ETBqKx``s6f=W5 z4%rnoP0MiEf(ct;O~o3OqAct|afI0ChA;(`Fm#deSArg6^$e5)Pm+Z2mDRYH6+BR( z6v#>t2Oc$>x+^QB>Sy?q;(l(ZfT~L@@oeUbllX&@MY`*!;L3jX0sLz73Ll10B92ku++i3E3+!t!{EL0O?)I?%%dO{$;FALcKtj!D z76<4VP|yzbV05S&~K))-K8gTmejyyNh<sMmb~rK7!TQ0=Iozp;oz5U&jj1!_mpeS9XxLqk3@ClyEy%2+k^7j zK&Pl`L&TQex~5+7bLflG+S!SlaeSqChI}oNZ!lTwMZ3PRRIs^oG}SeL&I9(D ztSWv<0YgyRNnr;MQjE}hu@FlMd@ z)Rf$v`M3D>F`4=|(8!2|MT-`US5Ox*;$W^ZxCV;R36m4CXW8b<6dlv7;6Rb8m|HgV8LB` zzR>ogvG*_tHAH{}e(pQ&wW}6gp?xFr@uaPoat0AlExFRgK{V5TzWnUD;s;$5DTC+m!WVmVi$rM4DA82p3bEJD@AG64`2+aLTKhY^23Y%2*AGlMz~*%dWS%W&C( z30q-J#Tu2OEbKvXgxKeXFa?w_bdm8_f*xb_43q;;l7#S;)wq`xJW!z&$Vw0g9yOb~ zD=VbxXZVxier~9Ms!J^KZ03rS_=A!~y6dthg8%^#K(O~u@_IkWKs%lvPMcSz-?iY% ze)a+UYV!&ohEO7oQQ+KR7!3>TYcTwaeZ21Wu>Z@g=ZWBx0|Y=q&1V(|=owJZ4)tJk zs3A8%uZxeDPj`*AV5~M>Z0Q!b(UB7lhD*=Q9qg2$s_O3n5SGj7%^5WlSwPQ8kI+K- zpmhV}kj})1Jx%!$V$a@Sy)3&caSUdGsr@i9UV+KZRc+6grM86w{URu*rlEA9T-F#+ rbA!U(2)yI)x8(%f1JGjhLzcYl(ijifROalTYT@9QZqEeU?qp-aQTZhj literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes256_16_9.blb b/ccm/tests/data/cavp_ccm_aes256_16_9.blb deleted file mode 100644 index 7e81c720d52e1bbd52360fa932e42c4ba35909ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1147 zcmV->1cduM0s#RaSgv_xr3mQVF4}3e*odNv9J6>ktyR^XTMejjH@7a60}{%k*(lP# zD}O9NFh+Q@|I;82GpLa(%T;SU{>40@e{k%&0Ml9d^&LJtFytwOO`~BzI0#E>x zqY6a1o)dI~a7zYZT`-JmP=if7E?)^1!ZeIuBS^)zRm-#@~!6OUU(m+k_cRDay z#(bOXo0Y{*71x{r4y<1=E+>1(t9HM{e965r6x84l_L}( zNfB!QQ!ohenW)#}>Vh595N?S_%`TltQ$n&@WN}c$II3+Jc0nh=mvBPF*?p)^PXDG*d71$O61(73`|pO^Jm)~%>~}Je!n8f8eM`*Nfu@c=J~Y~<^cl|YBk}cFn@0RZ9uOm5(NdQ zN_DXIv5d*s$6RI`@k72T!5xm?c)7cn$%-&uFJKdu>_BhNmUv%wfnw-M_-EXwc4wH;TJMkWyLt%90!3kO552_ag&M$u~elXwJ%FFlHJ!phS>#Gye;XgJL zWg~gBhW1eV7QuRJBB*7LL}CN2Mx={0fPjOtamu>^S|50;!iT*oV>lkI2gO(c0}@cs zB%|j=U2;i4g%dVchPRlDAc=(G5F)`x6lll^fkEKgzUP_bJViNhnNg=qM1HAp+x;sn0`k1>kjLs9kSD?5@p NlYVS4dh!DLvjJs47Rvwt diff --git a/ccm/tests/data/cavp_ccm_aes256_16_9_fail.blb b/ccm/tests/data/cavp_ccm_aes256_16_9_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes256_16_9_pass.blb b/ccm/tests/data/cavp_ccm_aes256_16_9_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..ec89582080c477d18b45257311f9cf254f7c2d8b GIT binary patch literal 1135 zcmV-#1d#hO0U%hed1a*t=-n>bX|>phqKX`|css3C)ty@nsBt&9E|UQg%A?sR(!VQz zEI=?uc(ec0APzIAkt@qpYdrqNJfVMZ?79HcS^4!HK07ex8?6^)4$t`}(6A$daqdi? zj({E4BtD){d$ALI6w6IAN=lCr6~-Cs_em%4zSatjT9H8iP~1(Ub;r`)fZhpz0TRy% z%4cPoSUa&mRR_ew5PY;o(V2Dm5(nG!;-wuO&)3>72q9V9!}JwLFc^os3<6L9lcNem zxtk_cRDay#(bOX zo0Y{*7FIxDi4CQw^$v+BzVT>km9(;98gUcZ%DA4cP-wE+uHAP z3c3=CjX0?Sgnqvw$QoUOOGy@H3+DN?6XpRDYBk}cFn@0RZ9uOm5(NdQN_DXIv5d*s z$6RI`@k72T!5xm?c)7cn$%-&uFJKdu>_BhNmUv%wfnw-M_-EXwc4wVsAZ2tVgs#4q>D6wfP=De%DVwtA9$<6hrKFeI3BGB#aICnP|zf!=S5v|NkD}Y zHdltXn2R8Zgy9e(!Bunlc)Q#w=%=J~T#A8+S{*Pz0~dH}efBeR|K&mN&gLpOi{-deu-nb1Nqb;sNXbb0rar-bMavyO)AQmMQRa;rk;<7m33oriEzuZ#76e*Wv`e|Bo?>;X_gN<|{jrI+K2EFnaO=`m--S B7N7tC literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes256_4_13.blb b/ccm/tests/data/cavp_ccm_aes256_4_13.blb deleted file mode 100644 index 29cd82601229aab214be39dbc970e69b9b7b3754..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4327 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 diff --git a/ccm/tests/data/cavp_ccm_aes256_4_13_fail.blb b/ccm/tests/data/cavp_ccm_aes256_4_13_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..3193acd68bb4e9aed12296d2eb8a115251e24957 GIT binary patch literal 2379 zcmV-R3AFZrNC+VJ2c7ymTzds$N7v*xyx!J>tJdPl;Azt{C_sYCwbWA};kc7Ivgim_HK)Ri7Itwa>_Xg;Nm7W6{JPs%o(|v?bdcr`uod5s` zE-`-_0~&Qyo_sj`*6-0~)4F zygh9iFdt(HCj00^0s zk8T4R*SW(+&M%9tmLn1_5C8xOw`9YU0~)r@eE@S2gt9~^-vny_00{TtE%5;wiA~C; z5D4p!uu{eiK>!apyHq8!hMRVUZpDr{h;O#`@~jj7M9UK`jSK*p0UD3%pw}R(N?tXq z$)17$4>&BNzCoQ^1!r7G~d_(cK~y!Cy-tc%qYY!3MrhUz!0LD*PS`BXY(o|=n&b=`%X`6GdJQgdHWQF3G=z>1!Q0UGgZx(FNH+JjVX ztI4GR3pfoRziOQV+HwgUl+Ck;L%-@IbJMG0+^u!pftmpttm%?yqbr;nT+NFOga8XT zi^>7!>(}ee{!+M(F-CCz>otfkz*Cg7hT;YJ0U9J%1sA)p-y1)@GWB`@3pj9L$WAUD zomc@iL;r$iU{#^;RlzB2Ldf?zi|_#&_~O*yL-qc8a<&n85dbh6L&{=+CLx?!Lkv^` z8d@<@u2FGkIhHjz)W!5*|JMAU8Qye7q5#H0UAx@$qB3s#r$B4 zuSKi?Fg|d7nDLo%rah59Zl_Z^^7J41itZ~aHaOr<)b+LqGXfsfe3;%a3$~37i7PAi zjtC3DM6m@L=-!tPZs_O^-jg+fwLppZuxQgyR=i2rIoRZTG=6Qab9<0GCx$XaeryDV z(rN$*l*!uNr~68 z0Oob`A`7A6PVEY`00>RYRm=q%4MiesnChv!L|Qte`9QhLJ{nuh%L@gWK}?t;CtGIv z50O1ly|AJpjJsN`4hjGWa($0p1sXZcyCl6QIzQ=eLdu;$-TrJM^v%N(fKUe@1@*m7 z&F>w9ZiyCy@w$>7Gy40d00>&8YE%Up(P|*?UuB2!?mV}J3qY|GJ{;3&VS1mFewrS* zY6*GnFtxX^w*P~To)It|YjOYxYvT+;1sWm-B-=EgBDYvaIh3M6TRSS~dktq<^NNLp zBO-r>hx1f;sP$z)n{*zn%EZ{j00>H56ubu-kEH>{-I~d`XcSDJr9fM>4m-CiMF}!W ze%ysGa#LR)VuKZKWA>Gw`tzO5=l~5kV22(9>JGVRQ*4>}Ch8>bL(~#-t)I8{JxGQl z2O68e(NHQ!O>II4LE_< zg`Lag9n6&eC6UcL1wa5jNvOo!%k)xyUeE^`VH~u^Zix1*`ETkO89*|A<7IwH)Y*tO zFRQLFJkF+Lj$E`^liAf`X}mo;^D7NFzVm>sa$9BlU(V{k3C3l-H3*+WPRKDyO(50! z2O4OAZT@l%3YvszedY2%#<1ky*CW?sbrAT6w}mfY?B8XGmJPnlOLhoQ8CMTY)owZ>H9Nnih!&&-o#_RdXxz`(%021 z5in1|(OZll;+DF6W7(ff=xoTY4>|1W2O0;*C=*-X?cm_Z18WyRC81J<3rm2posSDp zODc*a7$mcy{HWMmhZC~E$V*-V2{^7DpMvkSWYydt7|;4JmNdYdG|>_)OWBmM)fNXD zaSWE%rtqEUKLrQ!ia;%7to^^mg3X$fH<0TabDyv-Q}q!gUP<&JyL!x+p)d(JM|_xF zlC2wQ(jyfkS}EhxrI{3m%iN6-)0EIh2O5`qyxz8_+1&VMOTySd6IX^3Qdp#vbu)^= zmK`S;Lpz>?&t&#Ir708W-4f*m2{_Tfg~wfhjmFzaJBkZUh)xFp(u7JIOGdptBI^el zgP?ydXjxgyP@%mm&OidM;{fao@T|3w2(tGM29p3OPBiojurkY8kad}6LPIF0S z=Fk8ZnXbe5tB)B?=Vd)Gk+HcrK|U^x`PN%bT{~l^I34abg`~Xqckt&zi$-0^745E@Uc;O*;-{!Vdj}>E^l!SE*=3gMuh;> zy+?*6V<7hjo%%amdj(@h*W@?6-qwSw*5b+FY11<(K!VG))KehgxTzw`u`D%KOHh>U_ zAaGMO;}28aFOt!a(!oP~hjRHq#ag3YRw5MbMZHCj{tcx>A&srm!3BfcNzXYTJPs%o z(|v?bdcr`uoo+e{Du(w4=!KP@384U90#9iN2MquK2#Oh@GY1-ZtRPAzx&Gl3BXGhG z000OTKqRsU8U;oDp3BEP&AYuqMEw8&2wXIuvIiOpH}dDkWRU4{h4HYS000QZoAFEs z8o{lBEAqRt&93BQZs!012wRr)9R&>lFgy+@71Mo$PkO>Yx}9!13o3^92Iz&Ao;YLR z4KU=ekJ6#cjd1$2C$ctM1sc{~4paAK z`PJrmTnt_SFd*ZU$IOtu`eBCr8>av9Sl`Bw;!C8-`#5Z?FkrtsGqGd2Gs5i)r4$B% z3slhU&s?1j^!EiCrm{C0&x0X`ObFey*Z?pZL&{=+CLx?!Lkv^`8d@<@u2FGkIhHjz z#i~#ZAAAX=km=D~Xkf%cHiY0!*1TMgl=36+1scM(4;09h>|uERd6Az0Fg|d7nDLo% zrah59Zl_Z^^7J41itZ~aHaLYW%8)&O--(z9y%c01S5r)i49d%ldyll!T|@~D4*&>; zZ9*pr8sFT#|1zI?_Xjc9;&wnPd{6a(j;i3)XBjEtd^GoX>$wD z&Lf)u2*Z!P{|Oq?UsE4(MwGSWlLM)MKvlPq?nzRak#F1yMzQlD$@p6TUUH9VcK#Mt7GHaIYIIF zQSvoxbVE}bkh#%8FqI01#yMLt>@zSpGd$;k5WiER!mG#Inc*|7A&jIy_ouu#*pH9RcOfMqEa03fZd+E9 z-8Bb4nIHu4(T~W93mRY&EWII~T=8@j=)4I)iCRV7z6^kQKFq&@4dFT?J8Gu{T>VoM zIF50I!;-QVFnLaMNoMBI02Z09!}zO@8BOP9Jus26xj1&c*{8Eh@k-$#sDIy~ME4tn zheWSxFAE$E27C(|HA4H~^_p#8I=^9?eL&qsG4WWU`a8&@Irnf`P)PKoE5WcoE`m<{ zYowS_8Q3tzv)2<6>J;+$`sKYEMKO}LU`j>Xb;a#CVSRu$;sc#gX9)%)dEiwHy>aWg z59*eDc>#*m0RuohUsMD)3cbr7-RYg?4F-b70I)RRW4F^IcO%+xt94Q^BakWaP`u05 ze%rQxisV+b>IP~{?%-wlIGl}L(kK0&fg^SSg9`rS@DWxv$mP}jbUeAQ?EwQotC7*F z2PsF=FAc*YHCh5M=kRoYN*GH>L~GJ{nePGqFeRiv*uNwlXWF^r!3NDIw;$A6hq)z6 zQ#hKrOZ&)WNic^LR6T~*mGk6;1_ZJY(%u%GcXa^+KukN_VTLJqmI-?@m%5O=-gw-K zp8h-7u?mIm(Z6G(3^3+Bg9G|pQB@8>es}C1#z)EGs8hiwg_mQw!s3|$13-m`GE5)#aVqVK@icTz<=-EO#nQ_&^!SLcpVOYW=o2vV zbx7I8&emvIK7(m#GjH8nQ1~2SBKl@C2a85l$W08vz4A^8-LJlRkI{)Nw%1 zTz8b@Dk6$fDuakS2W7Q-K^v`wFfanf`$rS6x{umLk9u z!7wu^b$Vr_6sheD8yi13BT6ZHUDtM(No`Ku@2i&hP?P!!MM#PO+ zvfX2^VEoNn-ALtNFyKH2wv2p?LyUD82U&&)W33F5pFP=|j8e9YT|_cesBGEyEXQ7BL}OplV6sLj zdy#UoG$%p`4ITME=eo|@|J%>?xxe@KeqKEHd<5YzI9z(|k=jjR!lFj*=61md_T^Ai zxkBsYgDrvKe!(D`TwSGf9mgphMt~v|(?1f@#+%$j+R011JEMs$*gANLena+^PPy{K zGGFi{;f-6iXNsA*>cTYQRI2ZOgI=WDZ=Pl#;Ywd{) z8CRnqr(2A*CA8k!d5ru0?i_S{q**H6e6YGNfW^eMfQD8%KDj{4%30>Aw;9M|c$ELd zIqB^2q>P{^ri^T)f2|tVTHx_(F)YFMP7Q3#c%FPtvWZM8b)p*`-WRB8@k(+2JG;g- z-^3k3>%!HxE-#-&>HjyGifWw*U`?w*_sGkYub5aa8Y=UW^ld5*xwpHin3&g9=tu4j zbLKaQ7|+ZlJnWt@=jF2@g2>GfB08oxWnU#r;`H0Lv2FkH73%ds{H`fx`UN_u<*jCw zy|*|1`AN)L|Ev3TXyd~d=|?xv_DRtV5@vc^+WGl1=pQ3X??26D#{P)3McdvY9CdGt z7ZqDFv2%R-XXulzTs@L9*DAXZ42Cc(%Am2bBmcYLU+@I624_e99d?ylZ^j*fgNZBF z00i99Ti&BO01#iqKmst^l%+u!c?W10qT>Pe1s0aXaKP?y-#|1>9 zhthiiII@o|hI0zR1aQRi6Cx3L*#7v^5#NU5D=uX2vX*q=+0_B-u)q=CC;*r2WBP!9p74z6s|<`qxIE?DtmyBHdV3&OiEb9kYo_ z!5J&t?1p+KuAEk{M%TAj$A_QU>g6T(FN@+ z0cju>lXNwHtGa(!GFcL5!@RqBVAzqbOh zE1ALO*B>iT#v>#-Nx>3a^QUjABnny{-BBL}iE?d~_)KOpj2E}Tp*W9BgQJ=sgPWfgU&iez18Q~}?Z)?}vgauP^RuNPXiFj!3cdkaa+q^q$fAc9ql3xFrB#!5)kbh^p3ENl7N^}BejJ! zx5@YD#(y=tyHM$SZ{rlZkehjwDoqlIZ&eGt=_PGIL~Vz))c)p_KTEc~WOuDduV^7d z{sfC~mzP?6ED&2mhJ?a)v|t$A&7?B@mnx@Jj9ZwO_aDuk3ynu4RP~gYPZ1T>!7*2N zHxuNpP6Kh3=;+%h<4%b3i^5cMI9`6~{pcLo`t)9N@!NN{;75c+VTi0zzAn}y$p5|!2&0;N$MdjU?7>&{N%u%QK8bTDyJe+x0t{

0#$Wp2N08mAB@w|3wGc0)d5&^%mWI!4VXQr?(BR2=Tx&o1tBPWpdS~!# zay1NbK`Yb?42WPkgzTrW5dSr)CTvbJ?}OOQa4JTVTwvl_%NG>9_w9?WTjO7Uroj;O zBTOqWVDMTqd5Fjc@i!i>+2+>q<*(V221qU8exu?VFLG%E^Fu|OI;5KCFob|Si~w$E zIyl;3Buj$!@%bZGpSmnfmv`Pdt@KF5Gb~CSR%g*mG@Da@6b-;!`r2&1$ zrVl=;y^r&z-1OPh|8rvUEJJd6lRr@1Sq3&cY2t*sR?>02?MLl_8iYQE2Q9 zHTrA(XqfzCElb9n^#;*dDH%dkO}Mf#I+(Zj2{43Z&ypS3(5UI4E$1)*jW6`N-GM$= zaXt$Or1i7Z7Zo_4xaWMi`(Ty)>(O_oIOa6eiNSb0ZSIcZyTlGi*Q1;o3f@S`;>N-oJRr zZ*UGOf+0#g)CgdMtp(5LD7YPTMsW0@=732*#CazuBjlQ)w~?-QwrnGe+dypOZJDwb z3^5<8Vg@!eSMO29=iH!_hl81>*XDXkKN}U;d1Gd!BPzY3AI>_9C2zz%-Fo~ThA1VP z1;e?7L{Ye&--4d^baqBR$-eqaHA5t~B|=>(nVvp zi;A1_RG`0kbLQ2r0`Uf#t|FO(CP+uzyD>W zbg$34aR|F~;<4L7_d|K>8P@onDjU>^GA?c}L`3Fkg$RXh@zjlxNK z^NgJNlbjjfms;_qleCriNBt8F zgMF_!KMo+?d7+ni$O_&_U~Np5oS+Xas^Vi=Vm0>xq4z{3?Gk zO3&L#;aWabm41zQSLxZF71uhWeQ=TV?Ys47i(kZN+P^@fAF{H`>wTS&k7@2=;0MW; zo%kGy(i20>Nm3r~m0@8ItQ61cy^LBPKAfy|qxiR!QH~5wFJ$;>gShMda6`pYNi|9~ z1PW;Mxs0-P^|d`DncW!YH%`}vneY`Vicjaq_!Md#~ALv>^1snlPCRg0x_1JI}W~Aj+{H zl7+JL7k@AH3W)Qn+wl9<+f1ODbjE5?Qv3sl*-D$#0E$2za2I<8 zOfRqOX>P96ZO^FhyakOU-VSByR(^#ZRE}!H3ME7dKb4y=7GKLbG9|p`fb*~2ANK2g z6_k)GgFDZZb~s@Y8KS(VxemX4FXFF+V zcTs~z#b4&AhSglsQqbfqn2$R2sGImLgBz1bRGN3-N_VkzW$@fO2>pfa=$p;;By1Tk H+<^ZN#VtI% diff --git a/ccm/tests/data/cavp_ccm_aes256_4_7_fail.blb b/ccm/tests/data/cavp_ccm_aes256_4_7_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..2dbaa60300b3947eb7190fbbd09f7649f05e256b GIT binary patch literal 2139 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 diff --git a/ccm/tests/data/cavp_ccm_aes256_6_13_fail.blb b/ccm/tests/data/cavp_ccm_aes256_6_13_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes256_6_13_pass.blb b/ccm/tests/data/cavp_ccm_aes256_6_13_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..98a359ad11e65be7fff9b2fe822169134cb35b89 GIT binary patch literal 959 zcmV;w13>&T0w9H!rkIehfI%9P?@U+WDZL@pdZJcyB; zIhTug0Ruoz4LYR)y#xLiVXY96Jl3G|clW`uP0hM;oUT%FuqWpn$AtlN>?T-eqMow>13<3tEgn5Q znINS7wfWg&xQ=+G(Cw~M9y?X%0_|X(nmjP_sD)lMg+^B22X^QJRjnNoSV6}pAQcHb z)VLG#t&eKQxj0oOf3wN`0urZnDToG@X6Tx7+ztT)Krm7Nv6x~v3&d=xN{+b(reM`M zv5uBigXvn#6p@hQ=`bLbS`4Gf!3{uFKyJYzCKC?LuNhki)?PdYh0LKk!|j|VYGa_h z#6t5Phe@kdpvA)9^!6ow1_1*=s`^Et2iXaAYf2eb)gp^fF>l3%D*f)yKp&!~8msC? zFeGbW(SD~5>l1+c^u2a{i1jdOu=EpU5j+BW_I&59A$oPc*gC+F8EEBtj{^F;c8%`< z7s;%_0RuqH-m7XTvAOB+#&H&@A0id9DbVfBHP)8fE6-HteYZm}TXR;I#aDjd<5JIR z6qUq~*7xarIGFJ6Jbh!pI$T{+afNN{q-k@YaK^n4&NeXPa>qGoLwOPb13)vO=hT7@ z)~9N1tB|z1g9wPq@hT=RPPW%tP+KAg-Zn51a6xacfr)H?0D)gq!oFW}M$~yom9()u zH(=MoHjAbG89$GU=_>Q8BQ{*#2$}v7jxpgtdKl&ck@zw&P;@@=Q@B- zO`!gtJMqEn6u%6D7&J)cLjeOoOt@w`8k0+FC(FU@FhKjcpSx%h_{uf^bIcR|>qt8H zFfef9Y4hlO*edghXqBbiZ@;ODf_dQgJ3JO(bi``nP)SV8s;1~exsR{oZ!mXAyfuZ{F+Jo^Yjsab0|@FO+K!<1$cGf$)P3Z^=)Osum#is13=mcu}&Lz z3xWEt9$AGQ@yn=#jMh8v6ca%1H;!ff%hWJ%WTHtQac@c~X@Oo!C>m604DFwJOD0Y{ hR&+GvhI>QXPgbIkH_m>vc}5E@cjGnEb+dk-x#C{XJSis@*ukBG=ttJwSlL>KNpH^d)gL^8%i9x7zGlc zK03J+>tO{0KyV`Jr7WGOA=+}%?b(lOk>BKWnVWU9Mwza&gk|>(955*FK#fofS+qXI^N;rZWhs{opM$J099q+TDpjw%ISVJv;KVIvQT`bc zIlrnWKmpeDHnSq?3}8{bA~$$#^4Dvd5eMsY_iM^EFOu_v;Q<8$Ko1;k|Lv)ddKI6X z#uy;KvY8Or>ZBWW8bSH~R!HzKx-f43W>VB@gcfZuzWy)1;CWt@b+iHQ-C#g-azPnQ z9l@qFY9$f)0-){K0r$5*x&*Kk{d|N4A_&<51p`185fG`)enjQhZJe!B!GV((Qh&`B zkWug)YCinHZmF3tRkxAuNm7}SZ}Y-3dr6R$E9=mr+M3VBKu9~brO+kZAvUR5-K_P{ z0j+*gq2$gM6~pVtAxoa`F#!bwKntNE2A0<~?z|JW3DE2_ymSZ!5M9_W23vxOE0Z4{ zZ7_LChV`-yG)mZS)lxkO@rFk?zE^V;K*B&|#-Y9|dU5)JHBP`;J6_ zp!P%*X-;3Be=eJs%jwM&K=La3onrX`F!`+C`@ZrY3i-Pkl=Zz7#AuYhACI9$H~|F% zKwUIUTa;;9W*IAHlH?%B>Z8j@B?7*KdnyW%w}<=Wjxbgo)4xHQ<3IHwq&S$*62_&* z7C!7EtHD4^k@WP~?WT{cdq3Atb5c?xQ NtnUdK#r4|olL2W3)h7S| diff --git a/ccm/tests/data/cavp_ccm_aes256_8_13_fail.blb b/ccm/tests/data/cavp_ccm_aes256_8_13_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/cavp_ccm_aes256_8_13_pass.blb b/ccm/tests/data/cavp_ccm_aes256_8_13_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..0f6af727ddfc1e56123dc5b84b9c1016d3971356 GIT binary patch literal 979 zcmV;^11$V90u9>rPp0qov0z&a?Pkf6E4Ks94$#?ItLHdsN8l^6HM`rXZZWv=vK6O8as^o&qZQ3C-$rWW>Nkb5;?!B zCqMz#^ft31>I`5}ydpPvZSvP^n-K@=bN6e?H7}C$gW&@KKo1;k|Lv)ddKI6X#uy;K zvY8Or>ZBWW8bSH~R!HzKx-f43W>VB@gcfZuzWy)1;CWt@b+iHQ-C#g-azPnQ9l@qF zY9$f)0-){K0r$5*x&*Kk{d|N4A_&<70YDWI5UI|7MCI3QoUK#Afs+?ff6W$(HXwn$N{RNISNr&?Vd@&P{2n7&b*e?cKf{81WA0BNmc}j-$ zvJEs!*l*QRJqYoJM>oD#a}+?rKxD?DzAJih`hhi0z3Q~F62YQ8R82sc67TSVg7}~h z69WN2T03#D{p`+**ICooBO$fJ=z_>5C&5k&SZ8j@B?7*KdnyW%w}<=Wjxbgo)4xHQ<3IHwq&S$*62_&*7C!7EtHD4^ zk@WP~?WT{cdq3Atb5c?xQBIWn z;Z2wxsi+L!Ay8%9w+R2xOpGm{0|7vt2qdK3erGalTWF^0nagM?iYoHV8B#SARIoVq zCk6vB#bcyCOu+d)l~gkJf`{fb0H^)R=Qz5AK-lktb=9}Ljm!?I8C5%`poTJk$=PgU zR231|)`ZoEVgms{#5h1{;F>*6;>k{aU{%^GtGFc`&#TR}@I z2DH~2xm5{;wDZH)fqsgOd_VJ literal 0 HcmV?d00001 diff --git a/ccm/tests/data/rfc3610_ccm_aes128_10_13.blb b/ccm/tests/data/rfc3610_ccm_aes128_10_13.blb deleted file mode 100644 index ff8e5a5cb1f4f8ee522d013dad87ec113c7430b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 996 zcmeZZWn>h%-qb6+X~W*bs>_qi?oU3GEpXuAp~FXx9y@;Gm=EN-;1naB{G-Em*i{@sg#SdLUUIUOs*SK_OugQ894|NhxU=Sve<0(~Fx< z#yeiUc;(;0){AL7IQ?eM{dY5mr6(*wXZo7mB@-CIMsWenf*NIj!zg)|>Qc*D2byIs zeb{|HqH@vS{+xB$IXAc8RykPhV*JHqn!U*uh+*77)1ZbK;WA9YttnV4;f%_ZDDS39 z38}3od_T!N|GC}X>EZNObJ(9|$8D^O_k$S612hj}9J?A8FIusis7?_rZxz*McbH+! zwOd4bN_AM)N{4LUnKL`?LX6-AngKOJ1B(&zHtE@$m>V`cW_+=_GLp+OcX@ZSr^#2V zMK1-ax^tLxAcpV(O@SJsh0PEJy956hT>B7xJN=Wd^Ah7;ttI=eZ{l-4E45fG>G|5! zYquGhr5K$4|M)mn#%9{IvYcN6H=>U}n?J>WhhCTD&VW7Nr5O9-(iu;Rx2MkFyjHvK zu7uMb#okp@O4PUAw#b^fM(Vxt+6P-TEl+19*Zkaf$f0BUv0We|C-FNx&A9_LvSh*Q zlWg;&%?-p8oo&pIE{;F=dA>t3)9VQ}iOKscPPUl4L8QO>^Re_J<;ar}5R$D(mo=ZWWKA47Z{1DCwD>Tch84rFX} z&*`(Xen5j4YqE`D2o z_sT2V!zG)t_Xznf~qQZ_WL(xVUl8<1<37;#cfGYqIX>N|9#S ddGi0(p2HI+@Y^ob+L(K8Ueo)9xyuwH83C;6j!OUl diff --git a/ccm/tests/data/rfc3610_ccm_aes128_10_13_fail.blb b/ccm/tests/data/rfc3610_ccm_aes128_10_13_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/rfc3610_ccm_aes128_10_13_pass.blb b/ccm/tests/data/rfc3610_ccm_aes128_10_13_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..aa4575680b2e3dc03e68fb2033f518190b0cd500 GIT binary patch literal 982 zcmcCv5xCyeE4*pL-ovWPlg#cSqGYBFMZg3 zJ)&~a-~OC+**Q12-&Q$T?PC1JWSYIn7O+{|K*OMB8R0TZ!L2D+D&dUElqm0}N(rg0 zCwxE2JpZ}f-s$1=S992(X2)%;i}wSY#sf4CVj8O&7XMkXo2X6^EpHXoW_Orj%(YuY zdP;Rz)=GzL-GIx1*v!}^dt3@vb zs=9NSbiiit0S$qgp@q#11-k?P7hL-geLMY=uk#Y)Uackju5aRVJ}b3YEa~~$)N8jH zr5K$4|M)mn#%9{IvYcN6H=>U}n?J>WhhCTD&VW7Nr5O9-(iu;Rx2MkFyjHvKu7uMb z#okp@O4PUAw#b^fM(Vxt+6P-TEl+19*Zkaf$f0BUv0XqDC-FNx&A9_Lv1GyPlWg;& z%?-p8oo&pIE{;F=dA>t3)9VQ}iOKscPPUl4L8QO>^Re_J<;ar}5R$D(mo=ZWWKA47Z{1DCwD>Tch84rpq0&*`(X zen3o>c;mJ^d4sCLVH?lC1!_C9Js-&?i9051l-{n-ndE%w`XMXB>j4YqE`D2o_sT2< zqgDIG-}LRTRXV}Zla~GT;B=sAcKfEVc+Y~G=DsZIc(-k&llqIeLXAg%e(z{-(J7Yx z8JK?J|Mku|V!zG)t_Xznf~qQZ_WL(xVUl8<1<37;#cfGYqIX>N|9#SdGi0( Yp2HI+@Y^ob+L(K8Ueo)9xyuwH0jr#j3;+NC literal 0 HcmV?d00001 diff --git a/ccm/tests/data/rfc3610_ccm_aes128_8_13.blb b/ccm/tests/data/rfc3610_ccm_aes128_8_13.blb deleted file mode 100644 index c60b82d9a4d8d34a3a1e79a4b3490ecb7ab7d255..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 972 zcmeZZWn>h%-qb6+X~W*bs>_qi?oU3GEpXuAp~FXx9y@;Gm=EN-;1nFf%bSELgZ`@sg#SdLUUIUOs*SK_OugQ894|NhxU=Svk9ip6Rm^ zk0oFFkapqFfuEfXx$)VFw+^?6zqqLL_ovzeMzBFFK$D;b8Q?HT-l6EEl-WbmALlh? zR!rfDX@7i1^oZrjCsx)ACSJ`GaNrb!7{v-S3u=@RE~6Bj0yjSW;w4!tyCj>xPgg_h zMd1sJ-6^+Pr-ggnTAsgm{)VFv!`OhPK@4M8!{Rx!MLij*lV{DU{Ix2^M{BOv#ItL9 zrkzOKdGeXuM~DIJKog(_Xkalw-r~;3-_^16lz-3l6BY_i?Yfb-_mo}W3w!q3Il7Y} zMsNVlfEuBN%?Jgn{DT_=Kd^;$2No{TooeegTeV=x-gbv57Uwk+PfuZFmSS+!_FH*& zpUt#sWjVhDxF4?QUh_a=qaMeL^V4rAyi#pRc$szcd{8H=Z)eP_BQ-)Yb8ERlMV}IG5F6q+-6BJ(MPuzPW z>KB9MF7Nd}_ivw5pfP36g*Og9r{!u^HtzeipeQHwas`{vj1w`F8ol-yAJuyyTU&mh z3uL5#{S#rcLa33ea(p_P7*jB;mXAL#1d>cQb4D-XFh?#rVX}svpay#Ce{8VqpQMdP7@8y@iJi}`d>iS=b zBks}r{Xv@^c)ycVHal)-U#7!T?((nB24vjTgo(QL1yJM8PH?%jUH*2X!mES>S}CS$ zcKsGyp{LI-TeD>8>zh^$)+_3*7^Y{wS$*FlDRj!wNrBIp!h($ diff --git a/ccm/tests/data/rfc3610_ccm_aes128_8_13_fail.blb b/ccm/tests/data/rfc3610_ccm_aes128_8_13_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/ccm/tests/data/rfc3610_ccm_aes128_8_13_pass.blb b/ccm/tests/data/rfc3610_ccm_aes128_8_13_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..87c166ded05dc3abdf63174a9c60baf3c94a3822 GIT binary patch literal 958 zcmcCv5xCyeE4*pL-ovWPlg#cqX%U zi`^-=TBn73-CCZ%cm9T>V6)hOhC$3?Rm0*lvqe1_sgq~Ts{FMo#z$+e*Tl1HdZwL7 z+m49%9;0Ly_?!dw&x>If4W~&w~+1u_A#p1kX;^`@jQVfpTek;%Jvza!n zEa#U1_rn$4YaU2!)Z=(@e)_k2IibNBjYpn1k&ecv}FL(NNO>@U01C4Jgpg2Jo(iFa!xRp#9;GGzmrS>}_xgS8K0ro@E{#WBHh(r-R^9&%9= zy0s?E;Qdm|{BoX$%d!=}ZxWC(6S)+8cv^Kq!t9#eHJ%d_G>lx;X61WMk3My8J}v4jThZnZpV9*pX%*6>h^x?z5LRbXLv0_UH?mQ#65by zKWNhf?{{*_X2); -aead::new_test!(rfc3610_ccm_aes128_10_13, "rfc3610_ccm_aes128_10_13", Ccm); +aead::new_pass_test!(rfc3610_ccm_aes128_8_13_pass, "rfc3610_ccm_aes128_8_13_pass", Ccm); +aead::new_fail_test!(rfc3610_ccm_aes128_8_13_fail, "rfc3610_ccm_aes128_8_13_fail", Ccm); +aead::new_pass_test!(rfc3610_ccm_aes128_10_13_pass, "rfc3610_ccm_aes128_10_13_pass", Ccm); +aead::new_fail_test!(rfc3610_ccm_aes128_10_13_fail, "rfc3610_ccm_aes128_10_13_fail", Ccm); // Test vectors from CAVP: // https://csrc.nist.gov/Projects/cryptographic-algorithm-validation-program/CAVP-TESTING-BLOCK-CIPHER-MODES -aead::new_test!(cavp_ccm_aes128_4_7, "cavp_ccm_aes128_4_7", Ccm); -aead::new_test!(cavp_ccm_aes128_4_13, "cavp_ccm_aes128_4_13", Ccm); -aead::new_test!(cavp_ccm_aes128_6_13, "cavp_ccm_aes128_6_13", Ccm); -aead::new_test!(cavp_ccm_aes128_8_13, "cavp_ccm_aes128_8_13", Ccm); -aead::new_test!(cavp_ccm_aes128_10_13, "cavp_ccm_aes128_10_13", Ccm); -aead::new_test!(cavp_ccm_aes128_12_13, "cavp_ccm_aes128_12_13", Ccm); -aead::new_test!(cavp_ccm_aes128_14_13, "cavp_ccm_aes128_14_13", Ccm); -aead::new_test!(cavp_ccm_aes128_16_7, "cavp_ccm_aes128_16_7", Ccm); -aead::new_test!(cavp_ccm_aes128_16_8, "cavp_ccm_aes128_16_8", Ccm); -aead::new_test!(cavp_ccm_aes128_16_9, "cavp_ccm_aes128_16_9", Ccm); -aead::new_test!(cavp_ccm_aes128_16_10, "cavp_ccm_aes128_16_10", Ccm); -aead::new_test!(cavp_ccm_aes128_16_11, "cavp_ccm_aes128_16_11", Ccm); -aead::new_test!(cavp_ccm_aes128_16_12, "cavp_ccm_aes128_16_12", Ccm); -aead::new_test!(cavp_ccm_aes128_16_13, "cavp_ccm_aes128_16_13", Ccm); +aead::new_pass_test!(cavp_ccm_aes128_4_7_pass, "cavp_ccm_aes128_4_7_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes128_4_7_fail, "cavp_ccm_aes128_4_7_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes128_4_13_pass, "cavp_ccm_aes128_4_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes128_4_13_fail, "cavp_ccm_aes128_4_13_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes128_6_13_pass, "cavp_ccm_aes128_6_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes128_6_13_fail, "cavp_ccm_aes128_6_13_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes128_8_13_pass, "cavp_ccm_aes128_8_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes128_8_13_fail, "cavp_ccm_aes128_8_13_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes128_10_13_pass, "cavp_ccm_aes128_10_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes128_10_13_fail, "cavp_ccm_aes128_10_13_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes128_12_13_pass, "cavp_ccm_aes128_12_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes128_12_13_fail, "cavp_ccm_aes128_12_13_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes128_14_13_pass, "cavp_ccm_aes128_14_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes128_14_13_fail, "cavp_ccm_aes128_14_13_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes128_16_7_pass, "cavp_ccm_aes128_16_7_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes128_16_7_fail, "cavp_ccm_aes128_16_7_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes128_16_8_pass, "cavp_ccm_aes128_16_8_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes128_16_8_fail, "cavp_ccm_aes128_16_8_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes128_16_9_pass, "cavp_ccm_aes128_16_9_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes128_16_9_fail, "cavp_ccm_aes128_16_9_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes128_16_10_pass, "cavp_ccm_aes128_16_10_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes128_16_10_fail, "cavp_ccm_aes128_16_10_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes128_16_11_pass, "cavp_ccm_aes128_16_11_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes128_16_11_fail, "cavp_ccm_aes128_16_11_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes128_16_12_pass, "cavp_ccm_aes128_16_12_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes128_16_12_fail, "cavp_ccm_aes128_16_12_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes128_16_13_pass, "cavp_ccm_aes128_16_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes128_16_13_fail, "cavp_ccm_aes128_16_13_fail", Ccm); -aead::new_test!(cavp_ccm_aes192_4_7, "cavp_ccm_aes192_4_7", Ccm); -aead::new_test!(cavp_ccm_aes192_4_13, "cavp_ccm_aes192_4_13", Ccm); -aead::new_test!(cavp_ccm_aes192_6_13, "cavp_ccm_aes192_6_13", Ccm); -aead::new_test!(cavp_ccm_aes192_8_13, "cavp_ccm_aes192_8_13", Ccm); -aead::new_test!(cavp_ccm_aes192_10_13, "cavp_ccm_aes192_10_13", Ccm); -aead::new_test!(cavp_ccm_aes192_12_13, "cavp_ccm_aes192_12_13", Ccm); -aead::new_test!(cavp_ccm_aes192_14_13, "cavp_ccm_aes192_14_13", Ccm); -aead::new_test!(cavp_ccm_aes192_16_7, "cavp_ccm_aes192_16_7", Ccm); -aead::new_test!(cavp_ccm_aes192_16_8, "cavp_ccm_aes192_16_8", Ccm); -aead::new_test!(cavp_ccm_aes192_16_9, "cavp_ccm_aes192_16_9", Ccm); -aead::new_test!(cavp_ccm_aes192_16_10, "cavp_ccm_aes192_16_10", Ccm); -aead::new_test!(cavp_ccm_aes192_16_11, "cavp_ccm_aes192_16_11", Ccm); -aead::new_test!(cavp_ccm_aes192_16_12, "cavp_ccm_aes192_16_12", Ccm); -aead::new_test!(cavp_ccm_aes192_16_13, "cavp_ccm_aes192_16_13", Ccm); +aead::new_pass_test!(cavp_ccm_aes192_4_7_pass, "cavp_ccm_aes192_4_7_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes192_4_7_fail, "cavp_ccm_aes192_4_7_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes192_4_13_pass, "cavp_ccm_aes192_4_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes192_4_13_fail, "cavp_ccm_aes192_4_13_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes192_6_13_pass, "cavp_ccm_aes192_6_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes192_6_13_fail, "cavp_ccm_aes192_6_13_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes192_8_13_pass, "cavp_ccm_aes192_8_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes192_8_13_fail, "cavp_ccm_aes192_8_13_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes192_10_13_pass, "cavp_ccm_aes192_10_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes192_10_13_fail, "cavp_ccm_aes192_10_13_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes192_12_13_pass, "cavp_ccm_aes192_12_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes192_12_13_fail, "cavp_ccm_aes192_12_13_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes192_14_13_pass, "cavp_ccm_aes192_14_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes192_14_13_fail, "cavp_ccm_aes192_14_13_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes192_16_7_pass, "cavp_ccm_aes192_16_7_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes192_16_7_fail, "cavp_ccm_aes192_16_7_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes192_16_8_pass, "cavp_ccm_aes192_16_8_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes192_16_8_fail, "cavp_ccm_aes192_16_8_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes192_16_9_pass, "cavp_ccm_aes192_16_9_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes192_16_9_fail, "cavp_ccm_aes192_16_9_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes192_16_10_pass, "cavp_ccm_aes192_16_10_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes192_16_10_fail, "cavp_ccm_aes192_16_10_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes192_16_11_pass, "cavp_ccm_aes192_16_11_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes192_16_11_fail, "cavp_ccm_aes192_16_11_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes192_16_12_pass, "cavp_ccm_aes192_16_12_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes192_16_12_fail, "cavp_ccm_aes192_16_12_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes192_16_13_pass, "cavp_ccm_aes192_16_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes192_16_13_fail, "cavp_ccm_aes192_16_13_fail", Ccm); -aead::new_test!(cavp_ccm_aes256_4_7, "cavp_ccm_aes256_4_7", Ccm); -aead::new_test!(cavp_ccm_aes256_4_13, "cavp_ccm_aes256_4_13", Ccm); -aead::new_test!(cavp_ccm_aes256_6_13, "cavp_ccm_aes256_6_13", Ccm); -aead::new_test!(cavp_ccm_aes256_8_13, "cavp_ccm_aes256_8_13", Ccm); -aead::new_test!(cavp_ccm_aes256_10_13, "cavp_ccm_aes256_10_13", Ccm); -aead::new_test!(cavp_ccm_aes256_12_13, "cavp_ccm_aes256_12_13", Ccm); -aead::new_test!(cavp_ccm_aes256_14_13, "cavp_ccm_aes256_14_13", Ccm); -aead::new_test!(cavp_ccm_aes256_16_7, "cavp_ccm_aes256_16_7", Ccm); -aead::new_test!(cavp_ccm_aes256_16_8, "cavp_ccm_aes256_16_8", Ccm); -aead::new_test!(cavp_ccm_aes256_16_9, "cavp_ccm_aes256_16_9",Ccm); -aead::new_test!(cavp_ccm_aes256_16_10, "cavp_ccm_aes256_16_10", Ccm); -aead::new_test!(cavp_ccm_aes256_16_11, "cavp_ccm_aes256_16_11", Ccm); -aead::new_test!(cavp_ccm_aes256_16_12, "cavp_ccm_aes256_16_12", Ccm); -aead::new_test!(cavp_ccm_aes256_16_13, "cavp_ccm_aes256_16_13", Ccm); +aead::new_pass_test!(cavp_ccm_aes256_4_7_pass, "cavp_ccm_aes256_4_7_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes256_4_7_fail, "cavp_ccm_aes256_4_7_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes256_4_13_pass, "cavp_ccm_aes256_4_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes256_4_13_fail, "cavp_ccm_aes256_4_13_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes256_6_13_pass, "cavp_ccm_aes256_6_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes256_6_13_fail, "cavp_ccm_aes256_6_13_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes256_8_13_pass, "cavp_ccm_aes256_8_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes256_8_13_fail, "cavp_ccm_aes256_8_13_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes256_10_13_pass, "cavp_ccm_aes256_10_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes256_10_13_fail, "cavp_ccm_aes256_10_13_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes256_12_13_pass, "cavp_ccm_aes256_12_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes256_12_13_fail, "cavp_ccm_aes256_12_13_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes256_14_13_pass, "cavp_ccm_aes256_14_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes256_14_13_fail, "cavp_ccm_aes256_14_13_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes256_16_7_pass, "cavp_ccm_aes256_16_7_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes256_16_7_fail, "cavp_ccm_aes256_16_7_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes256_16_8_pass, "cavp_ccm_aes256_16_8_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes256_16_8_fail, "cavp_ccm_aes256_16_8_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes256_16_9_pass, "cavp_ccm_aes256_16_9_pass",Ccm); +aead::new_fail_test!(cavp_ccm_aes256_16_9_fail, "cavp_ccm_aes256_16_9_fail",Ccm); +aead::new_pass_test!(cavp_ccm_aes256_16_10_pass, "cavp_ccm_aes256_16_10_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes256_16_10_fail, "cavp_ccm_aes256_16_10_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes256_16_11_pass, "cavp_ccm_aes256_16_11_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes256_16_11_fail, "cavp_ccm_aes256_16_11_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes256_16_12_pass, "cavp_ccm_aes256_16_12_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes256_16_12_fail, "cavp_ccm_aes256_16_12_fail", Ccm); +aead::new_pass_test!(cavp_ccm_aes256_16_13_pass, "cavp_ccm_aes256_16_13_pass", Ccm); +aead::new_fail_test!(cavp_ccm_aes256_16_13_fail, "cavp_ccm_aes256_16_13_fail", Ccm); diff --git a/chacha20poly1305/tests/data/wycheproof_chacha20poly1305.blb b/chacha20poly1305/tests/data/wycheproof_chacha20poly1305.blb deleted file mode 100644 index 0c8d33061f1d7627fbbea90061160ef392509da6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41626 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 CX_U4A diff --git a/chacha20poly1305/tests/data/wycheproof_chacha20poly1305_fail.blb b/chacha20poly1305/tests/data/wycheproof_chacha20poly1305_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..1922bbf88954a0bfdba6cd589ab67bd6180a6f05 GIT binary patch literal 2344 zcmZqFVO3C2R8m$^Ra4i{)Y8_`)zddHG%_|ZH8Z!cw6eCbwX^48U}R!uVP#|I;N;?F z267aU1$cP*_yq)oghfQf#3dx9q-A8~@nm~sTBYPLH z;5Tf7CD;VNIAYQM#bLHNhM7RY?HcG7fdsX&2?Diupg0Mn5@e<*vO8gdB0WfshYPL= zK==qD80ZiR^Cq%j7&bv*fVhGK1X(3e&<&d)3pT+c$bv8*K?E7l09fUJGyoLjbhu!B z+GeS)$Hhy`8=r4nIx|XRq67Of!MT?|a_(Lv^K$t$tctXWQM8g6MVb?cuugNLLpwn? z0TryJg&0NCh*1=VPZ2D{u`5DL(hOKlLQCTRfr{9Z(9`(G1#Vf1yDhTx zgf4b2I`T^NWx7L@*o!TGyC$u2|9Wnzb`^2DQpnQvj4WMgj^wy7%^_+U>HY%h5_?H< zXn=IRB1;$0g;u16JjgDPzb2CuUoc&hx=4v-xUN-hB%}?5F88nJiB3_-y3UZL3z&MV jiA%l6b^&!&kfqCtEM31y(gjN!MC!s)Ob}55pqCo}uO{X= literal 0 HcmV?d00001 diff --git a/chacha20poly1305/tests/data/wycheproof_chacha20poly1305_pass.blb b/chacha20poly1305/tests/data/wycheproof_chacha20poly1305_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..b0f191b9c6c98e2549414837c0837b19d955d4d8 GIT binary patch literal 39033 zcmc$G1yEeuwr%4CZM@Mm5*&iNbZ~bKuEE{i-QC??f&~v6JVAm(2m}dkNzmV%TkoCw z^Z&c&Ro(aM?5Z8;JvVF4Iq1wWM)pcapyPl6FtBj&2#83?&rnd&&@nK9SlBqYc=!Y$ zLLy=kQnKgpkI)0{|GMixUNFr~LjE%XtZp>>&lhmJ_V(a_z@Xre(6I1`$f)R;*tqzF z#H8eu)U@=B%&hF3+`N3q)5`zO0nXjys?tmiMSjkX;sfE@!r(c{#24u^N1B=ILb;XyqK&t5!;dP$?EXd9wAWY??m6Cl zt0C$FHWq^zQrTtn*S5Myn_`cLuW_B(%X0~Q_V0&}0i-j53#Ky?k`RN4>FE1Zh z+8itmHnDfLF@;_-H**4e+Pi}7?QA@uf0%(?EFHk+_D+BNoVlxutCJZc*xA+2*~G~V zx}f_XKW1zOwsc_*gr6mfojIwk|I?knvxVy&BIs_mNv*A(^8 zfM_Y!&t1Zo>!)$DUb#DNpUlFhhGmWLiN2s}D?Zz@@=IVIpD{#Cgao`}O&W!pO4BcP zoPR_TIKAYzqHl3)LKd;Zg5*5wXaLEV_Qu|8sq`OUbLRp8V7HoPk!e=*(pCX9j6xoP zScsS0XKeyz*zaKZrh%&w2@2nFU8=1iDNd}j9p`@u*wvJ_`$$2@x~v+ zHnj?w+rmyAkeB{`irNg#k%ZEbE}TfcLi^+E1Yxa~2H*N#+-H~c13(f)XB7MAn;d>{ z=PLksT|+8)oW#9WvRmGM3PLqiByWnHEy!rF;FNylxl|RHQdJRAlr$IZLhIh zI1Gryoz2f8LLWj58%#YmWw(CZDtze2*#UW#)<$2wkTfPB8?^)==gE=6(LPv6S7p{B zg%iJc?|U*pq((eH2!d>Cx}OMUWKH?f_r4QnxIa=0Ann#Q-zPz1K85#ORCfZkT~U9% zcbwJ)rx6_j@s{|~X1)zoA`|p3!_i(kVkmcL4i|e{$)#l40La4@_!%HXa*DjwdkNnt z#Xm@P{aE*5X7AQLUPeLb#qj&Zxpr|3N|Edho$v6CI>wAs2B7r6*5;p~|AA%de@4;B zG!WC4M)y;0WtHkhUoIp7Ba6zD0Pw*uoy$_EsG=jAN%L%=x0P%zw{dugJT(|3*b{EO z7;qR@1mhqIOrwzEG(z=YKq>E?dG(e4qvNT>!AH-=jzN&9#|9vQaHajdGz1*O$ZeCt zA}ZK~L1gV+LGbgjw=Bq?+BIitU1TS5_7FsKt958az9*439>D@Ys|U*JPGT@7D>pVa z1Zg0JD&-rVTU!vaFHQD-%7-vFTI}#6Rl{@YmnS`7mGv<059B=HRi-0ZlkxO>Er3BS zX=)Aw!S{3zes#M*Ta||3e>Q(DYRrLH~DQ8xro@CeIyssJSDZy#LkZtR|zQhDo427M^B6N`iX4yF>>=cr(AOl?FWB*>z zRduZ$g=*nDi1KzXLv2!9{aHyDf;wsi>1Bs~^(6`RNCSr9c5K@h6_6rQ{n7nE>w7K` zj?ryasxEU~cz?P=noEO2z|d-dE>LzW-CPaPUh3%IlEOq(aW+bd3W?}1>R&j)jCKHubgz)lPCu8dL9;ldp;yrw_y3${(DvdAPIPrb%7ntl^;p6)o zMLcbgF<8axUBs5Zo4HmK@XMCZl~ftz8sQqczfsGQ&4K=@1*{kdX6-vpA`$}nHwBiw-3y)TT? zE5)l>IPhJdG^YiX_s7r53FRJ8miFD2?I}PXNi|FZ01|mur|t1jugevSyUFwD`yQ^z zM#9TlX@y-g29rkX{TBtUxjUfkINe)F=!K4P(DWsw3kV*?u|IcU#lkET>bEBgQU*03 zc3^9Qv{vS78D(bmmJs)+fTf6EN{17Ye}V2tby7;2%G$IW3zm8EBk&}?X8?2YXfU2$sS+g)oL2YgW z_bcV2IL1?U!~mk$+Q(SK(Y<&>MH(q~zHiNZE+sW${7b?)#3^W4%1+%44DV)fFdr#A z(G4LXK=4OHyVW~YtKP;kp7IW@EwVe{Kv<1R_&Scn zt2hHVPqa{v6YoGAKxQ~H=El$qKU-mPa2pUAB6HNsfDZE39HU+#;y*K;9^S8(~K7ov#;w#HP%5hVr&d z$vZ#mxw)UfEQ}v&qk|3)D#rvnhmt1pE@M$Qr=pa9(6xUT-#BEu!!L1rbWgu+3dNtL zHwvX!%;E)^oJm;UZq;~Pcvb}ngYtt&!G~KFv#{e@;6c?vlcnabLXvh_VV6ltMA^60 z4~$0)0xJ7&7+%?iEIF`y8amDF@$jxbUuy68C?*Hlj+je^yunJN>CT8-PB13ij6p|t z&qDfyJQbz5>5%n9{rJ#!9Ar`Lzj93ovpi??NdQ2m{ImZD>j7@f3OR~xx)72ODxFE( z^X`QW)pXP?a)1bZA_ubXn-V)uf>@N~t1q7*-_EdNUv0k?ZV4i9JMw(P!?C$oqpMhk z+7&$*$)^=54_eY;6RofNfjb1JV+Ax-EoBcep};0fm&h%9vw($}(_Q$n2+>)HZN+@B zI50O*-9>#T1M}#ij%EFWg4Jy0ae)=O11|wYd+y*?esg+cb|tgoN*3>Pb3V#MY+1TV z17W{qe)t<1(93aRp2|GOc1cKWHUO-a&Gq^h&P78Y4#~K6ka`4U9}6R2qgtROSPAXm zU8@&Pu+3O6URe>naz7Hujl~Tbqywo$$yHf+uL34-{p-0lZg^7xOM`$NsXIy73&&3f zWFV|4OVjtWUjvYytC$1f#6yjVetv!gtCyIWD(aX$qa8o?L1e>SfNVG7jJs=#U(8n2 z<@LYnL-P?mv)N3WS*7`)CB4eS?+f9l(pn_2!zb^Xpz7<}k|PWF{L*h9H%k`Z$jvwn ze+COAURAvF(UwVM6;4bKKp}jlEK8!qi;&Jq{+GKo>;nFF&2&?j z*+qUAlcIqD%zdr*aaDB4IFM^JD`I2K7e8zqxZlQq)$}j_(e6z=Ul~MT3!+4PYi z@+h{uVdDZ#1TzJJS@m>z$K~;!6egiD#amOB5#E|n0{Gq{Bsn6SZl)2Rx_lU73C26K zdTaA+pYxKLdDHN$6@*BQ7X^}hhj34|xJ)#(!K`6%B}a_W014RG^Q9M;kZZP^_)goV zB0=0Vs9f>ZWI~Lk1Y!WHbIU|kCr$1^5c5V)ywWfsus>k&6<691x8rHkmer^o_s2X4Z=e_M?Qp@vt6U5!j=Q>Q~Y}%p9!hR`k1ooWP^E@zFtDp zSp5))Qgl6{$Hp;jmOm^7KuvxE(&gK)v@iWG$>VW3(l! zgDNYhWjK1+NnsRjkT+yXbv-`c?v&Wb+jE9L(U(TpiH zUR(eDE~2Yq@e=#pD2K;<5@(ejT*<(Tgq?&wc?!tn#DlQJ=b#hG4F#vuKBgRhclnca zbV@0EtWtk9Dt`hHw^4Yc1VY7}KFhi?Fx5h$=-FoY5$#qSMt&}Z1Yh4aHE#>cB{}T< zk*gH$52Qhfj3{Y1cm0u?L)${!IacfpUs+rqX>`$9x5A9E=HOGvZtk7!%R#et(L55J znsL3j^H845J3?1}UO$@`&HCwnpkE7Y=sr87aWijx`2h5aYC@hoAKN{a$Bsuyr=&8| zrSJp!Wq@#JLWOKOogioYYdPVI3ZJVEbE8jedwZ>-gyqV(dtp6GcqgGjQ}YupZRElYr1Xx^cyfULH51o22=Ez;>K3fgay7l4(7ooH zi+<*NB z%DMI&u}Q5!%AQdHiA8Ft@MI#^MQ|A?Ii|G}-Nr6IQrJ5(EfLVMfTGLY#2RAF=JziM zMSx8uU+4+TNL(2|NT>Rli{>70H`S2J*kqIq(R5&{RLiZ%IUwK!MmjaDVyF_6(2^7g zL59%}OfDs(-_c)MmY1yZE8^l9LWoMhG{Kf;jo*;%3%P$y`#--7bF;Ld>!yAFlO(R7 zq!J`6I2Lj^h;&JH9#{!r=6*ph)H0feiST9zt`bf&xOt{9OEybVq2)}1K>GOy%GThm ziB#hm(KYR`4&UzXbjBS?oIYLIw=)ra#b`CN5Ix8WT7TU6HZ9(4E7fZWD^!+(UqY-= z{TORsd!v>D4M8=vMghFd1d{0F#>Bu^EL^XMerSp_r{=DcU0`R^I54V5NN<~;zZ)YG z@4jqOXdC14{G|-(wMuU$rvSC}hRG=JbfOA9sK>WB;Ho(sSPHe-wXr%vV6iLKm5`3Y zn}vxS5?Zko^N^?R(~!>JyLC^m3{B;H27PO+J-^qgaAP#PAO^4i&klbLBZQdiW$m17 zdG7w;_B*h||I~=3Byw(}F)q7Bnj4E2aF@BZiSBw4;L^Kms#fKPGZ+8p>#7Ntq6v?} z2N~*mrlBFRd$gRY_}n>(a(Nltp(|DmCx}@m3mg0~`YXtqmbqs_jd;?7<47GS6g^b? zCFl{EC5hq}Oq|-i?H4dIV&!q1+z0qi`7g!`la;Vp*hIZ$?=8W5KXx~fy|yFrdc06( z_5lLd@dT+#%O!{$MSMLUO!?lP0mFJr)l{x^P?XIuzu!RQ342ATGt z>YGbu^mh>occ&hd05)CSsR-iaTQ6cy-umZv1|hSwD9i3KW6xAoNXcXJpXbA#OO^d{ zD_3{WyzosC&s)|xc$D0+~o4qJLsEo=v(CnLZ^s&1_GNk!%$fEJ6zgZQ=)oGF$a@0a;4T&Nq zv&=%15i&vrCNR}4H};Yh%p(l?dWeiqZO%5fegl>Ls+i@x2^nbeoumhF99!Ytfmo4G z!~OgjqSEj#oA0>3jB-G(t!mX0B0E>2r$16{(e%0w_I?>J0?5!P4iFVnYTYxF56i%$ zkq?Ka1lfFUoP@YEhkV<_Ieg`G3i!zT7j z^D544AqQXO5AK%;cCV4>T$!@CahPmpd^9|nNnC>})jaKQ9jZllZ#;jg z2Y(Gwk)-JqlDre|u>65Lz{VgZzHT6p4_Y0SoJbjfxGz$9>VfG_zhj_QwM>6!`?1gA zlE~+uI>KG{rg(rI7j(hm!g87PslA+uFA%_m_R6y)eewP?P1>!KMp8S%0>6)Au=X@i zIqFzLdX$u4!PmPoRZ-d(6@8Wb;wSHiPZNZ(EM1IBfQ-zYrb;K9cutM6jh+xl&(Ohe zd?c^(_~(y@v&ZIGIOt0QKhf5HDPzs}>aV$d1aZ(WD?%LtRTITV0MMDsz&7Bhagj?3 zmwmBulBZtA6$7VC)=ME2$%28CKwF!q2tz{-JHKC`dujF|u*OyA^7i26njgv-0z%nw z8h6gomsu3J6+LxoJuay($Q-0JhYSZ%{^xo7hI>g;!x(d260u5!EX!-YEM-Vk-nbo)JV`s!L7qUhmhp4f+7s=8y#Puu02}PZ(NdH}RTlqojtJ z*KgL0Aq-Y}I=%?SbaVl9Sge+vR9~Z6SGt5Wb@GHZ-RkKf$g+CQW@i--!(7_DM=oS` zrIA8#phfz(u7FBk_o{+dprCw!eg-Cr-OCK2Dxf>2on2({LmZDQ5XSCimFKnNkwwmT zZM3+`39`VpWcKK_t1~pMdy#S7pD8~*zfQa28&{P^QAA9rszt!|j9pS{gM#TqqaH{; zQ|Q5aR3(f!LtgubqL60Qm-}kh5jzu_?NuF`sL*1LSb6JHo^S!Dw?Wbp1q-zY$?Z&{ zY&!rx0en)==f;W+JaGZ>n3hML=sj}X$a(Ju&1t$$Nnb-KVOxwKgR2ASF3!+ND)@zJ zO7^sXn&bx0a%*~zrFWmb@=e(E`I=KZqwGB7+k6R?y*+|awD#z)L%vbOn7-Kyg^u9fg&;ZY0sk+zF3NP}dDSp`86^7r&NTA!9#=9S%}9dq6pXehSU)RU)ckv6lK85O=SNGAk?6m znG{wOq$n~G1LkW|U`#Iyt(~Bsr8ZWNQ!gE%(-$9EXyF^1t8R^OE8Dk{y46;ZXH5FA zSQz=?o~eUCLc>;|5QCN2(m<#VPuYwr8RDq=3VYr-8)17p(er2^w*;ubt};qW=u!o-`n|eJQ}u^x{~}R1gQKdofhIa$ zjk5zgM~&U@`Vtjrufky^!N?LcT7ZDHo#M+vU~)N<-NMBzb(gn;s=Q25@N1P_Cfp4S zMagpm$QNf)EwwLgXw8p%ZDB>t-%m3|9a1GVJ62=7hd3oTia}1(OBffhHbo46c2)pL z$B^3ifK`9gUiyaj@mT-LcZK>wjZVWUW<9A>O}uX&h6i-@CAnOCZkPsN(kVLv$>!$? zlV!v(l>%!-QB(Ob$SGdDs+VXtV;^pfeR+mlegL6aG&CWG4=n*YygV@K3K!-Op+>7c zlIh;k@vve_KNAO0(+14BUMvrBpnq%!QnK$%VJ0_dL#(OcGi_$ka0~fVG>>c^XS?+2 z7CQVIJ@cA5w*n8u$qa34O+3=om@&o8|*eUm=~ zfpQ&ES3TuijM*T{>g)Se>mAdgR`to@gFh_~-NBE5Om^Q9<5@@l^(cA&D30&Z$g? zJVq>Ce#mr@Rj$WA{O)>qy2mJ*qj8Xn?MlL{zx>d@IbPGgN82Nh-+LX)(qqrD; z3fTh`wo~=tObedkmnuHR1Ffl`+5n|hTWqE&Ar0Om;C@;L6^VAXfrxpmzHsUT9D2Pd zy}?kh*F||w;Jz&FB3Mp;%eYz~6S>^@;5rb)u7BK%4isvv`LRk+xq>Dz6~q{LLgKsiv^Y@UUf!sNNQ*kBgO<7+|b-j}M) zb5qc+jIzETIcx{&iTWpie!3uLpl*%30|tx)^O}a}hE;a0L>bLuX`UHiwEuz( zP-T!+a_%7giifwGg>gxK_cCNb3m$z6RCfH16}zc^HjjERDEo?~w5 z0p_nZ)qv&}kvQ;!gLGIYz1~JJuKT%$^ z_qV;eY(bG{QK7J|BC&6S0WAO_#W+XOw3HKwI?(66Gid>=fjuXAfcT$!daFEZHK(U} zJ3lu4$snHNrZcPY`fso%rOC@9e0S}rJ?@9yKxZKJu-=1QISW0d?ar*A0C1MVIRgma zy~R}*`G;iR&&9pD{-~Vy5MAs}g7T=7J{(B;0_WhRtIJYmR6@93;cQVzn|jl1QhKSA3MU~3 zu+k4SOF~{<=-P(9{k<^<=$L#>Y0gew6aYv$#<#V#n~q=;b>w(J`=$)8=)~27gW9p&KqIgi{yiKeOFvi#CtAdSvTwzb2hBH9`*r0QLf};nFk9*Ap zNA_LhY-~!vvyky|(eXIWIS4H%UHYv0EuH9_ko?y7RT|wD#Ypi^f<7dnV5$a!mPqGY zvS-wSfLo8f6&U6-eJZVFvMQj_Fd-1lv%yX)c0Ul{sjXf z7`2M(Y}ACW_e?Ip$EIBKXJJO4?XhhHXe{zXo1NZ_4HcKoR!e_PT&A03Q7g4%rbXHw zIFJ~1BUQRe3NW4lzO;D}eVHyYH6V9B^RPkr5#d%YWI97xpZG(WV$^(3JQ8{L4x;!B zAb6n2q!_5$W=LhAQb%iEdKlc8Z`4D|GC#ERFd^5u89y5u$VXqC1$fK>{y67`t^K&& z^jJ*tD$HPn^a}%_5joA2bS8fTq^b*%!{wWTV>#=QG~>!HD33pl2Qvs z1&{>SOYsHnJd+)Y6hmMk38WRy&6y=YWU7T@N@EF{e;iy>#FiXC_|iep4Z`y_cwKGRNEAsufjujRFy>t zwc47p&ABNuNvo3S=pkjbtZo6uuHwAJ%Ih%mLxMMB?w-#Og|v>2Wg98{9Dz0R)Zq7Z z?|({N*&a7=SF9en)>o8`CTy*5zf47K7R;lfnu$`I zg)%-|^pJpX>D#vl=sOdtiajL1>coQNY#32=BXkxACO;saQM)?(iOOaOkx>$<6uGV# zG!~2v7kKmgjuT4J>+vI2vU;fn*&JAN-EFJfWUIMuRh_G4O6NvJvK8iagnxkR4uyRP z1k=g5$-!|78z|Z(Px__11S|}QB9S(<^`EYgrMBxEs-B9lT2zjxvRSNT5h}QuapvMm zWe++!Ri5KG>}8|Q?3|<-Imd1VX);U*sbNbR+iC9V9bzWd=&GWAEM;>Hp-Wqxkq=WP zZ#-<>HG#o>@PJKhUlr0r>54OJ9Fi8wIz8`j8Njg#^3?O(IlGX*wMSZfGSV|YlNr($zD29VRkMMA-q16r4~Ul5b$P7I%o07 zqTA8;!Dtwh=96J#zezcB%&4}L>g-bZ`;{-f=iBnxb8dP~v>GOnk?eck#k<#QF$94j+t`8E-)wYQ3GP!l zC4Y?4iRdT=RashCNFH2yNF)V<84})Jtka^2B?=OTbkA=TXxLcc7HFAeWgD}(H+0$s z0m(dh^{~H*UNdC{G1N(WB1sD=2I1WO%B?7m-w5-%upVtlCIN-LJ+0HE%P>t@nNR25 z*O-i_u<=o$j+_ZPrHqtUtEonlH_YdjD08;#jBo?Q`_HbL2M*olI>l&Xog#ey(qCKt zI_Egn1UYcN9pVdk8<1Li!{!9tY1L#3Qi6S#nd&1Qy-DGY$+&faD*y`TFaWCG=aIwC zBWl3Hf_EmW#E3_6E#l+t;%Qp|O%Ok)tHRKF{4%U0V$pb)d{k_aVFzbQ4%n=XFGB!) z)CSCgrQM*HlJ7ohF$J5%!;mF6hVI)t0VVHH4YdJ`9%D%gFT?Bc zIYE?Zgw*mUq%xvUz_CN)5!n{r;WJ`4N3)(!FT?jpSu__rBo>i8JP3-Z_2OzrS&qY5xQ&aO}xURNg8aBnjL{)7Zpa@^JxYy`y-WI_@_b zzE))nlT|1WVe3tu>rY*&*IKHFzzpyBiY5ny!!39vgd=#s+bp)cfGkfcS5$1zC+Ns^ zrubdL2sNceB&%M0IOe?4^rm+9QU(bZdldHEuPqRLi@C(;e9eP>T6YirBE`xRT<%*) zjxCSaI09u+dazIV{<1Yr5uKqZ{GwlDl(p5vsBiM2U2G4|q8w%n#M_{=3AWz|`5p(+ zR3elw6g`?_e;J~j8n7&8mGm;v7*vJirMr($ydE333c>y*+rda;9%ZQmUX~Ty5lJVg<|Bbi~I*B2VZSF*FG$Jcm5L2aa* zkRQtHYQj3{&9Kk5vvj(lDV%#(25*4019A7J{kspMKBWcYlB*m0^}kM!?`i_mn#WYE zsOtK~HMu0#Vz!M#Xs4FnE8>n7Q;$4Ao?BG-Fq}0F3bOG2yqe<7!Giti3HdZr={%oG zbfGeStXY#=O+qV|S1IBD!@gwxNK%5oHyb&o~x@MCXl*@;sKdz2klV4bv^Kx!vc zP+oR7nYwzAn%2kWfZkViDfr=f}%%>gWzdJqANb;T=rE)4t|sf+vl{ z=#XwzMX&WS2@A1X{$dHOo&bNmAv&@JSPR1=G$glOJ#TxJY|TpY}wY&%E~grPe{rYdDKpzO_rl}f>rbFYoe zW0Hdxu4k0gamhAuaxuj1U^`C3l%w1%2i1`T8>x4K`4E`LX3-JNCJ)iYN^1o+ ztgECMO3czW$hzfbUXCa+ba!8WC?4NC1>>)M621}^r0g@{kaB>0mxS~;r6${I+${GA z8MrV!Iv4T|YOYk9^DtC5w`c(-OWPsi>aJHKgSv^+Y^XT-Eh&_)hBL+Aewvl}Dw+s0 zBA?=eh|EBz%V<`2>C(O_eK52XR}t!Xs-uF;K;_2-aL zx$L%K65??JcX|>fG^Ny)+8?DjF$EmjMU!U1WY1ngN;UGFvMifq%QheJ28}(^MJ=d4 zyxN~ZWlp|dl`VJE1Zl`0OIHIvLGFMS0~8(}JB7D~up5Jp@KOI*ps+su`jIb}@Uq9cK$~ zf+-_%p?inV*A)4loOV1`~BOGVXZ(wD*7I$7qK;P8iW-_yXk&Js%494I~ zN&axQ5Zgf3f8SP-r+9Gr!}6^hG>B`dD* zF=HLeFZfXUCN>m#0fOWL-8t1P&x6?y-6{0`Xqe^sp*@w@OHF!U_#-nya~6oUc6>zC z^xSr?85k|J3B+i`pB&nv=g-f6Mcps0t?vr-x1;p2+@mu@pl|@gjk+9HmEGi{mod7= zH`KyI$kM`_4Z7m0KrfDXBt7HZkRo~=?&0AuCP~s}x}Hz!L3p_{tbW?o_rF7va9XS$ zv;jL9TQKEN%QV>9Xd!`>SwOLujjtnO*lDf2-IO8k#O&>}(2gj?F~0+yeG`!GEvx&p zN#zryOV!E34jH(?t9g0#SYL5LOxGpf3%w3=Aci`<33VMV*M}0xO9^Uk ztwkO;;jwcm;2~Vx^j#|+n>1+>HG%}zX)gPC3Wulj5;QHOM4rolMP$k2^9Cj*#5Cwxo!Jc*2=3q=%?kL!8#%-4U1uK)SV*K1kz zmxW`f7MWg*Z9mebyA!G|K_R2QbqdEc&KLuF*!sdubJ@Mm7P35w7cq)7%yI9yQ(Opb zi0VSL1j_~ef9l$cjENvvr6)}g=QodhG6I*qksQqn^|~mGWAs!4gdai1f_g8uE`Sps z+}<#X;eE^2G>I`TUDP{rS4+6H^%-;;eipY&0LE*b#%t5w1MA`g-Ao!>0x*hEuA z<%mHoakY*pM>(u3&*`I{6E_8b|BGz@?aNmO74U|-e3GHRKA-X1zgd8m75HzLC5F%+ zT%U4Gw7@c%jHOjZE+{qnc!rMhJnx4gD9$VbwrXDgRpC;CWnpZKu138Nu{BI*}( zACF%_s|)r1i@<-ot^aoa|HX~jx}xQ=sR~g7W_jQH1@+X?5eOhz(u0`MQlE!yN#E`W zgU{Dws;Eepo2+&Ewm@x+>wb$RbaRV^UuQrX4^LHJy-0#)t3w!jb?bGy~WQr@5 zf={&3zp%R^O0ixA8c0Vk;V%dN+im@KTK`w~D07<7Z3Q$ksn0IOqiCV^pd*k!O#uh! z6zG6Xfh_10D1uG_W9Ss1f=+=^=oE-Ggua~u{?*y9QqqB@7UQ@onYUh_gw+dO^p7d< zFIR<50YB&zFo#Zo0q7LShE4${=oBD?805qx7=bDA{q|cU zVhpySM`&4pOo4x^Ea((~gHC}g=oG+#PJu$`6!3>mfqdu`$be3PAm|k6hfaZg=oDCm zPJsmI6p({X0R`w3;DSzp(m?QEmHodRugg|@@oGA~1y#!6zsYe1#H$ zI+O?|{~&^Ynf70m^b|XnZ;g>?^|gn*EE`QvWVe8p^#>9BTV+9s;0{UzW>6wHgc5;1 zln4T#L|_Odf;Uhi@P!hA5R?e;p+rClB?5aW5i~=Ipb<(0AD~3=`VS)bx7zxvw*M+F zdaYc|%-nD)dmUMV&bCa2j_@2p1l0nlP%Ur-)dIaxEieYv01P%RJ#)dF9jTHp+- z1?HhzU>&Lj)}dN}4ypx~pjzMxss&u3S^)JAE$~-m|8K|V0)e!p?sIFF3(b0t{?1>~ z5h(v~1W$7C$q_us!6!%XBnO`y!5?xE06iX|$A9$|cxyz%pssTaRDA6i7>*B>-jx4v z1pjK)Cr9uk2cI0llN@|<1W$7C$r1cR4*pl^{=3&DHQW@mwK(BHwC;-otl(2~9Kn+*d~yU&rtrxT{KFLfRocIbpMERuKaW~s zLhnjI-AY_^hnDpZNAT~I_2dYiOyQFwcrt}gj^N1@J~@IXQ~2Zvo=oABBX}}}PmbWp z6h1kEf0)9*D*Jysu6c4<`r`PJx!a5Od!$HE56m;nK)`CuE^;q*RlD($AF;><*+mQw z{=+sG`bnlJT^b z9YR|zn^#D)mBXhxBeDwJ7ljl}?y__d(vFvSBLoqvChrf# z?hiL~+wT5;qx3#a)L3Gme6ac5vub)P)vQ zX#I-wS%c8KUU6J&gGOg8iag@iUSTafr^31#(<;ke8)ws1f`Jy6XHrm4N?izZKlP9v zv$+%Je$Cljc*g194^d`u!{hb+_{9FI7WlkO%IHss;9~>~pb(+|dd^CT5&3EtP_FWD z8WZWGOtt{J{|S9ua>)zB4=IV2;CSzwwd{l1dU2EV^_7S=+~>oY!R%u>_dQvxvk~$n zN@P>o&~}`gucpgv2WQ}g57UE zM+}U5h?BG)qcyMo{SX~I#!H?gS=^(i>{Sl7#ZtkbLScEno}D+^Bss^>vjt=O2Jf9n zRH!H}%fYfn(a>s&tX0|6X@f@5@r3d$GS4@Nkv^{0W{MEYFX9qnQRADu1vqc=kMiYj zf7s_++(g3R#A*m^X``HhNqipO)1lq%M+Gr=#*!_qDu6$|a((@nIC&4eZ_T?w*9{1= zq=p&4?NA^2`(X(?BEK&PDF4VCh!h*v{B;rr2?~ojmj0W=**St3Im2C?Y6X4spC5lY zE)$4)G3dkJj^R7*N#bM~CJnCY{XW_%tB?xSGqQ zkWAa`zaJKkUz<0jc*mQ&A>U4@J$i2b{0l`roJI_VXx~ZfMb=fZCuMBG*r(FVWHbG~ z9azPA)z0SiR;v^^TcC}gG6z!A8p%+yja&|yqAYid{2?`oA?b&_1PctxtySHuSS7*e z1L=y%F>b`(PsPgx^^I8$_kx@T13owxzjj7v!ek5r$^)8hB{B{f_b1+aryusbVSZ&C z*X_^e03xf(3?9h*DIm@Nxvh&-}>uqL#b3cT_vz zXE08Nt>c~{Y;n5XuI6|jq`P0VbA<#Zzu;)*kY~v=L7LpyZB|PLtmQ2GJ>-gx7UCt+ z^U}d1>ZN-I@MyYl0{?~-BRiBg){Bh$14lOX8$mR%l9tI z%ZBE6>Rx|8L=0Hd`LXTN=#czj`g>>3i$5VkT47&@Lc|Q>GDQzWqj`24JaJZcQR#@R zN8H;ICGxu0b>h&Wxq2NVKs7J8;)TR6H$9;go+JW0@|uUp8~q$bBNi&^Wpu~>WmZ@? zAj?rwph^!Q8?WW1V@o1o;%vS}g;{K-Q|@`^3F~M^ej2=b?633cl4ds>t*R4FsdY8| z{?h=8*Aag|L?1@EEWtm610n9%Q^REDNPj{ETSzDZg$QF@KJnTLavZ* z8-wXdhC9!z4#{p`?Gs;&hA(|eb6ILsQ@-C-eBF@!BqiR+rAC@qU|?XB3^zzbS^hbNG$ur z9+JG}#JJovovaI@XlJ>74bf1x)j+=sK=dlydv?6gMQ(D^`zlqpM*qSK8^U}RM50PB{M9t?` z_p6r!a!2dm50OD~imAsUGMSU)C2lQmDION+$^ATiz7y)O(*S0G9~a@cB+5_Qsj1c! zOeW~&-Vc>HxNZpS;bI04om-H(UxC5yp&BZeRzZX#KS(&$e%71>X|2op67*fns@7zX z3>UJ6_mEk?TD8RyysWPNz9G6`HsvLwn?a9?lhY1n{yy@``74Et7=|48r;n7^bm?ZB71<>c-axV^@9;MsIKtm36J6x7ro^;m(}wu#{{#qbzoP^SP(4^@IWXTv zxd)Th+*cN+CI5W6fQy=4?QCza%hwM#OogVApL z$_+mcFBFmX8=QehreeMZ+}{q+S8<}1T*`7s6r%cf)K@0qe*%OA=m>%WWHIdI1ZUr> zQUGH9E*Z!fCkbCt4twuRe9?T6DM^r#=bH$>Sr_O`ALEx5)I3Y7MqpHI-s;1ic2+j* zM<=*qR+=ZGM!JkEKRgl~F+G;SOv(97t42pqt*@8ol)wK1}dfS0(S1HA+DN#0tA!6)d>Y?Fu09fp@%s< z8%;R(?cLH9d4e$)y3MxS^5!oE_)!l1@~?I5p~@f^(y<5h?YfM?ZN49k4DiQMjjqO8 zlr``euip(qgh|CIqgLDdrp3B768-b_lGEjaS}c__ta9L$x)UT@%JBDaRjg*TFoY%p zBR@QxPj+|~(a#nTvfO_B+X1?~dvQ6W#+UW5ADBl6e{1n4K&0B|5m11-{1x%;$>eY{ zU68rnp!Dz-Xd?9xrrLb5Y^Ef4&BG+;`;s*)Q-X>N~ewxLAS&Ux+(YDHI<&IdVuS`%Gz zcd0@#BBp)gOH^WB(^WXaQbMP=Ly9*fC&~3=92C z$GvS`g~88Vd&0HvU3qVln&?l|KFq@AzC*(s|M5YYGa{I9xak{>Z4nt7=ks}rrmX6g z2tKyNg-e=scYbWqgcJKEbMnV7k&Rw2j%6CguAFfq=~$!y_K!9EKlW+xQlb$Ta&?t> z_wi*b2MQ<%54DlO*8G1vK*j>TVpLbsUPt#hywfp5{;f`S@quz5DBO?S*tIK5-4P-_IoXY|Ir z&y>PX39ROWFd0nv|A^0HO;UGT<>f(=jnSb=!{EDfMOg^b;EHGyBM7IBRnh2YA=Th_ z7YpJ4Sgr7=^X<$`@NWkQEFP#6gw;`$ssFgyew6V~LmEAPS^)~s^uS6O>nMpOET2GB z)`ATu0#_)moMKU>GRm6M7S{68m`(<>9HDsPecLO1S~#qabXkkoG%sRWULs|8HPS!g zlhVWVnMhtlbC8o}XpF_M` z`B*881ekr+){yJ|c7TYsjzSL7T|UQpF#KF{s%XbUfc!37Uuintm)uUM54itegZlx;a#mb*{Ni3#&czWj*)6Iq{3!ap6*tS!G~byLs_ zn({4}dnF~MxMXF7^godGw+xTatoOfNV^}$}jVqbWt&SZRlpXv6|38ow+GfB%pU|w8 zzh$kN)Ndw@|L|;27JYY}vJ?4#AS*P3|39D5te<|%x+a?}t>ogW3F=4*ow+ZzxC8H>?5mVacR6f$IOCr#DRBZ;NRd?6>gK%iUs@XD0^3@CTS#uKRx#=XAoSai?ZfjyuuhcfyD>{iCgs z-`a8m=bhlO$C+-^|MOqJNYz(P;7UM))oK_~4odQX&$aTqr`6DFxS#{8gO837^|Q z$6Hsy`cWGDKE?Tuw(fpwE7}txcvIcC*dI$-ERlor|Fnf7n?h!7e)s;!H>P=S!vF5~ zwh&+C1Eo*`6U#hAjzRh_cmfPJeyi(ePcoYenBiGAzQXJ3oAm#utsD8z%Yc4*i6&f( zu^YbV|L1-Ddz{4y-~ExfJyPLyZb(vFL;W9Z-Tc;8_IUfUq^}mbJJU8r_B-D#y5All zlI0%#S~D%MAg-aaR7-i$rSaP%MC|l$KOT_R_?0SmIZ6=yJpv4uerszF&3gXBb@M7y zYvhXC>Mxj|zr~NU>jYZ|+z!Qts(}*59|36v zFYfp1seRGmI(9q6nq(DV^_d16VX2;h`Unnb_>w&SyT$=2a*I zSggH4;URA|{29LUL1l(d-JmADfZ5&L;gj>hB5x@(wH?Qq1F)9>{nwA5lD%rzMLeb6 z?+PlkuwdyATu8Jl2(cOa@3*U|x8lFL#o7h1J~?(j98$kFlHY72hO9$2IRPwDuKU^# z5a7w(H=gJ?E?R$50kF7)iFM%}eC5S{hazV?aXUdxdH}OK3dvXu$BE(yoeO_|jBQ0< z0QBC+hDq}8$Fi8A-L!s08ECL{S{D+l*G~+1;@;Yu98{4e++dj;Woi*qEk^AIsT$iy ze6Kh;(dQ^!on8t>HLMEy9kOGlsbBtgn68}u*u;tBI~}Qla*uSbqfibj zJ1_5#7_PZo`6Tp(EaOdyvBjv4%zTEx^K*;WiZdEPN^d^+9=4c&u&-;CsM!~GY9kT9 z9!L?|l8SJouPMEd@tCi8>tjI2nF@|A)^-PFND9SR!{%RjEY9ZN z&h`l~+e!`}ADt>7(2r=l8FF8^tbwy_F~y^3)41X-AZA+T#_C)T&bIY{fQ-W6Yi3vB z@`K<;mH?>9FfiNVMgB}4KQ<2IddS|*y*)+(XES-mDGq^*=h8}hY3%uA2r4Xnwa1ES zEd9MsuWN-!oyMriE!G}@r83^)?widdFfEKauJgKSkr@agQ%#A7#6M>|;3aEV**nFX zG=U(pH&$TgFUX-+kn?h$)w6sFH5mf1M5yt6_KBJ|LUUfwe!dchKL_*#b%c3;JIs9} z7G6yev7d;r^pzef!KPn_<}th4ih5Erj{mtf<`BDs(KrH}KE^_jx*J%RSpY1?O9_$U z%3myh+O^e-nTNh=09X%C6u2X1K6=%)yus0{jqtm>HcDH`qC(##=bjL=T{27+qW%T2 z#?KK>e~_S*mz9q&*G@Aa!_slPogOd-`l;_&3`kZcu3Fw=9RS{TY zQqDpCb;Siy3(A=3&%!OwYn6~z9%U@D|Ka{%299}+yRNiF2<<4=A9Jc=t(x6V<}omt zzRmQ8zvp6c7asE^OyV#uGXgQPm~j3?06s%)?h6qyalLw_HV`8_>3gyi_6rEfRg+Iv zn9y(X=Lj&FxX8!P%rq=#>q~X4A6u8Ao&h>RT5YuY2Za&nY^oiqasf6hoyRfl{okUL zyqw2@pA&Rq3U9H%X21t%29N-(m`8-0IHxsQRdSET`o0r?dkJ6#vXU;dCI3V|lRPsQ zd!}+zhk?xiI?xP&*nTvs?3TtRgWK$%<)--;;9%)VYVFX@_d`!!4b#f3r^&SbCzcz4 z1vUev6Td^U(4L!NH7iA?jZ7SYRddeJT2zAt1(#gMt1&CNAg;Sur~nq=tZRe0a*3nz zidFTJzJm}tHhEb3SmN_u`kU)%-(tjaT?CIJ{lkI-w-rgXUZ#rTA`?yDth`r2yvxgr zTvHeff4hEXxjhNpg6CwF7;}l?qfo zdb7|Pb;Ei&f#!&v1EgzkoM}Y`@$)c|$u!hq3raA$x}EJKU~RZIWWzV{a8vmw zm|Dj#a@OJc!}||h?qX$1yFl7iUseB1GQYX~7}plu&3uMFyGdmlHhcHme_Fsc}fDHJK!)oT6Q7N8K&TkC$mVuzRKm2^B!?dlP_>%rYFOa%#kSbK^8kc%4s z*_n17xZ6d^;NqSLXIVD!4k+c>V*B64O0Po<)N{nlMEH%BqGj<^2i(m(<>lI%_V}tw zbTX|WxcMls^qc-)G0-sU#Z{ZCfnI@O=q*+!u(oWM`Ilr*_p3RS>dVg5RCmDy&GE%n zjeCRh_*dx(n)`<5XD~t2HJBLVhbX^KFA~%YdCBGsHQ54!jFfKWcc&|vnfutNHqql@ zEHDAjRWhdNK3#Q*YjbzDq7Fibr3<-`jO|e6koE-=?5kPYlHFpp0a#ulXPm5l4-yn_ z*3{aN+b)lTH>3Tp$+)fvxoD{PC97J~8P^TgDu9J~&McmH z+y%kU|DliZc@GOr34;+1Yup2=YAgvR?uMD!=&g@hY$;LjN`h zz$H7NHxfUC3#lV59k4zw_4L675^NGPdH|JRj=~Twg`FjWNs|+hV6$luoW(R}$X;WN zaHYfx-Lw-x3|!}BqGYQFm)J@^{+2+|eeh-$_ycoRg?f)HkG|;VZ-_k)lM!L*H<^e~ z^C7y_Y%&THvqhU4JnBs*f&fQV1#!-VwoHpT1BeLeT4GT`{sKo;>62v+uUjbkG~na6 zM?cbdc>qUMw{zdu5T>b~x$X@IQxvn--hH-}gFYr=DJ>cO_j}cNNBu75Hh>jrbc{;; zO%b(=B@OkleJ(OAolKoAJLmKH$gAS*LQWG7s#`310BfEltgI|rv@pUry5jh25A+bg z>QQ_N6*7*Km761phhAyNBQ z^f=(NEAzlk*IzVqag#^*KBi)0sIc^p4XovzoqH<;s%y2BnHX$0SSC`Nlk@y1Je%qI z{#DF7f`&Cme7aaS%idk=Zrjf>j>@`h-B*1Z+7z2jSMTt9aEYZ|LhMLyxWP-<;BPhJxY3ma8 zAEINF+eyEw1CKM?tG2Kq7s>vN-qh~;Bh6X~9%p`UN$0q6iG5K*L6{>VMRSw?fDpLG zqttdS&-Pi%ohi|L&s4w_3h;zBey3;)10bmBsoBxyRpl!AJp*>tagqjt zsYKYjP?`h4uFmwuZEv`AD_fmvELjr)1S-o5)kkF_J_OeKL!QIYiQqVoF8+a%VZ|Ov zs+(vSDt+5OA20INHWLPGI)$|CZ!yQ^o9OgkGM`9I_NRU-Q&#)596stKE194A4d0zF7j?!l`pUlm}%e0|>g zb+HX2jNQeLeK#cW+g%@%lzOPO-fO|z++K;BKTo?;?a#i+LR;R!_f9Sn``98$4G(q$ zpk8`-ori^uGD=RmQ8?VGe47X0OaUJoU0J2)x(2ry)%K9_Kfj7WGKuCx9K2U79$!?k zP+d*=Yi0a z#fY%AITWk0&Y5SEGklK-OYe&mRSx${F%^B4t{(dfKlL_9q=4DnIet0pt?ve}$D0&y zsG$%FCIYUsM#h_e2BFI`ei5S`OgjoDg0noM7l@^34p>aJ%Ws3&NT4Q@fZ3jZGzU-o zGaBaRxove#^U(nLI?E7y3OS50zGna2szy4e1eT7*n636^PR?-y$^B=_1I_3Eu;6R~ ztoytY%oRCW>*yoHUs)CiA{Ch}$<4}29`#EFRHi`O-41kwq8Uwuv&1DH5~ln-JcZKi z1HT)_T|C^NCw-gQSf`g?eT3q1DUDb0w zC(xKY%Q20(HQOQfYxK$WmC|UCR`hA&8)6H<><(PRD9(1p{ndd{!b2R)y=Q>gitDn< zhMM8ct&~>~rjvqxDCFiFRHEgfk$3MoyON3889#xKgMWRg+==&$3W_?5)F+m~gomZu zZ6dFJAM8`~;C5J+e}%3hkpyT66e6f;S46?Y9Jz!$$af>u@1mc@^l z^gDz9db$D$FmD3=2L{FT5Gj&9H*(PNm%Gme#?{c?*k7OKIn3U?q9MKqzYYXZ+aow(9Z8((cM)_F9f z`soJw*1%1YS)!iwCUJcgS|iJ=JwHT)rO%Z|3K0(*1t{@yBE^J6?A-=g1@jlVe7w>8 z`l&SdNa6Kr2_VS6iWojjv zs}Q+V?6gKBd+w-9Fb;SlhhlglIZ>Y7>+b`2<3!5G1?h)I+jIv-pYq?q#=F&aE>LZQ z?;hj7F|{CUst7-))KNASHAaM`qaW_)C)vB1e(;@taL=}O=0CAe0IVGVi>2GCsrS!4 z@*4aBmTf~bA2R@J={o+B_PqgH!hDJ(jh@3zwGF-?&jzr-=gGlvElLcraziY_qd%}R zm+m}|26gr-tG6F7Unv-m|7BOu{9tg4r3It}JAXogc2AWuzx#$*?dS+`M*vn}*D7V> z&WMIB<;wWgKDm!KfF*x{V)U#o%Uo$Yx02_GZv6_#!k!JBOhPdU2ybhVU27mN0G?XVY0U@CV&L{gOEX%wAJA+aaIf8dh?6>F!X{iVaJzl6iblFDMWjvpK8d+CF8Ul7y)JzA9AfQP}i4CzOg5g zKXL4VLU>dNzwcND7%ZbSy$JChD~7uU1d&zW>#Fy8imnB+$${A< zXGpO0RRq?SI+~?36yv!bsiJAfEf%;P9!sXC>786`lLQ8y*jb`2bOBiM?kKo^vxhma zZIXDZahrT)0IWdBs&YbPQ(DvOF+G2@>i=kS9A#<~h6jn%k~C?stW_5r!KXBlcHErSpk#s*G!LhgLaY>n3xo_1>8&slw9ZT2Fi&=AXT5A@ahEIm`QX zi=_x)?Z+zP(sYwZ%VA|qw!@)?Z396@WZ|h_I?|rK=s@n48k^^D3Iy4-S{fN7Fs86A z+lWd(qU>gu2M>YTMwp|Q?OvTWkBiba^DUr*FD2^BS_@^1Q?&x5sj@tu(jmgq={Qaz zQxD`msnDWXH!bqC~R(Sv-*u*?4^oQA$uVx6!4kZ7@ zh2@FNA;XP{onq1oU^$IestlrE%{`(X7*rjSi(vt(OE9bgbbVKI9zG=>A9YcGvo% z|FCG%xNfSMLA{qxi%IrAP=0u53*0!7LTHXxb92$QZ+0|7ogc=QGjQXC4|mo=PB{r~ zhrQ_9Mgqc3@#2Z+^<^Y`QT6Q>CJt|~k}3H5_8leb*R6t3M^$S@3go2{I9U1^MF+Ot zwAY&wTY|eLJhm@_3UAU2Pgq9x@*(`9RZ}aqFG#v7Q2) zJ)=uz%2+0y%ZblU3E$n9;azn|v^HLsosW}^M*>4K(6*^jHX72MqrJ0t_bEEGE5R}C zs$ke~vXwX|q%3ps8+Oj^Y_72csXaAPRgHJz%b+avrv&fsm>kko9WVN#SF9I$f}+q6oQJe#_3JC{!*HY(JYoXSr<&8Thk);Pyxzs^Lp{isIYX&m0{8Q&{*%idqm38 zubcU9vA_g5hx~?25o)PZZCehmM$Z|lqFh;R~O(drigP4tm&48c|8J#M#1fV z?(^)rHh5UNz3d8SFraXmvID+H)4Hg)LaTt&Sq?e+)jiiEAp>=H7V82lv zP@9s(A(-LT8yZDKo&pa`cbmy&N7e~@`F$BntaQGd=@yFu@K#8ThsBQkU*3SG!I?xj zU+q}{>zrW+RbK=b*P5kdW>xfK7#Dygk>%8>IAN_>DbY5SV9GiOH36GefflTB8cMkc|`@M!jk=5Weexa1^;2e@dH@+ z+<_Dvq}&um=>$@&0ik;Ne5`|GrB0vPk0jEp5*=vx=+WwA>I)=r8Y!Z_((|Z5X~12! zRPMZ>b&Np_uAR|D?k6E)qLBH^$Ob9$O@z?cajgEI;F#zBD15%YF1CN~oF)SGrho=X z)+QV$+yN8)^-EfgTP$K=wtGmJ-eC>gFP}pqjFKr|*4YKHcrm&@>FK1tBQ5M(M`TBh zg9ET)tF>P$H2k^x(VVm6<`OyyH33UCXLEJZwfmTn9=c40>=e#-n${%ZJogkMm+K26 z^=&iMb4+mG0rmEMZlq9sjG1{RIwCRNN z>%i#3lgV7OpU*d41Hp0hwdt4YgsjnqH5UH)A;L$uvkmqOO+dc@-g#yrA?lozo>B2` zi2V=oWELKH=h^IOeq)gT`KI4j$cb4fwandq0RiY2fE9b)Vx(1JkmOdS zmWqL^*5R(0@z~odhdVEzLH(*mf+e17&trRfLelYCpX(M2?EYL>EakiAa21h0pGZAG z{Hp#SM(&fLNkdq4~|W4{=h+DlAT8wDs>kIq5f|K6-#h?(lKF z*F^q{BQ}Ud^TYKcRd@kzVZW5s&M9*wEPe9wkh7COI_QTxMA7zIU*aDYoG7ri+RRel z^bb!U+U?54jv+T{sUEq9vkJhSXm2{;M%&Akwy&toH*$<2Wash{KAR+Ofzr$Xzw34H zH~mA3o=0s}ejmS8vf!Hj6{2-!;?aFcRYbybuqp?RPoY@)WOglr)_Gs#{2V6WA9#dZ%_cNVPrgsn{RXuT%#j z1N%acn+&b^B`0eiJ>pT%SMFh`37APX9c4Vmh^@O<`gWij{^dB}Gu(l}3Xb{v)ocd` zd&iSKD#)<(1+R*ct@JjvzZM4aXMa4bZn3~j)5!H6Uj2n{!g4M`4@2)2`XGQclT4D! z&JozKgCHu)v2zk63Se2Wg*%9KudY3|R)^?RdHhELMUJz+}0K(U>Fkv;*_b0YOl2XfmIo^CL6ryKGiF`s3kwizNnlE5xeca-AT*m_w79 z=ZAB&&LV(SAI5Y^6h~K8MDpbjmxCz~8^D4W`@)U%LVDfFcVgemweZGUU@0d+Fe8CD zQxg}8hKE<&Mg|Xl6i4}5Qe-NkV?()^`Hut22r?}FQ_rUd-;7->%1^}k-LLh@{s+P> Bsr>)| literal 0 HcmV?d00001 diff --git a/chacha20poly1305/tests/data/wycheproof_xchacha20poly1305.blb b/chacha20poly1305/tests/data/wycheproof_xchacha20poly1305.blb deleted file mode 100644 index cf0a2646feff9132758229a52f1419aba6143482..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39296 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 literal 0 HcmV?d00001 diff --git a/chacha20poly1305/tests/data/wycheproof_xchacha20poly1305_pass.blb b/chacha20poly1305/tests/data/wycheproof_xchacha20poly1305_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..8d1137c8b2309f577164d6ec602d3ca2dfb8f1ae GIT binary patch literal 36716 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 VSRvNfjI6;E(RuzR-35OA{{U`8?vwxk literal 0 HcmV?d00001 diff --git a/chacha20poly1305/tests/lib.rs b/chacha20poly1305/tests/lib.rs index 0abd82c1..98d4184c 100644 --- a/chacha20poly1305/tests/lib.rs +++ b/chacha20poly1305/tests/lib.rs @@ -6,14 +6,24 @@ use chacha20poly1305::ChaCha20Poly1305; use chacha20poly1305::XChaCha20Poly1305; // Test vectors from Wycheproof -aead::new_test!( - wycheproof_chacha20poly1305, - "wycheproof_chacha20poly1305", +aead::new_pass_test!( + wycheproof_chacha20poly1305_pass, + "wycheproof_chacha20poly1305_pass", ChaCha20Poly1305 ); -aead::new_test!( - wycheproof_xchacha20poly1305, - "wycheproof_xchacha20poly1305", +aead::new_fail_test!( + wycheproof_chacha20poly1305_fail, + "wycheproof_chacha20poly1305_fail", + ChaCha20Poly1305 +); +aead::new_pass_test!( + wycheproof_xchacha20poly1305_pass, + "wycheproof_xchacha20poly1305_pass", + XChaCha20Poly1305 +); +aead::new_fail_test!( + wycheproof_xchacha20poly1305_fail, + "wycheproof_xchacha20poly1305_fail", XChaCha20Poly1305 ); diff --git a/eax/tests/aes128eax.rs b/eax/tests/aes128eax.rs index 656648ae..1e871731 100644 --- a/eax/tests/aes128eax.rs +++ b/eax/tests/aes128eax.rs @@ -5,4 +5,5 @@ use aes::Aes128; use eax::Eax; -aead::new_test!(aes128eax, "aes128eax", Eax); +aead::new_pass_test!(aes128eax_pass, "aes128eax_pass", Eax); +aead::new_fail_test!(aes128eax_fail, "aes128eax_fail", Eax); diff --git a/eax/tests/data/aes128eax.blb b/eax/tests/data/aes128eax.blb deleted file mode 100644 index 3e1a3dec6abd597807e6daf0f3a6752237ad116d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 832 zcmV-G1Hb${0RaIZBRNvuzlvk+_hkx$Tm zu4@1w;5UN~gNgEc0$MF)C+D330U(i-T|Z6B?hEu@^&(a9m82lP%J4(5qCJE$l)9HJ zX5PIJ`aAtd2J2J$1o!(S8Qok=lQ9IH3)-+JbO`o&XXODP0ryJQKzH)z1iKHMY=L00q0jD+PxVMOV_oApN$mW_Iq}Tw&Kj zcH#Kw77(tvZmzy5aOn&{(7=7Amnd-tXz`^Esli~_fV5wM%o(?)JQEHr;W}J7)|4|TtC1$BwNw@eK><# zwDDbZJ~a+Dgm)9Z{ZB3g0E5}us zCJ?|*|T0U)HLcq`BSKE>znZHzRfVIv^7f&B9KU!|ztm#NA~09g8m%RZC$7ZU-AR_0j**yGXlf{0(v%!69L=X~ZHT=UM(poCY zK-WZWRA2h-JJBk13T2=ByFBW*O3R5L_}#~ diff --git a/eax/tests/data/aes128eax_fail.blb b/eax/tests/data/aes128eax_fail.blb new file mode 100644 index 0000000000000000000000000000000000000000..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 JcmZQz0000200961 literal 0 HcmV?d00001 diff --git a/eax/tests/data/aes128eax_pass.blb b/eax/tests/data/aes128eax_pass.blb new file mode 100644 index 0000000000000000000000000000000000000000..3fa2d031ac17efe1a3be06454c248fac0b1a967d GIT binary patch literal 820 zcmV-41Izp}03ahdQr_g%?O&UmZEyGw^mrg*>}UDIq@)M@vZ%z6F{rZ;Yx|K;(0;CK z03hHugARj<@_PbWEoCR?odF<`lwChf%kB&GUiBhX@Rg(>zRK`Ju%bPLF_gNOEN0%l z5c)g)NCxXu`ULm;BpKaYOp`GLoeSEqCv*t*d1vJy0ryJQKzH)z1ic91;oeD@Co;k59V=A2! z8q~pPq#|98ANN(0nRKVV-XJx$&{zNkyTL03hZ03s(!wD9wy za)cDCxMWY(%(!Vs#o+~zAqr0*e0SF96Ta1~n7X7FM|v)OAR3IA+}AxgIXf%yR-Nwr z84zXC0eO(tB`6|`3VASWoagPC+T{3ujn)=6LIMarIeFRvND}p*5!EIz+AtGyC(#B; zu&Qnx7#+43*YY4={~*fxu^GxQ$2Cdf4_gf&-Q}B?*CG{dO`88J$5ogn5LCJFPHG7l znj{YQlHDyU%1GrR>=22X7g(289eyNi^JgH3 zD}@vG>anP#L^##&5kw8)kI?@tGF@AcK|s z@#$OZ)|b5j3&&=v!yqE(t=T;MW0S>xz_Y=9YeWzdXEpr8AktbY%0SmdZd70T?K{yb ybP8pk`@1~qw@S;2AozN0bd4_y0e!cHW(%L0l&V<(@I3s9@ygHpo!e zoLZfq7!|I%cfsW?udP&TW_|qe!GIH0B@;J;LL*~+6Z3~g^}?WE_cFb>7*JI(GjJQY z-p%~+b=7kf5mujzpJSWKxOFb@>d)N25>+J&GqXduY;bhKrgDkyry_*~D;MclU0?Fw z!gR;c0vVZeC;k{mpz2^{W>Dz)p15s--uDzYts5ybPGwI=Rl&x<>=5&!@6dxxb+(nF z2e@8$D^L5vCsSe{z@a=FoCmHl%TJaK( zg-R!Nl2il&zZQpG|9p~r!-INMogADD3b}_=7Zm=Ho?nys)0$sS;2x?9P6o~ZCFu+I z>X-eSX?Ny&rW+U6r)y{5@>oX8*gRMLtTJWiPmvoj+;W?n!~dh|<98OGrXq zYziGY>9ax*3olq&Hu5>D~QDE9wHao(X*yP<@)i X&wbYAgF+)?eG~JCM)ks=U-vS-xEN3rFf(u(xZchD z@paX66%kgSi=Shg%D8nd@aoUpzY;|u3nQaLxNLBA!lrVG?x!M!1uGZnSY2Q8-@q$=*#l%2DHL;@s9|Ie6Y%YDI42qOVOsGLkA+Gn zb&^yB0>2iAUH^QNd&7fz6pbA03<|l2R2LNfk)B_Z`O}(TPT(Gj0!{|@043=Q_v)AZ zn`w9EdZrr}*QaY|-||>S%h)_u{j4%&=TDIvG2C*So5TO3XyjsLP1u{CN^Wl;Fnkjee7 z%Oh6svu5g^xmrdj3V0Y;6EvOnA1~g!$Y%AiHGgOSjWFG7z|UD+srMzp;i$cc(VqKT zAKrbuM`Gy@hpl?4CN5X+qZq);%v^Bw)Wnh&frF*;KNfwHP>s%5uuzZF{!2(gUgXb% z7w#VQPJNNo7uLPD>Mi>&wk6A^G%sfknQ*jhUIL0ie9R0AN6*fc2sr5YI3i`{ly?Qv z87K<)8JG)PgeI9xK3W_5;5x(i;4=>{Ub-2OAfz{6bm`swM=RWPH*;7~cEd9*DEm8>pI{Qf? literal 0 HcmV?d00001 diff --git a/ocb3/tests/kats.rs b/ocb3/tests/kats.rs index 1b30c726..1b4355d2 100644 --- a/ocb3/tests/kats.rs +++ b/ocb3/tests/kats.rs @@ -9,7 +9,8 @@ use hex_literal::hex; use ocb3::{Array, Ocb3}; // Test vectors from https://www.rfc-editor.org/rfc/rfc7253.html#appendix-A -aead::new_test!(rfc7253_ocb_aes, "rfc7253_ocb_aes", Aes128Ocb3); +aead::new_pass_test!(rfc7253_ocb_aes_pass, "rfc7253_ocb_aes_pass", Aes128Ocb3); +aead::new_fail_test!(rfc7253_ocb_aes_fail, "rfc7253_ocb_aes_fail", Aes128Ocb3); fn num2str96(num: usize) -> [u8; 12] { let num: u32 = num.try_into().unwrap();