diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..5cde165 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,7 @@ +version: 2 +updates: +- package-ecosystem: cargo + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 10 diff --git a/.github/workflows/aes-gcm.yml b/.github/workflows/aes-gcm.yml new file mode 100644 index 0000000..1421691 --- /dev/null +++ b/.github/workflows/aes-gcm.yml @@ -0,0 +1,131 @@ +name: aes-gcm + +on: + pull_request: + paths: + - "**" + push: + branches: master + +defaults: + run: + working-directory: aes-gcm + +env: + CARGO_INCREMENTAL: 0 + RUSTFLAGS: "-Dwarnings" + +jobs: + rustfmt: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + components: rustfmt + override: true + profile: minimal + - uses: actions-rs/cargo@v1 + with: + command: fmt + args: --all -- --check + + clippy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions-rs/toolchain@v1 + with: + toolchain: 1.51.0 # MSRV (highest in repo) + components: clippy + override: true + profile: minimal + - run: cargo clippy --all --exclude crypto_box --all-features -- -D warnings + + codecov: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + - uses: actions-rs/tarpaulin@v0.1 + with: + version: latest + args: --all -- --test-threads 1 + - uses: codecov/codecov-action@v1 + - uses: actions/upload-artifact@v1 + with: + name: code-coverage-report + path: cobertura.xml + + build: + runs-on: ubuntu-latest + strategy: + matrix: + rust: + - 1.49.0 # MSRV + - stable + target: + - armv7a-none-eabi + - thumbv7em-none-eabi + - wasm32-unknown-unknown + steps: + - uses: actions/checkout@v1 + - uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ matrix.rust }} + target: ${{ matrix.target }} + override: true + profile: minimal + - run: cargo build --no-default-features --release --target ${{ matrix.target }} + + test: + runs-on: ubuntu-latest + strategy: + matrix: + include: + # 32-bit Linux + - target: i686-unknown-linux-gnu + rust: 1.49.0 # MSRV + deps: sudo apt update && sudo apt install gcc-multilib + - target: i686-unknown-linux-gnu + rust: stable + deps: sudo apt update && sudo apt install gcc-multilib + + # 64-bit Linux + - target: x86_64-unknown-linux-gnu + rust: 1.49.0 # MSRV + - target: x86_64-unknown-linux-gnu + rust: stable + steps: + - uses: actions/checkout@v1 + - uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ matrix.rust }} + target: ${{ matrix.target }} + override: true + profile: minimal + - run: ${{ matrix.deps }} + - run: cargo test --target ${{ matrix.target }} --release + - run: cargo test --target ${{ matrix.target }} --release --features stream,std,zeroize + - run: cargo build --target ${{ matrix.target }} --benches + + # TODO(tarcieri): re-unify this with `test` when MSRV is 1.51+ + heapless: + runs-on: ubuntu-latest + strategy: + matrix: + rust: + - 1.51.0 # MSRV for `heapless` + - stable + steps: + - uses: actions/checkout@v1 + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.rust }} + override: true + - run: cargo test --release --all-features diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..d876929 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,129 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## 0.9.2 (2021-05-31) +### Added +- Nightly-only `armv8` feature ([#318]) + +[#318]: https://github.com/RustCrypto/AEADs/pull/318 + +## 0.9.1 (2021-05-04) +### Added +- `force-soft` feature ([#305]) + +[#305]: https://github.com/RustCrypto/AEADs/pull/305 + +## 0.9.0 (2021-04-29) +### Added +- Wycheproof test vectors ([#274]) + +### Changed +- Bump `aead` crate dependency to v0.4 ([#270]) +- Bump `aes` crate dependency to v0.7; MSRV 1.49+ ([#283]) +- Bump `ctr` crate dependency to v0.7 ([#283]) +- Bump `ghash` crate dependency to v0.4 ([#284]) + +[#270]: https://github.com/RustCrypto/AEADs/pull/270 +[#274]: https://github.com/RustCrypto/AEADs/pull/274 +[#283]: https://github.com/RustCrypto/AEADs/pull/283 +[#284]: https://github.com/RustCrypto/AEADs/pull/284 + +## 0.8.0 (2020-10-16) +### Changed +- Replace `block-cipher`/`stream-cipher` with `cipher` crate ([#229]) +- Bump `aes` dependency to v0.6 ([#229]) +- Use `ctr::Ctr32BE` ([#227]) + +[#229]: https://github.com/RustCrypto/AEADs/pull/229 +[#227]: https://github.com/RustCrypto/AEADs/pull/227 + +## 0.7.0 (2020-09-17) +### Added +- Optional `std` feature; disabled by default ([#217]) + +### Changed +- Renamed generic parameters to `Aes` and `NonceSize` ([#166]) +- Upgrade `aes` to v0.5; `block-cipher` to v0.8 ([#209]) + +[#217]: https://github.com/RustCrypto/AEADs/pull/217 +[#209]: https://github.com/RustCrypto/AEADs/pull/209 +[#166]: https://github.com/RustCrypto/AEADs/pull/166 + +## 0.6.0 (2020-06-06) +### Changed +- Bump `aead` crate dependency to v0.3.0; MSRV 1.41+ ([#140]) + +[#140]: https://github.com/RustCrypto/AEADs/pull/140 + +## 0.5.0 (2020-03-15) +### Added +- Support for non-96-bit nonces ([#126]) + +### Changed +- `AesGcm` type is now generic around nonce size ([#126]) + +[#126]: https://github.com/RustCrypto/AEADs/pull/126 + +## 0.4.2 (2020-03-09) +### Fixed +- Off-by-one error in `debug_assert` for `BlockCipher::ParBlocks` ([#104]) + +[#104]: https://github.com/RustCrypto/AEADs/pull/104 + +## 0.4.1 (2020-03-07) - YANKED, see [#104] +### Added +- Support instantiation from an existing cipher instance ([#101]) + +[#101]: https://github.com/RustCrypto/AEADs/pull/101 + +## 0.4.0 (2020-03-07) - YANKED, see [#104] +### Added +- `aes` cargo feature; 3rd-party AES crate support ([#96]) + +### Changed +- Make generic around `BlockCipher::ParBlocks` ([#97]) + +[#96]: https://github.com/RustCrypto/AEADs/pull/96 +[#97]: https://github.com/RustCrypto/AEADs/pull/97 + +## 0.3.2 (2020-02-27) +### Fixed +- Wording in documentation about security audit ([#84]) + +[#84]: https://github.com/RustCrypto/AEADs/pull/84 + +## 0.3.1 (2020-02-26) +### Added +- Notes about NCC audit to documentation ([#80]) + +[#80]: https://github.com/RustCrypto/AEADs/pull/80 + +## 0.3.0 (2019-11-26) +### Added +- `heapless` feature ([#51]) + +[#51]: https://github.com/RustCrypto/AEADs/pull/51 + +## 0.2.1 (2019-11-26) +### Added +- Document in-place API ([#49]) + +[#49]: https://github.com/RustCrypto/AEADs/pull/49 + +## 0.2.0 (2019-11-26) +### Changed +- Upgrade `aead` crate to v0.2; `alloc` now optional ([#43]) + +[#43]: https://github.com/RustCrypto/AEADs/pull/43 + +## 0.1.1 (2019-11-14) +### Changed +- Upgrade `zeroize` to 1.0 ([#36]) + +[#36]: https://github.com/RustCrypto/AEADs/pull/36 + +## 0.1.0 (2019-10-06) +- Initial release diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..f620af6 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,320 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aead" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "922b33332f54fc0ad13fa3e514601e8d30fb54e1f3eadc36643f6526db645621" +dependencies = [ + "blobby", + "generic-array", + "heapless", +] + +[[package]] +name = "aes" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2333ac5777aaa1beb8589f5374976ae7dc8aa4f09fd21ae3d8662ca97f5247d" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", + "opaque-debug", +] + +[[package]] +name = "atomic-polyfill" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30302dda7a66f8c55932ebf208f7def840743ff64d495e9ceffcd97c18f11d39" +dependencies = [ + "cortex-m", +] + +[[package]] +name = "bare-metal" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5deb64efa5bd81e31fcd1938615a6d98c82eafcbcd787162b6f63b91d6bac5b3" +dependencies = [ + "rustc_version", +] + +[[package]] +name = "bitfield" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719" + +[[package]] +name = "blobby" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc52553543ecb104069b0ff9e0fcc5c739ad16202935528a112d974e8f1a4ee8" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cipher" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +dependencies = [ + "generic-array", +] + +[[package]] +name = "cortex-m" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643a210c1bdc23d0db511e2a576082f4ff4dcae9d0c37f50b431b8f8439d6d6b" +dependencies = [ + "bare-metal", + "bitfield", + "embedded-hal", + "volatile-register", +] + +[[package]] +name = "cpufeatures" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed00c67cb5d0a7d64a44f6ad2668db7e7530311dd53ea79bcd4fb022c64911c8" +dependencies = [ + "libc", +] + +[[package]] +name = "ctr" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a232f92a03f37dd7d7dd2adc67166c77e9cd88de5b019b9a9eecfaeaf7bfd481" +dependencies = [ + "cipher", +] + +[[package]] +name = "embedded-hal" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db184d3fa27bc7a2344250394c0264144dfe0bc81a4401801dcb964b8dd172ad" +dependencies = [ + "nb 0.1.3", + "void", +] + +[[package]] +name = "generic-array" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "ghash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bbd60caa311237d508927dbba7594b483db3ef05faa55172fcf89b1bcda7853" +dependencies = [ + "opaque-debug", + "polyval", +] + +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + +[[package]] +name = "heapless" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7ee8a997d259962217f40279f34201fdf06e669bafa69d7c1f4c7ff1893b5f6" +dependencies = [ + "atomic-polyfill", + "hash32", + "stable_deref_trait", +] + +[[package]] +name = "hex-literal" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "961de220ec9a91af2e1e5bd80d02109155695e516771762381ef8581317066e0" +dependencies = [ + "hex-literal-impl", + "proc-macro-hack", +] + +[[package]] +name = "hex-literal-impl" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "853f769599eb31de176303197b7ba4973299c38c7a7604a6bc88c3eef05b9b46" +dependencies = [ + "proc-macro-hack", +] + +[[package]] +name = "libc" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "789da6d93f1b866ffe175afc5322a4d76c038605a1c3319bb57b06967ca98a36" + +[[package]] +name = "mc-oblivious-aes-gcm" +version = "0.9.2" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "hex-literal", + "subtle", + "zeroize", +] + +[[package]] +name = "nb" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f" +dependencies = [ + "nb 1.0.0", +] + +[[package]] +name = "nb" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "546c37ac5d9e56f55e73b677106873d9d9f5190605e41a856503623648488cae" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "polyval" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e597450cbf209787f0e6de80bf3795c6b2356a380ee87837b545aded8dbc1823" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver", +] + +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[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.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2" + +[[package]] +name = "typenum" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06" + +[[package]] +name = "universal-hash" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" +dependencies = [ + "generic-array", + "subtle", +] + +[[package]] +name = "vcell" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77439c1b53d2303b20d9459b1ade71a83c716e3f9c34f3228c00e6f185d6c002" + +[[package]] +name = "version_check" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[package]] +name = "volatile-register" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d67cb4616d99b940db1d6bd28844ff97108b498a6ca850e5b6191a532063286" +dependencies = [ + "vcell", +] + +[[package]] +name = "zeroize" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..e898bde --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,43 @@ +[package] +name = "mc-oblivious-aes-gcm" +version = "0.9.2" +description = """ +WARNING: This crate is not intended for general use, you should use the official RustCrypto crate instead. + +Fork of RustCrypto's AES-GCM to provide a public CTR member, for use in a constant-time decrypt-in-place method. +""" +authors = [ + "MobileCoin", + "RustCrypto Developers" +] +edition = "2018" +license = "Apache-2.0 OR MIT" +readme = "README.md" +documentation = "https://docs.rs/mc-oblivious-aes-gcm" +repository = "https://github.com/mobilecoinfoundation/oblivious-aes-gcm" + +[dependencies] +aead = { version = "0.4", default-features = false } +aes = { version = "0.7.2", optional = true } +cipher = "0.3" +ctr = "0.7" +ghash = { version = "0.4.2", default-features = false } +subtle = { version = "2", default-features = false } +zeroize = { version = "1", optional = true, default-features = false } + +[dev-dependencies] +aead = { version = "0.4", features = ["dev"], default-features = false } +hex-literal = "0.2" + +[features] +default = ["aes", "alloc"] +std = ["aead/std", "alloc"] +alloc = ["aead/alloc"] +armv8 = ["aes/armv8", "ghash/armv8"] # nightly-only +force-soft = ["aes/force-soft", "ghash/force-soft"] +heapless = ["aead/heapless"] +stream = ["aead/stream"] + +[package.metadata.docs.rs] +all-features = true +rustdoc-args = ["--cfg", "docsrs"] diff --git a/LICENSE-APACHE b/LICENSE-APACHE new file mode 100644 index 0000000..78173fa --- /dev/null +++ b/LICENSE-APACHE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/LICENSE-MIT b/LICENSE-MIT new file mode 100644 index 0000000..b7f5711 --- /dev/null +++ b/LICENSE-MIT @@ -0,0 +1,25 @@ +Copyright (c) 2019 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..a74bdfc --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# MobileCoin: Oblivious AES-GCM + +WARNING: You should use RustCrypt [`aes-gcm`](https://github.com/RustCrypto/AEADs) crate, not this one. This crate is a fork of the execellent RustCrypto crate which intentionally removes key safety features of the RustCrypto implementation in order to support a niche use-case for MobileCoin. + +This crate is a fork of the RustCrypto crate made in order to introduce a constant-time decrypt-in-place method which can be made part of a larger constant-time execution. This comes at the cost of offloading enforcement of some the "toxic waste cleanup" typically contained with an AES-GCM implementation to the caller (i.e. the larger constant-time execution). + +This is necessary when the caller is running inside an trusted execution environment and requires decryption to be completely oblivious. Meaning, when the caller requires branchless, constant-time execution regardless of authentication and decryption success or failure. diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..1a03cf6 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,343 @@ +//! AES-GCM: [Authenticated Encryption and Associated Data (AEAD)][1] cipher +//! based on AES in [Galois/Counter Mode][2]. +//! +//! ## Performance Notes +//! +//! By default this crate will use software implementations of both AES and +//! the POLYVAL universal hash function. +//! +//! When targeting modern x86/x86_64 CPUs, use the following `RUSTFLAGS` to +//! take advantage of high performance AES-NI and CLMUL CPU intrinsics: +//! +//! ```text +//! RUSTFLAGS="-Ctarget-cpu=sandybridge -Ctarget-feature=+aes,+sse2,+sse4.1,+ssse3" +//! ``` +//! +//! ## Security Notes +//! +//! This crate has received one [security audit by NCC Group][3], with no significant +//! findings. We would like to thank [MobileCoin][4] for funding the audit. +//! +//! All implementations contained in the crate are designed to execute in constant +//! time, either by relying on hardware intrinsics (i.e. AES-NI and CLMUL on +//! x86/x86_64), or using a portable implementation which is only constant time +//! on processors which implement constant-time multiplication. +//! +//! It is not suitable for use on processors with a variable-time multiplication +//! operation (e.g. short circuit on multiply-by-zero / multiply-by-one, such as +//! certain 32-bit PowerPC CPUs and some non-ARM microcontrollers). +//! +//! # Usage +//! +//! Simple usage (allocating, no associated data): +//! +//! ``` +//! use aes_gcm::{Aes256Gcm, Key, Nonce}; // Or `Aes128Gcm` +//! use aes_gcm::aead::{Aead, NewAead}; +//! +//! let key = Key::from_slice(b"an example very very secret key."); +//! let cipher = Aes256Gcm::new(key); +//! +//! let nonce = Nonce::from_slice(b"unique nonce"); // 96-bits; unique per message +//! +//! let ciphertext = cipher.encrypt(nonce, b"plaintext message".as_ref()) +//! .expect("encryption failure!"); // NOTE: handle this error to avoid panics! +//! +//! let plaintext = cipher.decrypt(nonce, ciphertext.as_ref()) +//! .expect("decryption failure!"); // NOTE: handle this error to avoid panics! +//! +//! assert_eq!(&plaintext, b"plaintext message"); +//! ``` +//! +//! ## In-place Usage (eliminates `alloc` requirement) +//! +//! This crate has an optional `alloc` feature which can be disabled in e.g. +//! microcontroller environments that don't have a heap. +//! +//! The [`AeadInPlace::encrypt_in_place`] and [`AeadInPlace::decrypt_in_place`] +//! 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 +//! and decrypt methods: +//! +//! ``` +//! # #[cfg(feature = "heapless")] +//! # { +//! use aes_gcm::{Aes256Gcm, Key, Nonce}; // Or `Aes128Gcm` +//! use aes_gcm::aead::{AeadInPlace, NewAead}; +//! use aes_gcm::aead::heapless::Vec; +//! +//! let key = Key::from_slice(b"an example very very secret key."); +//! let cipher = Aes256Gcm::new(key); +//! +//! let nonce = Nonce::from_slice(b"unique nonce"); // 96-bits; unique per message +//! +//! let mut buffer: Vec = Vec::new(); // Buffer needs 16-bytes overhead for GCM 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).expect("encryption failure!"); +//! +//! // `buffer` now contains the message ciphertext +//! assert_ne!(&buffer, 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"); +//! # } +//! ``` +//! +//! [1]: https://en.wikipedia.org/wiki/Authenticated_encryption +//! [2]: https://en.wikipedia.org/wiki/Galois/Counter_Mode +//! [3]: https://research.nccgroup.com/2020/02/26/public-report-rustcrypto-aes-gcm-and-chacha20poly1305-implementation-review/ +//! [4]: https://www.mobilecoin.com/ + +#![no_std] +#![cfg_attr(docsrs, feature(doc_cfg))] +#![doc( + html_logo_url = "https://raw.githubusercontent.com/RustCrypto/meta/master/logo.svg", + html_favicon_url = "https://raw.githubusercontent.com/RustCrypto/meta/master/logo.svg" +)] +#![deny(unsafe_code)] +#![warn(missing_docs, rust_2018_idioms)] + +pub use aead::{self, AeadCore, AeadInPlace, Error, NewAead}; + +#[cfg(feature = "aes")] +pub use aes; + +use cipher::{ + consts::{U0, U16}, + generic_array::{typenum::Unsigned, ArrayLength, GenericArray}, + Block, BlockCipher, BlockCipherKey, BlockEncrypt, FromBlockCipher, NewBlockCipher, + StreamCipher, StreamCipherSeek, +}; +use core::marker::PhantomData; +use ctr::Ctr32BE; +use ghash::{ + universal_hash::{NewUniversalHash, UniversalHash}, + GHash, +}; + +#[cfg(feature = "zeroize")] +use zeroize::Zeroize; + +#[cfg(feature = "aes")] +use aes::{cipher::consts::U12, Aes128, Aes256}; + +/// Maximum length of associated data +pub const A_MAX: u64 = 1 << 36; + +/// Maximum length of plaintext +pub const P_MAX: u64 = 1 << 36; + +/// Maximum length of ciphertext +pub const C_MAX: u64 = (1 << 36) + 16; + +/// AES-GCM keys +pub type Key = GenericArray; + +/// AES-GCM nonces +pub type Nonce = GenericArray; + +/// AES-GCM tags +pub type Tag = GenericArray; + +/// AES-GCM with a 128-bit key and 96-bit nonce +#[cfg(feature = "aes")] +#[cfg_attr(docsrs, doc(cfg(feature = "aes")))] +pub type Aes128Gcm = AesGcm; + +/// AES-GCM with a 256-bit key and 96-bit nonce +#[cfg(feature = "aes")] +#[cfg_attr(docsrs, doc(cfg(feature = "aes")))] +pub type Aes256Gcm = AesGcm; + +/// AES-GCM: generic over an underlying AES implementation and nonce size. +/// +/// This type is generic to support substituting alternative AES implementations +/// (e.g. embedded hardware implementations) +/// +/// It is NOT intended to be instantiated with any block cipher besides AES! +/// Doing so runs the risk of unintended cryptographic properties! +/// +/// The `N` generic parameter can be used to instantiate AES-GCM with other +/// nonce sizes, however it's recommended to use it with `typenum::U12`, +/// the default of 96-bits. +/// +/// If in doubt, use the built-in [`Aes128Gcm`] and [`Aes256Gcm`] type aliases. +#[derive(Clone)] +pub struct AesGcm +where + Aes: BlockCipher + BlockEncrypt, + Aes::ParBlocks: ArrayLength>, + NonceSize: ArrayLength, +{ + /// Encryption cipher + cipher: Aes, + + /// GHASH authenticator + ghash: GHash, + + /// Length of the nonce + nonce_size: PhantomData, +} + +impl NewAead for AesGcm +where + Aes: NewBlockCipher + BlockCipher + BlockEncrypt, + Aes::ParBlocks: ArrayLength>, + NonceSize: ArrayLength, +{ + type KeySize = Aes::KeySize; + + fn new(key: &BlockCipherKey) -> Self { + Aes::new(key).into() + } +} + +impl From for AesGcm +where + Aes: NewBlockCipher + BlockCipher + BlockEncrypt, + Aes::ParBlocks: ArrayLength>, + NonceSize: ArrayLength, +{ + fn from(cipher: Aes) -> Self { + let mut ghash_key = ghash::Key::default(); + cipher.encrypt_block(&mut ghash_key); + + let ghash = GHash::new(&ghash_key); + + #[cfg(feature = "zeroize")] + ghash_key.zeroize(); + + Self { + cipher, + ghash, + nonce_size: PhantomData, + } + } +} + +impl AeadCore for AesGcm +where + Aes: NewBlockCipher + BlockCipher + BlockEncrypt, + Aes::ParBlocks: ArrayLength>, + NonceSize: ArrayLength, +{ + type NonceSize = NonceSize; + type TagSize = U16; + type CiphertextOverhead = U0; +} + +impl AeadInPlace for AesGcm +where + Aes: NewBlockCipher + BlockCipher + BlockEncrypt, + Aes::ParBlocks: ArrayLength>, + NonceSize: ArrayLength, +{ + fn encrypt_in_place_detached( + &self, + nonce: &Nonce, + associated_data: &[u8], + buffer: &mut [u8], + ) -> Result { + if buffer.len() as u64 > P_MAX || associated_data.len() as u64 > A_MAX { + return Err(Error); + } + + // TODO(tarcieri): interleave encryption with GHASH + // See: + let mut ctr = self.init_ctr(nonce); + ctr.seek(Aes::BlockSize::to_usize()); + ctr.apply_keystream(buffer); + + let mut tag = self.compute_tag(associated_data, buffer); + ctr.seek(0); + ctr.apply_keystream(tag.as_mut_slice()); + + Ok(tag) + } + + fn decrypt_in_place_detached( + &self, + nonce: &Nonce, + associated_data: &[u8], + buffer: &mut [u8], + tag: &Tag, + ) -> Result<(), Error> { + if buffer.len() as u64 > C_MAX || associated_data.len() as u64 > A_MAX { + return Err(Error); + } + + // TODO(tarcieri): interleave encryption with GHASH + // See: + let mut expected_tag = self.compute_tag(associated_data, buffer); + let mut ctr = self.init_ctr(nonce); + ctr.apply_keystream(expected_tag.as_mut_slice()); + + use subtle::ConstantTimeEq; + if expected_tag.ct_eq(&tag).unwrap_u8() == 1 { + ctr.apply_keystream(buffer); + Ok(()) + } else { + Err(Error) + } + } +} + +impl AesGcm +where + Aes: NewBlockCipher + BlockCipher + BlockEncrypt, + Aes::ParBlocks: ArrayLength>, + NonceSize: ArrayLength, +{ + /// Initialize counter mode. + /// + /// See algorithm described in Section 7.2 of NIST SP800-38D: + /// + /// + /// > Define a block, J0, as follows: + /// > If len(IV)=96, then J0 = IV || 0{31} || 1. + /// > If len(IV) ≠ 96, then let s = 128 ⎡len(IV)/128⎤-len(IV), and + /// > J0=GHASH(IV||0s+64||[len(IV)]64). + fn init_ctr(&self, nonce: &Nonce) -> Ctr32BE<&Aes> { + let j0 = if NonceSize::to_usize() == 12 { + let mut block = ghash::Block::default(); + block[..12].copy_from_slice(nonce); + block[15] = 1; + block + } else { + let mut ghash = self.ghash.clone(); + ghash.update_padded(nonce); + + let mut block = ghash::Block::default(); + let nonce_bits = (NonceSize::to_usize() as u64) * 8; + block[8..].copy_from_slice(&nonce_bits.to_be_bytes()); + ghash.update(&block); + ghash.finalize().into_bytes() + }; + + Ctr32BE::from_block_cipher(&self.cipher, &j0) + } + + /// Authenticate the given plaintext and associated data using GHASH + fn compute_tag(&self, associated_data: &[u8], buffer: &[u8]) -> Tag { + let mut ghash = self.ghash.clone(); + ghash.update_padded(associated_data); + ghash.update_padded(buffer); + + let associated_data_bits = (associated_data.len() as u64) * 8; + let buffer_bits = (buffer.len() as u64) * 8; + + let mut block = ghash::Block::default(); + block[..8].copy_from_slice(&associated_data_bits.to_be_bytes()); + block[8..].copy_from_slice(&buffer_bits.to_be_bytes()); + ghash.update(&block); + ghash.finalize().into_bytes() + } +} diff --git a/tests/aes128gcm.rs b/tests/aes128gcm.rs new file mode 100644 index 0000000..a8e0cc8 --- /dev/null +++ b/tests/aes128gcm.rs @@ -0,0 +1,3024 @@ +//! AES-128-GCM tests + +#[macro_use] +extern crate hex_literal; + +#[macro_use] +mod common; + +use self::common::TestVector; +use aes_gcm::aead::{generic_array::GenericArray, Aead, NewAead, Payload}; +use aes_gcm::Aes128Gcm; + +/// NIST CAVS vectors +/// +/// +/// +/// From: `gcmEncryptExtIV128.rsp` +const TEST_VECTORS: &[TestVector<[u8; 16]>] = &[ + TestVector { + key: &hex!("11754cd72aec309bf52f7687212e8957"), + nonce: &hex!("3c819d9a9bed087615030b65"), + plaintext: &hex!(""), + aad: &hex!(""), + ciphertext: &hex!(""), + tag: &hex!("250327c674aaf477aef2675748cf6971"), + }, + TestVector { + key: &hex!("ca47248ac0b6f8372a97ac43508308ed"), + nonce: &hex!("ffd2b598feabc9019262d2be"), + plaintext: &hex!(""), + aad: &hex!(""), + ciphertext: &hex!(""), + tag: &hex!("60d20404af527d248d893ae495707d1a"), + }, + TestVector { + key: &hex!("db1ad0bd1cf6db0b5d86efdd8914b218"), + nonce: &hex!("36fad6acb3c98e0138aeb9b1"), + plaintext: &hex!(""), + aad: &hex!(""), + ciphertext: &hex!(""), + tag: &hex!("5ee2ba737d3f2a944b335a81f6653cce"), + }, + TestVector { + key: &hex!("1c7135af627c04c32957f33f9ac08590"), + nonce: &hex!("355c094fa09c8e9281178d34"), + plaintext: &hex!(""), + aad: &hex!(""), + ciphertext: &hex!(""), + tag: &hex!("b6ab2c7d906c9d9ec4c1498d2cbb5029"), + }, + TestVector { + key: &hex!("6ca2c11205a6e55ab504dbf3491f8bdc"), + nonce: &hex!("b1008b650a2fee642175c60d"), + plaintext: &hex!(""), + aad: &hex!(""), + ciphertext: &hex!(""), + tag: &hex!("7a9a225d5f9a0ebfe0e69f371871a672"), + }, + TestVector { + key: &hex!("69f2ca78bb5690acc6587302628828d5"), + nonce: &hex!("701da282cb6b6018dabd00d3"), + plaintext: &hex!(""), + aad: &hex!(""), + ciphertext: &hex!(""), + tag: &hex!("ab1d40dda1798d56687892e2159decfd"), + }, + TestVector { + key: &hex!("dcf4e339c487b6797aaca931725f7bbd"), + nonce: &hex!("2c1d955e35366760ead8817c"), + plaintext: &hex!(""), + aad: &hex!(""), + ciphertext: &hex!(""), + tag: &hex!("32b542c5f344cceceb460a02938d6b0c"), + }, + TestVector { + key: &hex!("7658cdbb81572a23a78ee4596f844ee9"), + nonce: &hex!("1c3baae9b9065961842cbe52"), + plaintext: &hex!(""), + aad: &hex!(""), + ciphertext: &hex!(""), + tag: &hex!("70c7123fc819aa060ed2d3c159b6ea41"), + }, + TestVector { + key: &hex!("281a570b1e8f265ee09303ecae0cc46d"), + nonce: &hex!("8c2941f73cf8713ad5bc13df"), + plaintext: &hex!(""), + aad: &hex!(""), + ciphertext: &hex!(""), + tag: &hex!("a42e5e5f6fb00a9f1206b302edbfd87c"), + }, + TestVector { + key: &hex!("cd332a986f82d98c215278131ad387b7"), + nonce: &hex!("1d12b259f44b873d3942bc11"), + plaintext: &hex!(""), + aad: &hex!(""), + ciphertext: &hex!(""), + tag: &hex!("34238023648185d7ef0cfcf5836e93cc"), + }, + TestVector { + key: &hex!("80e1d98d10b27237386f029189ec0448"), + nonce: &hex!("239ebab2f524fd62c554a190"), + plaintext: &hex!(""), + aad: &hex!(""), + ciphertext: &hex!(""), + tag: &hex!("4c0f29d963f0ed68dccf34496cf43d00"), + }, + TestVector { + key: &hex!("40650cdb61e3e19a1a98fb4e05377d35"), + nonce: &hex!("69f0a81aaf6bb8486282f1b9"), + plaintext: &hex!(""), + aad: &hex!(""), + ciphertext: &hex!(""), + tag: &hex!("2657e12dec21c3ecf071af6179529fb4"), + }, + TestVector { + key: &hex!("1e89a6cd7528cce1e2b2b5f7fd2b6b52"), + nonce: &hex!("e11fd427a782d543f78efc60"), + plaintext: &hex!(""), + aad: &hex!(""), + ciphertext: &hex!(""), + tag: &hex!("eeedff874c8edeea53e8be2a13afd81b"), + }, + TestVector { + key: &hex!("2a7ad6146676057db777dea4683d0d45"), + nonce: &hex!("ed721ea67456d4594aafbd51"), + plaintext: &hex!(""), + aad: &hex!(""), + ciphertext: &hex!(""), + tag: &hex!("ee3cab5778888439d90fa718b75738ad"), + }, + TestVector { + key: &hex!("a364f494a4cd0147c34731074dc1a85b"), + nonce: &hex!("4aa8470dd404e4054b30093a"), + plaintext: &hex!(""), + aad: &hex!(""), + ciphertext: &hex!(""), + tag: &hex!("d8a7bba3a451902e3adc01060c3c91a7"), + }, + TestVector { + key: &hex!("77be63708971c4e240d1cb79e8d77feb"), + nonce: &hex!("e0e00f19fed7ba0136a797f3"), + plaintext: &hex!(""), + aad: &hex!("7a43ec1d9c0a5a78a0b16533a6213cab"), + ciphertext: &hex!(""), + tag: &hex!("209fcc8d3675ed938e9c7166709dd946"), + }, + TestVector { + key: &hex!("7680c5d3ca6154758e510f4d25b98820"), + nonce: &hex!("f8f105f9c3df4965780321f8"), + plaintext: &hex!(""), + aad: &hex!("c94c410194c765e3dcc7964379758ed3"), + ciphertext: &hex!(""), + tag: &hex!("94dca8edfcf90bb74b153c8d48a17930"), + }, + TestVector { + key: &hex!("a82bb1edc7c01a3689006f34bfed783e"), + nonce: &hex!("963836b67b188becf9ba1411"), + plaintext: &hex!(""), + aad: &hex!("9d115bb9bbd119fb777b6316065a9ac8"), + ciphertext: &hex!(""), + tag: &hex!("c491889fa3eca4544ba0d51b8e0f3837"), + }, + TestVector { + key: &hex!("b9782d0a5986c63f352d3bc4c7ecc96d"), + nonce: &hex!("4541e15b92edea44eceb1f2a"), + plaintext: &hex!(""), + aad: &hex!("f1a9f0723429c5b26185ac3ea7e13d7a"), + ciphertext: &hex!(""), + tag: &hex!("74d0d36949f0276670f9ddc579e94f3a"), + }, + TestVector { + key: &hex!("59b95785b30f205679fc4f3f9a90102f"), + nonce: &hex!("1908787cc1e1880a6ef5dd17"), + plaintext: &hex!(""), + aad: &hex!("39852d3182944a5177db277b63910702"), + ciphertext: &hex!(""), + tag: &hex!("8f9a96c013992485b43e2b62745ad173"), + }, + TestVector { + key: &hex!("34dd7926ab13d4078160d87de2e3c724"), + nonce: &hex!("c11ccdaf798ab03af2d97ef9"), + plaintext: &hex!(""), + aad: &hex!("af698717a6d790b3bfc39195857bb5ff"), + ciphertext: &hex!(""), + tag: &hex!("48116050bbd9118270d0be252d29d5d4"), + }, + TestVector { + key: &hex!("8ec86fab55aaab0e77455e9cd3dbc78e"), + nonce: &hex!("15fd90a9867e14f0d63b53b9"), + plaintext: &hex!(""), + aad: &hex!("e7509e276209a6d3ecfabb53ccdcd236"), + ciphertext: &hex!(""), + tag: &hex!("d96d6ac0d309cebedeba2af9f262132f"), + }, + TestVector { + key: &hex!("66b2473d9e0121666d47633f7008eb1c"), + nonce: &hex!("c1716c68a24d57770b867e51"), + plaintext: &hex!(""), + aad: &hex!("c20f686317d67e53dd79bae5c46dc111"), + ciphertext: &hex!(""), + tag: &hex!("9a08616809cf15247dfeb9756ba4f609"), + }, + TestVector { + key: &hex!("5b262a9d00904d30a2587caade091381"), + nonce: &hex!("f7bc154ca562e8f2c1845598"), + plaintext: &hex!(""), + aad: &hex!("23112d078c9914fa3dfe5218cd191016"), + ciphertext: &hex!(""), + tag: &hex!("98854d193a06dbe32ce4497eec5c9a8b"), + }, + TestVector { + key: &hex!("2e4fb9cc320188a6f1fa89a7a252273a"), + nonce: &hex!("7a6d4ee69c7256c14fba8f5e"), + plaintext: &hex!(""), + aad: &hex!("80ba4a202a68c3590d6557912c6f878e"), + ciphertext: &hex!(""), + tag: &hex!("9280313273befb8afa0bceca5a966d85"), + }, + TestVector { + key: &hex!("5ea94973d8616dafa7f31db0716d1729"), + nonce: &hex!("a05b62669d250e61b077d28a"), + plaintext: &hex!(""), + aad: &hex!("9620baf2f58d013f8a4c4871989c1b17"), + ciphertext: &hex!(""), + tag: &hex!("7e550398dee728256d6928cdaac43b73"), + }, + TestVector { + key: &hex!("910385f6f07f9e57e483c47dd5206bcc"), + nonce: &hex!("518f56e33658df311d42d9fe"), + plaintext: &hex!(""), + aad: &hex!("5d157909a2a4607117e77da0e4493b88"), + ciphertext: &hex!(""), + tag: &hex!("a7041ea4a1d74d9e66b9571b59b6a1d8"), + }, + TestVector { + key: &hex!("cab3af7a15b430e034e793bb30db8ab2"), + nonce: &hex!("963a56e2e12f387062e18498"), + plaintext: &hex!(""), + aad: &hex!("a094a1dd1121d3aa52c81e8f10bf9f0c"), + ciphertext: &hex!(""), + tag: &hex!("1a31d295601eb3c82a54b234984ffdf5"), + }, + TestVector { + key: &hex!("89c949e9c804af014d5604b39459f2c8"), + nonce: &hex!("d1b104c815bf1e94e28c8f16"), + plaintext: &hex!(""), + aad: &hex!("82adcd638d3fa9d9f3e84100d61e0777"), + ciphertext: &hex!(""), + tag: &hex!("88db9d62172ed043aa10f16d227dc41b"), + }, + TestVector { + key: &hex!("a4d994c4ac5ac0f02913245714fbe235"), + nonce: &hex!("a9472dadcca8d7e0e3b8084d"), + plaintext: &hex!(""), + aad: &hex!("eb318b9e17575203dd29ebed20ec82f9"), + ciphertext: &hex!(""), + tag: &hex!("323df7f33694106f56739de0973216a3"), + }, + TestVector { + key: &hex!("2fb45e5b8f993a2bfebc4b15b533e0b4"), + nonce: &hex!("5b05755f984d2b90f94b8027"), + plaintext: &hex!(""), + aad: &hex!("e85491b2202caf1d7dce03b97e09331c32473941"), + ciphertext: &hex!(""), + tag: &hex!("c75b7832b2a2d9bd827412b6ef5769db"), + }, + TestVector { + key: &hex!("952117048f77e276c2ef6580537c1403"), + nonce: &hex!("070b8fb46a7ad52885be1b26"), + plaintext: &hex!(""), + aad: &hex!("34b088f982818b5f07dabe2b62f9547f4ed09912"), + ciphertext: &hex!(""), + tag: &hex!("bedd4cf30fd7a4abc49bdcc3f3b248b1"), + }, + TestVector { + key: &hex!("7f6453b39bde018560a16a2704217543"), + nonce: &hex!("0f3eecf48d68353226a77fe4"), + plaintext: &hex!(""), + aad: &hex!("11e4ecb256ebff56453fa2e75e43eb9d641049e6"), + ciphertext: &hex!(""), + tag: &hex!("b512623a12d5492b7d76d39be0df5777"), + }, + TestVector { + key: &hex!("9332e433bf6100c6cc23b08710627c40"), + nonce: &hex!("aab3db3015b29d24f329beb4"), + plaintext: &hex!(""), + aad: &hex!("bd843a08f0a822f8f4f76c3648380aab7622e719"), + ciphertext: &hex!(""), + tag: &hex!("e54f1d18c61d8be15484727605b5a5dc"), + }, + TestVector { + key: &hex!("5773750a493096a99d84c0563fc293e9"), + nonce: &hex!("c390ed70dc9497234413ad52"), + plaintext: &hex!(""), + aad: &hex!("6012517258716c1f0035efa60a0f36b5c65e7379"), + ciphertext: &hex!(""), + tag: &hex!("b011b264610e58082705476f040b8c86"), + }, + TestVector { + key: &hex!("41b0d0fce5d31359cfd5db4064e2d46b"), + nonce: &hex!("b903e9d0cea25795a82e73e3"), + plaintext: &hex!(""), + aad: &hex!("4cba501876f33e1fda9cd456e3180683e3863bd9"), + ciphertext: &hex!(""), + tag: &hex!("18bc39d0b95cf059cd8c25004f5e507c"), + }, + TestVector { + key: &hex!("4748b782e3fe5e4effeb7c67232d2b07"), + nonce: &hex!("c5e4dcf18f86076b88a5d5e9"), + plaintext: &hex!(""), + aad: &hex!("3b2fcad8739ed87e1d02e80845f120e249ea92b1"), + ciphertext: &hex!(""), + tag: &hex!("b8ae718e2879c9cb658d5d1122e69bb7"), + }, + TestVector { + key: &hex!("e30cc22077d5951216d07f37c51b58f9"), + nonce: &hex!("fc583ad159b52e0b6378157e"), + plaintext: &hex!(""), + aad: &hex!("c3cb7be8888ef44ca5aa93dde26d2751288e1f5a"), + ciphertext: &hex!(""), + tag: &hex!("a8ce25b5dc8f84e2f5dae5f085aaccd4"), + }, + TestVector { + key: &hex!("7c8b10ba75ee6ab4a997d3f598b79d40"), + nonce: &hex!("6fb55188ddf00dde09596587"), + plaintext: &hex!(""), + aad: &hex!("2ddc0acf9705f8d18f905b8f9d472e7dbf6b91e3"), + ciphertext: &hex!(""), + tag: &hex!("5791d3805109c5e18adff4e80906a018"), + }, + TestVector { + key: &hex!("72c7db6ca29f83641c3fff5b71c4bc30"), + nonce: &hex!("f2000742e249ac56d5b2f65f"), + plaintext: &hex!(""), + aad: &hex!("cd994d2d08232770927d854ef2b6ca2f087370cf"), + ciphertext: &hex!(""), + tag: &hex!("a5966df39feeba0336f0b9a3f4ffe6c3"), + }, + TestVector { + key: &hex!("2833cc10195030e4a1155532666cb049"), + nonce: &hex!("ad802b9a5c9409fa3e7dcfcc"), + plaintext: &hex!(""), + aad: &hex!("b3ecbea2797d006c07b8ce621be3b0eccd37c3ec"), + ciphertext: &hex!(""), + tag: &hex!("81deab8bdee0d391495eed4029a6d205"), + }, + TestVector { + key: &hex!("d8985bb5ac0258adad86660ebbc6d19f"), + nonce: &hex!("b5ee26f8c463bbfc27115b0a"), + plaintext: &hex!(""), + aad: &hex!("613f51f832fbf434b8e3fe9454ae46a862d831f0"), + ciphertext: &hex!(""), + tag: &hex!("fe9f0b1bdc68dee6e8dc2ce12665d336"), + }, + TestVector { + key: &hex!("9b8f6924dc22f1073c1a38448a2f0447"), + nonce: &hex!("09cdabf87d82828eca1c0c7f"), + plaintext: &hex!(""), + aad: &hex!("69210e4e0a1cfd5038756652790b9a8cfbbd943d"), + ciphertext: &hex!(""), + tag: &hex!("a60c104a6fb4638427a88a86c04923bd"), + }, + TestVector { + key: &hex!("72132213d5d95309bf7e10f8318d7c20"), + nonce: &hex!("fb90bf283c5411230355d7a1"), + plaintext: &hex!(""), + aad: &hex!("a30bb17c8089c6f5f61b250a94cbbbfdf5f2a3e6"), + ciphertext: &hex!(""), + tag: &hex!("09191af418949fe6be8dbf13e006527a"), + }, + TestVector { + key: &hex!("652ffbad4e1fcbe75564395e6c1c3924"), + nonce: &hex!("111349636d106fd5f6a1e088"), + plaintext: &hex!(""), + aad: &hex!("5f52aa85dc3ac042647e32ada050d67e59b519aa"), + ciphertext: &hex!(""), + tag: &hex!("28d980d7bfd878c227c140de3482765b"), + }, + TestVector { + key: &hex!("99e3e8793e686e571d8285c564f75e2b"), + nonce: &hex!("c2dd0ab868da6aa8ad9c0d23"), + plaintext: &hex!(""), + aad: &hex!("b668e42d4e444ca8b23cfdd95a9fedd5178aa521144890b093733cf5cf22526c5917ee476541809ac6867a8c399309fc"), + ciphertext: &hex!(""), + tag: &hex!("3f4fba100eaf1f34b0baadaae9995d85"), + }, + TestVector { + key: &hex!("f8e29efd00a423c4ea9456863f83c54f"), + nonce: &hex!("2d3cf67cbce69d639bd1c092"), + plaintext: &hex!(""), + aad: &hex!("02c70fc8a2544619c1c3e9fce6b3c6c3bc24643e0f140e6b48ac505ea666cd9a2010c3a8e2f5f10437887fe803b54db3"), + ciphertext: &hex!(""), + tag: &hex!("963cb50aca3e09dd0d9a013c8734155f"), + }, + TestVector { + key: &hex!("00e3491dfcf3bec39c89ccfd80a5a896"), + nonce: &hex!("29f6ff4edc4ac3e97ffb1680"), + plaintext: &hex!(""), + aad: &hex!("73813351b39f5e4000a9ee8d2b85f131634acaede0dd25d691a2b829ad4fe9ea699f12242519847cb083b0b4d3d8b3bc"), + ciphertext: &hex!(""), + tag: &hex!("01b2e9ba719ad77c753b364ecc5aabeb"), + }, + TestVector { + key: &hex!("0ad06f4c19af1d5f602b38f86e56291c"), + nonce: &hex!("0b235c6a75cecdfcba9001ce"), + plaintext: &hex!(""), + aad: &hex!("7d4f26f7895b2ef3da2e4f93e411cdb74025c7759c038d872344a45ce56d92a581862c3bace039090a2ccfa43b623dcb"), + ciphertext: &hex!(""), + tag: &hex!("b4bc9ce1475d0c93dfd5a5d8d45bd8e5"), + }, + TestVector { + key: &hex!("eeeb33e0c8a406ea236a075cdbe9d6f9"), + nonce: &hex!("b935e8eed66227836ede189a"), + plaintext: &hex!(""), + aad: &hex!("9a4291acb9924bba4241b0c9c3c2e1262b25a7c7f02c92adeadf92254d618ab59388aa30b47eafa58899c357cf281e31"), + ciphertext: &hex!(""), + tag: &hex!("143d6954eb6fe70aff70da978ccd4509"), + }, + TestVector { + key: &hex!("600b5442a0b550a38f85d2fb0acc9c96"), + nonce: &hex!("5e65dd6e8b20d6b2931fe6c2"), + plaintext: &hex!(""), + aad: &hex!("461e54a092f8392466849fb0370ae30c14c1bf3987ab2ebbe98e18d13f041d09d043f7aea78bfcc42f864a9fb40f0031"), + ciphertext: &hex!(""), + tag: &hex!("2cd626f9a0686300cf23c0bc597c63b4"), + }, + TestVector { + key: &hex!("ce8d1103100fa290f953fbb439efdee4"), + nonce: &hex!("4874c6f8082366fc7e49b933"), + plaintext: &hex!(""), + aad: &hex!("d69d033c32029789263c689e11ff7e9e8eefc48ddbc4e10eeae1c9edbb44f04e7cc6471501eadda3940ab433d0a8c210"), + ciphertext: &hex!(""), + tag: &hex!("a5964b77af0b8aecd844d6adec8b7b1c"), + }, + TestVector { + key: &hex!("ae7114c09ffa04298834412f6a8de453"), + nonce: &hex!("f380c2d860be2af41e1be5c6"), + plaintext: &hex!(""), + aad: &hex!("7e16082f689c63e8adddd5cb2da610bbfb88d073cf8b204384a937aab0376523a50d3d5f1392978f79609f12df8fc288"), + ciphertext: &hex!(""), + tag: &hex!("40d3a36358a6f6caaa6af92cfd874a22"), + }, + TestVector { + key: &hex!("d8f520b6f3cf6b835ce4cce48f4cb033"), + nonce: &hex!("019a55c98615c022afff9644"), + plaintext: &hex!(""), + aad: &hex!("c3fb518ddb2d73417e243359a0ed8c126750eb163e7bd845637159397075e3db1db72fe2f0e13b599c333c473feb2245"), + ciphertext: &hex!(""), + tag: &hex!("467cfad5af11852d6eca289c86f967ad"), + }, + TestVector { + key: &hex!("13ba95606b01af035bf961e39852e34b"), + nonce: &hex!("9ec9cf3b002cfed9e761934f"), + plaintext: &hex!(""), + aad: &hex!("bb9de563836d1f1b1de964514ecebb8ad10501db562280b7bd98804814735817908b2856cafadecd40b04832fbde2bfb"), + ciphertext: &hex!(""), + tag: &hex!("172a3bcbc5001dfd3815175a88f7056c"), + }, + TestVector { + key: &hex!("1c97da5fc5a9640f289622842408cba2"), + nonce: &hex!("6d765a988e934588163e29b7"), + plaintext: &hex!(""), + aad: &hex!("1026a590816d2e1aa67aa0d13d50a8413af4d8ee9b1fa5ceb8deacc9f41e8e764b3ac15f98295e8800adf6a7175448cd"), + ciphertext: &hex!(""), + tag: &hex!("4945a79d5edbb934c5cf94395c359deb"), + }, + TestVector { + key: &hex!("8dd46f271a201cc21ca0823248157e6b"), + nonce: &hex!("1821b310ce2dba999cdf7576"), + plaintext: &hex!(""), + aad: &hex!("34ba409997ceba065f4a5457078a9e232a84f594011aecfdbfbd24a802ca129e01cb1327e265b4a9004fb4c5003fffd3"), + ciphertext: &hex!(""), + tag: &hex!("304cc2cd2fcdd4abc844bc9c1cbe0241"), + }, + TestVector { + key: &hex!("0c545d95333b6acf8b2928f3efd083de"), + nonce: &hex!("31de89d07e7577956fa95ef3"), + plaintext: &hex!(""), + aad: &hex!("5574d65f5afffb2d31cca8f58cf5945b83553cd45d2dba0e05fa54e42aa3f5a051e1624de16d4b93cbab7988c6d95f8c"), + ciphertext: &hex!(""), + tag: &hex!("4ed91cfe90a49900e0565697bc82b659"), + }, + TestVector { + key: &hex!("790b39f301383a82b377f585d3bf0f26"), + nonce: &hex!("2fd9c142b5fc62e87efff1fd"), + plaintext: &hex!(""), + aad: &hex!("45634e0afc59ae9f6e30f7f5fe43cf5a4e1f78d0aebb9e5a7ad9d86f25278e521f4845d49d6cb533cac6439839647fd0"), + ciphertext: &hex!(""), + tag: &hex!("69637c3f9233da23f8df7b09e8cfb252"), + }, + TestVector { + key: &hex!("8f63652632d07b2a4a83c26dedd32657"), + nonce: &hex!("747bee0e1d462a9016f1468d"), + plaintext: &hex!(""), + aad: &hex!("9c00ff969b55a497dc523fa0cedaa339dc3c6ce18e61c7bf800c361201351bc49728c3bb15067e906162ee791b8d333a"), + ciphertext: &hex!(""), + tag: &hex!("bd5a0cbf859a6133a7f2d504d97cae05"), + }, + TestVector { + key: &hex!("20b5b6b854e187b058a84d57bc1538b6"), + nonce: &hex!("94c1935afc061cbf254b936f"), + plaintext: &hex!(""), + aad: &hex!("ca418e71dbf810038174eaa3719b3fcb80531c7110ad9192d105eeaafa15b819ac005668752b344ed1b22faf77048baf03dbddb3b47d6b00e95c4f005e0cc9b7627ccafd3f21b3312aa8d91d3fa0893fe5bff7d44ca46f23afe0"), + ciphertext: &hex!(""), + tag: &hex!("b37286ebaf4a54e0ffc2a1deafc9f6db"), + }, + TestVector { + key: &hex!("7aa53188a9c597126a10d248603ebb62"), + nonce: &hex!("aa45ca5dac41a825c45d36bf"), + plaintext: &hex!(""), + aad: &hex!("417fd5147d56de0c74329597824ec2788a344fb60b403edf0187afa12e72a05009bb70f83ccad11efa487c1965cf84feac067c1ffdbf531fca97c554f875c4a1a1d3ab3c53c8a74ef3ee9415a87e231699c82d764debeda18132"), + ciphertext: &hex!(""), + tag: &hex!("997bf84654bb9616c0cc9b45f82c7673"), + }, + TestVector { + key: &hex!("72b5848ed1d2badbd427e16fc3b3e44d"), + nonce: &hex!("a84c7e928dc6e6379a513a20"), + plaintext: &hex!(""), + aad: &hex!("1c0dfcecbd7bb0e680ce042d08b2d9a741267bd1da768df2ba08379233a9973f14928e9da6353768b9b2601c033fd964b16a16daaa3ea35ad7cef7e31eb1f7340aa34e8bfc08b0a6e6205292570ced43316876d0d499d9192e6b"), + ciphertext: &hex!(""), + tag: &hex!("270cd786b95e6820cdb65a231b7530ed"), + }, + TestVector { + key: &hex!("6d0512ebf2e73d63f42849c57f073fd0"), + nonce: &hex!("c1c46927c74c03f19342c33a"), + plaintext: &hex!(""), + aad: &hex!("28bf8903b2dfb7e69f1a735121c7efe9a4c42b6a295327bceb0246c85d782ce62bf075dbdf6e8ec6589c26d30696ccceef03870bd0abfd26d30600eafc65613740b54d777d379e8aacf241ecfba11b060186ac065db171aab099"), + ciphertext: &hex!(""), + tag: &hex!("a686f5941ceb510e126a6316e3404dc0"), + }, + TestVector { + key: &hex!("6438bc79520def5db58e49639774687a"), + nonce: &hex!("d682b47418ceb5bc09c713c2"), + plaintext: &hex!(""), + aad: &hex!("d252b164ae559ed155c8417b96652529df151f24ccf1ce98d0c7ddf293f4f1236630a19b24dc23978d3377a099065d0ba71d4bb8a7dc0cb76760ca7c4a0e12c8cb56c6102646323c08c4f4f56226fd5b71a84590913ad20da287"), + ciphertext: &hex!(""), + tag: &hex!("04e78796dbf42e9ffa6bb9e346581f13"), + }, + TestVector { + key: &hex!("117a0aa592fff17ae36c94917db16c65"), + nonce: &hex!("c3537be6029d54ffefab2730"), + plaintext: &hex!(""), + aad: &hex!("29e959b96817547ae06bf85fe164e82a2693f82a7aeb66d535f0d2c3bffd1ba18e94ef457939f0c0733eda4738d136380fc876075c4943220237a5929b01b32da2bc2a6afd6ae1d89fd470093835962ff6708bb39ba365202f56"), + ciphertext: &hex!(""), + tag: &hex!("b87fcc4d5c484e68ea52c01b55ffa438"), + }, + TestVector { + key: &hex!("5d995a338ed60f8ab0b59da6c9a40c52"), + nonce: &hex!("2723c54e31c5c57f0236e816"), + plaintext: &hex!(""), + aad: &hex!("239c80683feb6afd38f8759a27cb5f350fbc2f757838c40858c9d08f699cc56c4236f4a77bd80df0e8e41d5f9ba732db2e0a3a5e952ede7bfdd5fcbebd23d07271134db5b82461537c47e2ca51b348b0830f5ee575ad4b4414dc"), + ciphertext: &hex!(""), + tag: &hex!("94356a3bfaf07f2ef0ebe3a507076b16"), + }, + TestVector { + key: &hex!("c8a863a1ebaf10c0fc0e80df12444e6e"), + nonce: &hex!("c3e8cdf086827fee7095d0ea"), + plaintext: &hex!(""), + aad: &hex!("9927da88c5d336256699c76845e946dc53c87bf0e11e4bec9450981602b32010d2b52bfc91283a6329d455598998ede2e61e352e553110154b4da5ce668d664b83f671c010bf220b7d32b34f4ca69b66cc87233d792337cb2bff"), + ciphertext: &hex!(""), + tag: &hex!("098837de27707ea3593e31ceb8276732"), + }, + TestVector { + key: &hex!("69cc28b161f214a580e6ba4bc2e3de9d"), + nonce: &hex!("f2a566f9cf83fd280c8fe08e"), + plaintext: &hex!(""), + aad: &hex!("f8c5263a4e06b49e184589a1e071978643c353aa27b4817fe39e45abc442e22ab5d683bcee5dbbd589fa583f171bb59536addd2b6cefd49823413005efb2a665e26a6029c927d3891cb0d4f23e8ccc60cfd02ce8978c451ddc11"), + ciphertext: &hex!(""), + tag: &hex!("c9c806cb8b1a889809695c2ec5a7a86e"), + }, + TestVector { + key: &hex!("bbf35920fcab2cedaafdf3f00321f544"), + nonce: &hex!("2c7ee3ff1df84f3650bc9298"), + plaintext: &hex!(""), + aad: &hex!("a75f50ba9a50f48799594b6195b3125ed92df73144bfcb624ce67323d834ba1afaf0df4c6c022c11d48bd75c86675a5927ac1250030f720f97498d4fe0787bae655dc5537ac1bcac198a893f9af7c2ef9b971dd64f7e7b62603e"), + ciphertext: &hex!(""), + tag: &hex!("c7cd3f938f4ab18642d86234edfc17ed"), + }, + TestVector { + key: &hex!("9690de669702ba72aeb934f5ac50e03c"), + nonce: &hex!("da8713fe2b2058c438aff260"), + plaintext: &hex!(""), + aad: &hex!("f30ee950da37c7224b5c93e9a29cafdbf8e2070f65c226244b1a683459e0c5c11c9b77c8fc286d4298a5b9cd1fee3e13d4690a88780d35b558b5d9e52b1a67fc8857076691dca7f5fe8ef22065cc5d9c003ffd25ebe23e61440e"), + ciphertext: &hex!(""), + tag: &hex!("7f92914518ddbe842b06771f64c40f59"), + }, + TestVector { + key: &hex!("e5d8c6e2ac6935c85e81ee0ef723eacf"), + nonce: &hex!("c73140ee90cc1dcf88457da2"), + plaintext: &hex!(""), + aad: &hex!("f6c267a6ae5ce3cf4bcdf59cfd1f777c66133e0ec4772785f33e5fa800d310b24b5773bc603a76b30fc32328a8e40f02f823a813a9e4b4fac726e992c183bd0815111c1d3a35884a4eff32027ba60dba679b469af31bc50c0591"), + ciphertext: &hex!(""), + tag: &hex!("f938fd0d8c148d81765109df66dac9aa"), + }, + TestVector { + key: &hex!("e23458f6b304c2d8feb3dedd3741bc24"), + nonce: &hex!("4619036b50ba012fe50be1d7"), + plaintext: &hex!(""), + aad: &hex!("74bfdc6bc4bfc38d666b985cfe043c67798b2db98f149268dba24436cab83e9a91f244ffc5748c93f8df339ae24ba4318c50da011ab368d3167c16e503309b01351a11f14d067cc6769b9989c7d952e3315011ee2ea034db8cb8"), + ciphertext: &hex!(""), + tag: &hex!("6053ab80c746821ec50c97e5a1424a85"), + }, + TestVector { + key: &hex!("5372ac5d3b08d860919110bdeb7f31df"), + nonce: &hex!("06ca979d8c250d9b7be45573"), + plaintext: &hex!(""), + aad: &hex!("e1f958834e63c75c8c758bafaa2f257ea5689d0d55b877b4d67b8b73c25ce24e9b094b976db920a159968da9d33c511aa8999aba42b8bb886e6545dd108693150af357496bb5898b4e8f725d50ef474afb836a3358da2217bb93"), + ciphertext: &hex!(""), + tag: &hex!("9338e14fe0b08a969a104c828528a6a4"), + }, + TestVector { + key: &hex!("bf1cb49e980cec0b153fe3573875ac6c"), + nonce: &hex!("5426669d25524036fbe81e89"), + plaintext: &hex!(""), + aad: &hex!("b336949766e9948a7e6f36a2d377b84a25c4b4988794f3deab7af4b14a12dac641e25fe2ae9ff53450ace1513acd0b284a490b455f04f40af94418c8792ec1a0983fb1d9a31d93dc3ed2c75e6a6ce092111eabad039bac2a49f6"), + ciphertext: &hex!(""), + tag: &hex!("e2996a2b3b6bf52217cfc4d0f5bb351b"), + }, + TestVector { + key: &hex!("7fddb57453c241d03efbed3ac44e371c"), + nonce: &hex!("ee283a3fc75575e33efd4887"), + plaintext: &hex!("d5de42b461646c255c87bd2962d3b9a2"), + aad: &hex!(""), + ciphertext: &hex!("2ccda4a5415cb91e135c2a0f78c9b2fd"), + tag: &hex!("b36d1df9b9d5e596f83e8b7f52971cb3"), + }, + TestVector { + key: &hex!("ab72c77b97cb5fe9a382d9fe81ffdbed"), + nonce: &hex!("54cc7dc2c37ec006bcc6d1da"), + plaintext: &hex!("007c5e5b3e59df24a7c355584fc1518d"), + aad: &hex!(""), + ciphertext: &hex!("0e1bde206a07a9c2c1b65300f8c64997"), + tag: &hex!("2b4401346697138c7a4891ee59867d0c"), + }, + TestVector { + key: &hex!("77b0a58a1e60541e5ea3d4d42007940e"), + nonce: &hex!("ae7a27904d95fe800e83b345"), + plaintext: &hex!("6931a3ea07a9e95207334f0274a454dd"), + aad: &hex!(""), + ciphertext: &hex!("76e39fad4000a07d35d879b785bd7fca"), + tag: &hex!("5cb3724712f129f86b7927f13b45c835"), + }, + TestVector { + key: &hex!("caaa3f6fd31822ed2d2125f225b0169f"), + nonce: &hex!("7f6d9041483e8c1412fa552a"), + plaintext: &hex!("84c907b11ae3b79fc4451d1bf17f4a99"), + aad: &hex!(""), + ciphertext: &hex!("fdb4aafa3519d3c055be8b347764ea33"), + tag: &hex!("89e43bfead01692c4ebe656586e3fbe3"), + }, + TestVector { + key: &hex!("02c8e81debc563e99cd262bfc64b0e11"), + nonce: &hex!("b49057c9778d8c02fe00d029"), + plaintext: &hex!("ca2a51e9d05e96e6f1d14ced36811c5c"), + aad: &hex!(""), + ciphertext: &hex!("5db602fb31bb9268d233bee0dd6b87ae"), + tag: &hex!("789d2be2cc70b7c389b31912e1c0a041"), + }, + TestVector { + key: &hex!("4e625a3edc61f0cb2f002da8f8a70245"), + nonce: &hex!("66d632dd5ca10b08d4d8f97b"), + plaintext: &hex!("0b76d498add6e09c96d7694e5d620bd5"), + aad: &hex!(""), + ciphertext: &hex!("17bdc7ef5649bec9cf6c565ce33cf889"), + tag: &hex!("3f7944bad062605f937ff6d6598a7651"), + }, + TestVector { + key: &hex!("41ab3fc488f8d4a820e65b9d41a87de3"), + nonce: &hex!("9b5d27d75a0571e93f581885"), + plaintext: &hex!("5ed0836e0a52777599800d4fe754ccbe"), + aad: &hex!(""), + ciphertext: &hex!("88c0eb8c33a10a22e7561866566b191f"), + tag: &hex!("83e885802a594a8b008a94aa7ef06907"), + }, + TestVector { + key: &hex!("0047184240a5948ed55701eac2c4c26c"), + nonce: &hex!("a3ab8da22648c2453cdef55b"), + plaintext: &hex!("89ee9502871be15ee4a8c47ab123bfc9"), + aad: &hex!(""), + ciphertext: &hex!("8b5cb59e7ad2e15c40d5fbcde28a0d17"), + tag: &hex!("538e79f880e2f65c72148f5ade4080a1"), + }, + TestVector { + key: &hex!("735c5a4ff2438852df3530c23590ac28"), + nonce: &hex!("7bee7c6938f1ae59671e2ddb"), + plaintext: &hex!("479e8d3bf0de4ce7cd4377d2ed3925cd"), + aad: &hex!(""), + ciphertext: &hex!("2ca09b58178fbbfb82556599b92329a3"), + tag: &hex!("2e3cf2895f111ec2a86508c36a24e45d"), + }, + TestVector { + key: &hex!("016dbb38daa76dfe7da384ebf1240364"), + nonce: &hex!("0793ef3ada782f78c98affe3"), + plaintext: &hex!("4b34a9ec5763524b191d5616c547f6b7"), + aad: &hex!(""), + ciphertext: &hex!("609aa3f4541bc0fe9931daad2ee15d0c"), + tag: &hex!("33afec59c45baf689a5e1b13ae423619"), + }, + TestVector { + key: &hex!("2d176607883aface75011d14818f1be6"), + nonce: &hex!("02162c3635bf6d543e1cc148"), + plaintext: &hex!("71905ad5df601d056effd80dd7333662"), + aad: &hex!(""), + ciphertext: &hex!("1b68598e1676d2cfd37aa00396fa9676"), + tag: &hex!("5d060aa8a729774da001aa9fdef2b3d2"), + }, + TestVector { + key: &hex!("94fd0269a0ce813133626f93c4af7e6f"), + nonce: &hex!("11fc3928028dfa34db06a1bc"), + plaintext: &hex!("a1aefec976cd87cf8a4c21bbe902f7b4"), + aad: &hex!(""), + ciphertext: &hex!("b1baf8c58cdec88238b1b0ab0b40337d"), + tag: &hex!("882f865df7da529f768d4944e8387f69"), + }, + TestVector { + key: &hex!("a7bec5e24f0db2629a257d02fdfaea02"), + nonce: &hex!("9d2ec94b927327793583b818"), + plaintext: &hex!("a17bc5d428700f94c641e74aaacf2c5d"), + aad: &hex!(""), + ciphertext: &hex!("d460fda5b24425b5caa8176c8c67b3a9"), + tag: &hex!("0df724340b8ca56e8dea6bbeb4b55c35"), + }, + TestVector { + key: &hex!("39d945a00e05d70a16e61334d2010209"), + nonce: &hex!("1f931448e9013ec4ec61af0c"), + plaintext: &hex!("9dd90ebfc054da214cbb30db7f75c692"), + aad: &hex!(""), + ciphertext: &hex!("e4cb765408697cf85917a7a9264086e4"), + tag: &hex!("fe9a1fe7a58d66e3b922693a163c1ff4"), + }, + TestVector { + key: &hex!("6620ca65f72de7b865de731928a4723e"), + nonce: &hex!("e6428b6b77e9b6993b809aef"), + plaintext: &hex!("7044f7c27d776f6a7d43abea35908de4"), + aad: &hex!(""), + ciphertext: &hex!("a1c5634a07d05ca909dba87bf02228e4"), + tag: &hex!("d8b40a60a65237337db05b045de8074c"), + }, + TestVector { + key: &hex!("c939cc13397c1d37de6ae0e1cb7c423c"), + nonce: &hex!("b3d8cc017cbb89b39e0f67e2"), + plaintext: &hex!("c3b3c41f113a31b73d9a5cd432103069"), + aad: &hex!("24825602bd12a984e0092d3e448eda5f"), + ciphertext: &hex!("93fe7d9e9bfd10348a5606e5cafa7354"), + tag: &hex!("0032a1dc85f1c9786925a2e71d8272dd"), + }, + TestVector { + key: &hex!("599eb65e6b2a2a7fcc40e51c4f6e3257"), + nonce: &hex!("d407301cfa29af8525981c17"), + plaintext: &hex!("a6c9e0f248f07a3046ece12125666921"), + aad: &hex!("10e72efe048648d40139477a2016f8ce"), + ciphertext: &hex!("1be9359a543fd7ec3c4bc6f3c9395e89"), + tag: &hex!("e2e9c07d4c3c10a6137ca433da42f9a8"), + }, + TestVector { + key: &hex!("2d265491712fe6d7087a5545852f4f44"), + nonce: &hex!("c59868b8701fbf88e6343262"), + plaintext: &hex!("301873be69f05a84f22408aa0862d19a"), + aad: &hex!("67105634ac9fbf849970dc416de7ad30"), + ciphertext: &hex!("98b03c77a67831bcf16b1dd96c324e1c"), + tag: &hex!("39152e26bdc4d17e8c00493fa0be92f2"), + }, + TestVector { + key: &hex!("1fd1e536a1c39c75fd583bc8e3372029"), + nonce: &hex!("281f2552f8c34fb9b3ec85aa"), + plaintext: &hex!("f801e0839619d2c1465f0245869360da"), + aad: &hex!("bf12a140d86727f67b860bcf6f34e55f"), + ciphertext: &hex!("35371f2779f4140dfdb1afe79d563ed9"), + tag: &hex!("cc2b0b0f1f8b3db5dc1b41ce73f5c221"), + }, + TestVector { + key: &hex!("7b0345f6dcf469ecf9b17efa39de5359"), + nonce: &hex!("b15d6fcde5e6cf1fa99ba145"), + plaintext: &hex!("822ae01a0372b6aa46c2e5bf19db92f2"), + aad: &hex!("72e9cb26885154d4629e7bc91279bb19"), + ciphertext: &hex!("382e440694b0c93be8dd438e37635194"), + tag: &hex!("2fa042bff9a9cd35e343b520017841bb"), + }, + TestVector { + key: &hex!("9db91a40020cdb07f88769309a6ac40b"), + nonce: &hex!("f89e1b7e598cc2535a5c8659"), + plaintext: &hex!("f4a5003db4a4ebbc2fdb8c6756830391"), + aad: &hex!("70910598e7abd4f0503ecd9e21bdafb5"), + ciphertext: &hex!("40d7fc4ccc8147581f40655a07f23ee9"), + tag: &hex!("243331b48404859c66af4d7b2ee44109"), + }, + TestVector { + key: &hex!("e2f483989b349efb59ae0a7cadc74b7a"), + nonce: &hex!("3338343f9b97ebb784e75027"), + plaintext: &hex!("14d80ad66e8f5f2e6c43c3109e023a93"), + aad: &hex!("8b12987e600ff58df54f1f5e62e59e61"), + ciphertext: &hex!("43c2d68384d486e9788950bbb8cd8fd1"), + tag: &hex!("47d7e9144ff0ed4aa3300a944a007882"), + }, + TestVector { + key: &hex!("5c1155084cc0ede76b3bc22e9f7574ef"), + nonce: &hex!("9549e4ba69a61cad7856efc1"), + plaintext: &hex!("d1448fa852b84408e2dad8381f363de7"), + aad: &hex!("e98e9d9c618e46fef32660976f854ee3"), + ciphertext: &hex!("f78b60ca125218493bea1c50a2e12ef4"), + tag: &hex!("d72da7f5c6cf0bca7242c71835809449"), + }, + TestVector { + key: &hex!("2352503740a4e1b22dcc9c002f53bd11"), + nonce: &hex!("474ecccc3182e03c80a7be74"), + plaintext: &hex!("dc1c35bc78b985f2d2b1a13ce635dd69"), + aad: &hex!("a1bc98dacec4b6aa7fee6dfa0802f21a"), + ciphertext: &hex!("3f6f4daf6d07743b9bd2a069d3710834"), + tag: &hex!("b9c2b319adbd743f5e4ffd44304a1b5f"), + }, + TestVector { + key: &hex!("fc1f971b514a167865341b828a4295d6"), + nonce: &hex!("8851ea68d20ce0beff1e3a98"), + plaintext: &hex!("2fec17b1a9570f6651bbe9a657d82bce"), + aad: &hex!("ece8d5f63aebda80ebde4b750637f654"), + ciphertext: &hex!("2d27e5fa08e218f02b2e36dfad87a50e"), + tag: &hex!("eb9966774c588a31b71c4d8daa495e9e"), + }, + TestVector { + key: &hex!("00ef3c6762be3fbab38154d902ff43b5"), + nonce: &hex!("c3c1c3079cda49a75a53b3cc"), + plaintext: &hex!("be425e008e9b0c083b19a2d945c2ede9"), + aad: &hex!("714fa1d6904187b3c5c08a30dffc86e8"), + ciphertext: &hex!("c961a1758dcf91e539658372db18968e"), + tag: &hex!("eaf9bda9b3322f501f7329cb61c1c428"), + }, + TestVector { + key: &hex!("2d70b9569943cc49cdef8495bdb6f0e6"), + nonce: &hex!("b401d0f50880a6211fde9d9c"), + plaintext: &hex!("47a87a387944f739bd3cb03e0e8be499"), + aad: &hex!("592e7276bda066327f2b3cd8cc39f571"), + ciphertext: &hex!("c1b2af4d273231e71e7e066c206bf567"), + tag: &hex!("c68d8d3cf8b89e6b15f623d60fef60bd"), + }, + TestVector { + key: &hex!("775cb7f8dc73f04fe4f9d22126bb7b57"), + nonce: &hex!("81ceb17deee19b8153ff927c"), + plaintext: &hex!("8242c6c0eed6d5d1ab69cd11dbe361d0"), + aad: &hex!("97e07cd65065d1edc863192de98bc62c"), + ciphertext: &hex!("580f063ab1a4801d279e4ee773200abe"), + tag: &hex!("29e4d7e054a6b0a4e01133573fbe632b"), + }, + TestVector { + key: &hex!("58ba3cb7c0a0cf5775002bf3b112d051"), + nonce: &hex!("bb923c93ddca303ab131238d"), + plaintext: &hex!("6b93d2d92de05b53769ec398ab8097dc"), + aad: &hex!("0898ea55c0ca0594806e2dc78be15c27"), + ciphertext: &hex!("d0564006b1897bf21922fef4f6386fd4"), + tag: &hex!("3a92f3c9e3ae6b0c69dcb8868d4de27c"), + }, + TestVector { + key: &hex!("955b761de8e98f37acb41259fa308442"), + nonce: &hex!("a103db8a0825e606b70427fc"), + plaintext: &hex!("d18344c86caffc4237d2daae47817b13"), + aad: &hex!("c2d0d8b77a6fd03ced080e0f89de8a4b"), + ciphertext: &hex!("065d228c1289007a682aa847a36b6f30"), + tag: &hex!("fb367f47922d67c84bf47aabb2b98421"), + }, + TestVector { + key: &hex!("d4a22488f8dd1d5c6c19a7d6ca17964c"), + nonce: &hex!("f3d5837f22ac1a0425e0d1d5"), + plaintext: &hex!("7b43016a16896497fb457be6d2a54122"), + aad: &hex!("f1c5d424b83f96c6ad8cb28ca0d20e475e023b5a"), + ciphertext: &hex!("c2bd67eef5e95cac27e3b06e3031d0a8"), + tag: &hex!("f23eacf9d1cdf8737726c58648826e9c"), + }, + TestVector { + key: &hex!("e8899345e4d89b76f7695ddf2a24bb3c"), + nonce: &hex!("9dfaeb5d73372ceb06ca7bbe"), + plaintext: &hex!("c2807e403e9babf645268c92bc9d1de6"), + aad: &hex!("fed0b45a9a7b07c6da5474907f5890e317e74a42"), + ciphertext: &hex!("8e44bf07454255aa9e36eb34cdfd0036"), + tag: &hex!("2f501e5249aa595a53e1985e90346a22"), + }, + TestVector { + key: &hex!("c1629d6320b9da80a23c81be53f0ef57"), + nonce: &hex!("b8615f6ffa30668947556cd8"), + plaintext: &hex!("65771ab52532c9cdfcb3a9eb7b8193df"), + aad: &hex!("5f2955e4301852a70684f978f89e7a61531f0861"), + ciphertext: &hex!("c2a72d693181c819f69b42b52088d3a2"), + tag: &hex!("cadaee305d8bb6d70259a6503280d99a"), + }, + TestVector { + key: &hex!("196ed78281bb7543d60e68cca2aaa941"), + nonce: &hex!("6e7d2c8f135715532a075c50"), + plaintext: &hex!("15b42e7ea21a8ad5dcd7a9bba0253d44"), + aad: &hex!("d6fc98c632d2e2641041ff7384d92a8358ae9abe"), + ciphertext: &hex!("06e5cc81c2d022cb2b5de5a881c62d09"), + tag: &hex!("28e8cad3346ce583d5eebaa796e50974"), + }, + TestVector { + key: &hex!("55fe8a1bdc6806ed2f4a84891db943a0"), + nonce: &hex!("af4d0ba0a90f1e713d71ae94"), + plaintext: &hex!("81315972f0b1aeaa005363e9eca09d7a"), + aad: &hex!("677cd4e6c0a67913085dba4cc2a778b894e174ad"), + ciphertext: &hex!("c47bcb27c5a8d9beb19fee38b90861b7"), + tag: &hex!("e061ee4868edf2d969e875b8685ca8a9"), + }, + TestVector { + key: &hex!("6d86a855508657f804091be2290a17e0"), + nonce: &hex!("65dce18a4461afd83f1480f5"), + plaintext: &hex!("0423bd1c8aea943637c7c3b0ca61d54b"), + aad: &hex!("e0ef8f0e1f442a2c090568d2af336ec59f57c896"), + ciphertext: &hex!("53505d449369c9bcd8a138740ea6602e"), + tag: &hex!("86f928b4532825af9cac3820234afe73"), + }, + TestVector { + key: &hex!("66bd7b5dfd0aaaed8bb8890eee9b9c9a"), + nonce: &hex!("6e92bf7e8fd0fb932451fdf2"), + plaintext: &hex!("8005865c8794b79612447f5ef33397d0"), + aad: &hex!("60459c681bda631ece1aacca4a7b1b369c56d2bb"), + ciphertext: &hex!("83b99253de05625aa8e68490bb368bb9"), + tag: &hex!("65d444b02a23e854a85423217562d07f"), + }, + TestVector { + key: &hex!("e7e825707c5b7ccf6cfc009dd134f166"), + nonce: &hex!("dd0c7a9c68d14e073f16a7a0"), + plaintext: &hex!("88b1b11e47dfe2f81096c360cf1e30e7"), + aad: &hex!("11c69ed187f165160683e7f0103038b77512460b"), + ciphertext: &hex!("550fa499a7cb4783c1957288a5cc557f"), + tag: &hex!("5d2c2f71a2e6ad9b3001bdbf04690093"), + }, + TestVector { + key: &hex!("92591b15e28ce471316c575f3963103a"), + nonce: &hex!("2c30d215e5c950f1fe9184f6"), + plaintext: &hex!("dc8842b3c146678627600742126ea714"), + aad: &hex!("46e1bd5fa646e4605e2fbec700fa592a714bc7ef"), + ciphertext: &hex!("a541d3d8f079bfe053ba8835e02b349d"), + tag: &hex!("d322a924bf44809cb8cfe8c4b972a307"), + }, + TestVector { + key: &hex!("74f08353d4139ddad46691da888ee897"), + nonce: &hex!("e2619217dc8b093e2c7c5b78"), + plaintext: &hex!("1690d6c8f95ef5ac35c56e3129717b44"), + aad: &hex!("92277cf78abe24720ce219bba3a7a339a2e011b2"), + ciphertext: &hex!("b413557c0df29e3072bb1b326e2002dc"), + tag: &hex!("3bb6273687ec6a3f4a0366f1b54bd318"), + }, + TestVector { + key: &hex!("5c951cd038a3c65cd65325bfdde86964"), + nonce: &hex!("3bf5623fd1155f1036ea893f"), + plaintext: &hex!("b609ec6673e394176dd982b981a5436b"), + aad: &hex!("dc34014513fd0eede8e9ca44a16e400a5f89cdd0"), + ciphertext: &hex!("009cf623e57a3129626a30489b730607"), + tag: &hex!("1d202825db813c0fc521c284dd543fff"), + }, + TestVector { + key: &hex!("72301c093ba804671c44a6bf52839d9c"), + nonce: &hex!("87cc7e6579cc92822f5744f6"), + plaintext: &hex!("d59bbae4ff3e3755c0a61a9b6d3e234c"), + aad: &hex!("f461946c4feba79c18366555d85311248d269c87"), + ciphertext: &hex!("ee743d29dcbaa084fda91eb48b3be961"), + tag: &hex!("07934a5372d41928f2ee7d4bb8c18982"), + }, + TestVector { + key: &hex!("39b4f826b520830941b3b1bcd57e41d5"), + nonce: &hex!("ca32ac523fe7dfefe415cba1"), + plaintext: &hex!("aa2b7a6c918ed6715441d046858b525f"), + aad: &hex!("c586cd939b27821695b4ee4dd799fb0e3449a80e"), + ciphertext: &hex!("8b64f5ea9a8cb521c66df9c74d4b7ecd"), + tag: &hex!("3db56a792b67ac6d0c4001e17f446111"), + }, + TestVector { + key: &hex!("79449e5f670d55ee2d91ca994a267a8c"), + nonce: &hex!("c779da00d672811d8a5124f1"), + plaintext: &hex!("767e120debd8a1dc8d2db8b7f4750741"), + aad: &hex!("54780846dc3df77c8d90c9f2decb0738da36fbda"), + ciphertext: &hex!("eb864412add08abb4f89d72d412d0085"), + tag: &hex!("494a547f617840267d3fed5280e3eb30"), + }, + TestVector { + key: &hex!("cc90c2f37f970f97ac97e3e3b88e8ae3"), + nonce: &hex!("67bcc08f223f12107e4d9122"), + plaintext: &hex!("b0fe0dcdcd526017f551da1f73ef9fe1"), + aad: &hex!("065acdc19233af4be7c067744aabab024c677c5e"), + ciphertext: &hex!("501cda2c954f830e8922c3d7405b5ee1"), + tag: &hex!("9deee5d0e4778a9f770367f19c74daef"), + }, + TestVector { + key: &hex!("89850dd398e1f1e28443a33d40162664"), + nonce: &hex!("e462c58482fe8264aeeb7231"), + plaintext: &hex!("2805cdefb3ef6cc35cd1f169f98da81a"), + aad: &hex!("d74e99d1bdaa712864eec422ac507bddbe2b0d4633cd3dff29ce5059b49fe868526c59a2a3a604457bc2afea866e7606"), + ciphertext: &hex!("ba80e244b7fc9025cd031d0f63677e06"), + tag: &hex!("d84a8c3eac57d1bb0e890a8f461d1065"), + }, + TestVector { + key: &hex!("cdb850da94d3b56563897c5961ef3ad8"), + nonce: &hex!("841587b7174fb38fb7b3626e"), + plaintext: &hex!("c16837cb486c04bd30dcae4bcd0bc098"), + aad: &hex!("de33e6d20c14796484293dff48caffc784367f4bd7b957512ec026c0abc4a39217af0db35be154c45833b97a0b6454df"), + ciphertext: &hex!("f41a9ba9ff296ebdbe3fdd8b1c27dcdb"), + tag: &hex!("506cc2136c15238b0f24f61b520fb5e6"), + }, + TestVector { + key: &hex!("45551710464a9ea105a30e056167cfb0"), + nonce: &hex!("5727688c9e74bcd23c14a345"), + plaintext: &hex!("6adeaaa151b58c337471653c99affbdc"), + aad: &hex!("3eebcdc5c5e9970b3fca94bd0d28ead70d1f36a94f27780472bc3cc9ff39dd7b7e3a76ebce967d6ae5724ad904dc5548"), + ciphertext: &hex!("ec18f1d675dd056baeb374829ce45a33"), + tag: &hex!("378bdc4c34753a1284b654af049b853a"), + }, + TestVector { + key: &hex!("c8650e8695396b84a3fdeea8f95c8215"), + nonce: &hex!("5a1c26d3848910137df9f76c"), + plaintext: &hex!("88aecd97435d97e2dff8763f640a5640"), + aad: &hex!("3dace39b7284ea2786a6bc670ced1c7cc0c28c4ae4e7494a6d834eb09260b68898b914d5a6b0b5334eff9669f233aeb8"), + ciphertext: &hex!("49a9398c70a89c0e43ce7a7bd7a90c58"), + tag: &hex!("8509ef5fa8046a48a5f081e5215db2eb"), + }, + TestVector { + key: &hex!("76470ff92aaeeeb24172b823fce630b1"), + nonce: &hex!("c70088e92633688bebe3265b"), + plaintext: &hex!("ff4f74af151c292a0b35ba7049c9a5ad"), + aad: &hex!("a262fc02a3d0db113493d4179cc9ec806825f20f5864bb105c6116ea72f0284950ecc8a05dc548023853a657b67ce01e"), + ciphertext: &hex!("2404868e6bfee5ffe6ec851785618aab"), + tag: &hex!("b338a9ccf10d45dfd4e0ccb8a87b3c1a"), + }, + TestVector { + key: &hex!("247b0330aa35a8a855142f933d182581"), + nonce: &hex!("6df7990b60e41f1fac5f283f"), + plaintext: &hex!("fa979c20be9f7f7e802fd5ca55c14618"), + aad: &hex!("0cec69d6f6532bf781f5b0fe70e33e1cd68f8b2019aa73951baf978bc1141b51083a8e5c785c994b12ffeca01b6c94f4"), + ciphertext: &hex!("ca4b66a09606caae8a100ce994da9452"), + tag: &hex!("534188f439b929183d21109d962145ea"), + }, + TestVector { + key: &hex!("1ea5cdfe206130596b655bc6fb935fad"), + nonce: &hex!("0ec93072e726ec58352d5a90"), + plaintext: &hex!("1ac044b5f8b693fa236986ad1621edd8"), + aad: &hex!("d9da4741fda4821eb391a23f7f6b377bed923260b6f8c8ac9bbca4edef1bc2a48a45c8676cb598a668e28fe1103efa23"), + ciphertext: &hex!("33d387a3b73a590bfd78320ddad8c169"), + tag: &hex!("ef36d6c01b5a54bf06ba218aa237fa54"), + }, + TestVector { + key: &hex!("d5a707d2e3163fbd9fba2f12e8dd980c"), + nonce: &hex!("4a4ed3d33e5a1dd6befdb382"), + plaintext: &hex!("639331ff4efaadc93e92e58de9e886ee"), + aad: &hex!("f5392e014cbe2d33cd0a0497cf0398883338748491a8543991990f9958e4a827e190e6f5ce89baac5f3bef91dcb5858b"), + ciphertext: &hex!("c986c4c805092a51103176b56507dd95"), + tag: &hex!("5da4fe4e281e995d0c75587b4945ca85"), + }, + TestVector { + key: &hex!("3d2c604398c247e3ae7d90cc1e11f6cf"), + nonce: &hex!("5dfafa52cbb52f57ac304381"), + plaintext: &hex!("9c12cb73902608e7b2ea30da7397b66a"), + aad: &hex!("53e050b559308705376a23ee2b22b7642f06ab77a00259bf7bf28cf6665912af4b8901f8af76e982a8bcbafe5ea1aaf6"), + ciphertext: &hex!("7fe6b5a881c8a6b8e3e29f1a3819383b"), + tag: &hex!("c528fddf8166a5c0ec3f0295b2c3d7a6"), + }, + TestVector { + key: &hex!("a335f0577c876e61d94522d526159f57"), + nonce: &hex!("6ea85a74513f664a907fef80"), + plaintext: &hex!("db38cf3bb14825a6c11ac978fb516647"), + aad: &hex!("038af270aece9687e34c55ec30494e9f72b6a90ac43280a9b8e958353d8c02a83ed163c6924b7201759615779cd5661e"), + ciphertext: &hex!("7e81df8bf0b671e89a639d6432d44952"), + tag: &hex!("2180e6c8fe8fbb3394f9dfdc1c439d80"), + }, + TestVector { + key: &hex!("afb3ab51cf05e0cfa2ccc2c3c8f4b67f"), + nonce: &hex!("26a5d1667feae062c14663bc"), + plaintext: &hex!("26821b2fe21c26d20843af266fce1f16"), + aad: &hex!("130b15bde79749d0577bff6c98ab50f035abae041b0d5f666db27c262c0ed2a801c24feffcfe248cf3af5afcb6b0dd1a"), + ciphertext: &hex!("c5317ad695606124662453dbfb96a26d"), + tag: &hex!("2ace2fa75daa31fe4f2020cea9e71ec6"), + }, + TestVector { + key: &hex!("0b4d033bf0182bb06f8b9714d525ee74"), + nonce: &hex!("f0807dcca355aa339febada2"), + plaintext: &hex!("7c90709d6ea3e586bbf11913bb2b5261"), + aad: &hex!("9cb373a8b7cc61eb382dfe1ea17d78877e9366207c3a5161a1f34b75ac503dc20e4af9d9962b7d4fb0f39ac9666c660c"), + ciphertext: &hex!("bfdde06e311240348f04277504fd75fb"), + tag: &hex!("1dc5898c49e2dab4ae1a599547a76ab1"), + }, + TestVector { + key: &hex!("d32b7c3cb327780d1422116c40470ab0"), + nonce: &hex!("fcc79573051011685ee0d9e1"), + plaintext: &hex!("f015f4ab3bc159db9cf6b4bb6750db46"), + aad: &hex!("cdaae988d8bf01e24a4baf489893ee329b7d0dcfdef684fe3e382b200cbd5a7ea3e46be281b0c6cc00417d67f4d3db02"), + ciphertext: &hex!("48bec210f66942f877993e9486a678e7"), + tag: &hex!("e4a3821709626cc3006c805a75f067cc"), + }, + TestVector { + key: &hex!("086a0cdd8d520a8a695d17e869e03efc"), + nonce: &hex!("f0a463c0d1e28633da98b1e2"), + plaintext: &hex!("ad6fbcf714ab893455eddb3c5fb406dc"), + aad: &hex!("aa7ebac61f7e0b9da0d941e801730a393b2728476dfd065e2f6ef4b343bc2ba6e17c59a2e5381597948a73ff25493f8e"), + ciphertext: &hex!("f0b1a368b832ed35d54c80067a06a2ae"), + tag: &hex!("e3c80910db9ce1f3ad2519fe1ee2dfd7"), + }, + TestVector { + key: &hex!("e47e1e3a95627418ed659452a3c92d45"), + nonce: &hex!("78adcf3f732dd3787cb5490b"), + plaintext: &hex!("801efcab1e329a536a7b506c4a7509ec"), + aad: &hex!("41913a6c5c4dddae06f3c0f68e8ece139ca902fe340a820e7c40d895b35e8f4cba7809c7eed0b2b7ad45c6d152ec3053"), + ciphertext: &hex!("6751a4a5e0cc3c0f46cb5540937efde8"), + tag: &hex!("7b07d21a4cbadeedcadce817d9ab81be"), + }, + TestVector { + key: &hex!("bd7c5c63b7542b56a00ebe71336a1588"), + nonce: &hex!("87721f23ba9c3c8ea5571abc"), + plaintext: &hex!("de15ddbb1e202161e8a79af6a55ac6f3"), + aad: &hex!("a6ec8075a0d3370eb7598918f3b93e48444751624997b899a87fa6a9939f844e008aa8b70e9f4c3b1a19d3286bf543e7127bfecba1ad17a5ec53fccc26faecacc4c75369498eaa7d706aef634d0009279b11e4ba6c993e5e9ed9"), + ciphertext: &hex!("41eb28c0fee4d762de972361c863bc80"), + tag: &hex!("9cb567220d0b252eb97bff46e4b00ff8"), + }, + TestVector { + key: &hex!("11f47551416154006bf89e7594ea2082"), + nonce: &hex!("d546fcd3ff2a6a17461e9e94"), + plaintext: &hex!("d3783a3d7a1e091f9cb647bf45604457"), + aad: &hex!("49efdce48e821eb14eca5f1dd661f8b6b9a5a6917b08ec9486c29124ef1e7a9af2217494eecad3d8eef9fc22d29ce18d92006de1588c3b06f8db9fe809bede40908cef4f46d2c4b6f92ff5a8304362749143dab266de45bf5b4a"), + ciphertext: &hex!("e97988a6645b93a32e8296bb1dbcb8f9"), + tag: &hex!("399345f974a82a2a75007c84aa08dc1a"), + }, + TestVector { + key: &hex!("0736a1f074919dfe23bf2a828eac2b26"), + nonce: &hex!("5b2105166bcb15efc07f1c03"), + plaintext: &hex!("402b5b45dbbef7f1d955423e95cda404"), + aad: &hex!("f331a6f6d31de69f116b27fcd7f914aa0b2c3a09490360e7863417a2346030cc99b6ba389e65e0f10fe0815d383e6f98dd8bb97d29908560ce98e4bf177e42e14a7137cfd30b7dcb4d8655b3c03514e95adf698645584475865a"), + ciphertext: &hex!("6e9e79e29f3085183e0a7ac7f6ba1d67"), + tag: &hex!("84434e0c82b858ec27e61c54ecf6cd94"), + }, + TestVector { + key: &hex!("a3929d753fe45a6f326a85bb9f1e777f"), + nonce: &hex!("aed85f89844f061113004d2c"), + plaintext: &hex!("f024e796f449712b70d5c7fe5be5fe14"), + aad: &hex!("ecef72a7ae9e6bd15e63c8e9fb2a3a7c53eb9a88bc05296ff6f25544f681fff5289a099d38abb68316eed8215ead9ca0462065bee79fdb63b4405384053fdc68fe4124a883f50a2b4bc4df6e29383c2ceea424e4ac539b26c9ce"), + ciphertext: &hex!("349e770a7f7dc2fb41fa089bf723f6b6"), + tag: &hex!("26f12bc8777d724fe59ad4fe2b9757f4"), + }, + TestVector { + key: &hex!("85abd6c7b90314b29bbd293ff113637e"), + nonce: &hex!("f48f4ed2eb7b7aaeb017ee72"), + plaintext: &hex!("542c6fa7e7cdaf21e6f6b34517f26ab5"), + aad: &hex!("2b825d477eb96e0d8d787ee4f284eca567fb5214b47e26705389cf9fce4b8dbc49a152df5e4accb0adaa19b37c90fe7d6eb456a067f1c2b63b61f6d596209f7ee96c85aa48f1870e9338743edff1d8ffb61dbdab88b6755fa135"), + ciphertext: &hex!("8374f96f03780724a8e8d1f11768d44f"), + tag: &hex!("b41b53c46ae76eff505cfee47a8daaa3"), + }, + TestVector { + key: &hex!("0a2f29710feb7c86175a37c41e32fadd"), + nonce: &hex!("b190fdb91061a08ef82100b8"), + plaintext: &hex!("dfb6284ffd6cc195ed75db0c9faf5559"), + aad: &hex!("0af4d5c1ec517a1fc104aea7d513b591b603634fc558007e06d6cd22997407eb8281a742aef6e88ba08f10c64b423121d898bcd04c1f1d6c7c12d673aa1abb004a8525f1d7abc23c8724885179e292c0565a39d9f5c6d2369e37"), + ciphertext: &hex!("fb6cb6527b92dc2ef6a227e8067879aa"), + tag: &hex!("e01037f6e9d62c18b163a714f85a92cc"), + }, + TestVector { + key: &hex!("470d577137c5014b78137dc6b24efa6d"), + nonce: &hex!("4afa7f5766f8345a1b12042b"), + plaintext: &hex!("4745cb9a3ee3a76ae166dad5a1b62b1c"), + aad: &hex!("cfdd5d42e0d0127a1c0d3c4bad302ef23ab63d879fad71109f4792e5b21156dafdcec022fc323028a9fbcafe0c3606ed61b582bfa00ba6e5c9a1b13b976d67c14c79905a769399d967b0dd45f0e74967b67d7bb67d9466618fa1"), + ciphertext: &hex!("ca58ced863696bf80ae0191de1252333"), + tag: &hex!("246d451faab88511467e38b60c5b46c7"), + }, + TestVector { + key: &hex!("5cf9cfa4d367752f1354037e132bc948"), + nonce: &hex!("13e6a286a6c7b189974d7ea3"), + plaintext: &hex!("c7ef33e7abc8f298b2f224cf5218661d"), + aad: &hex!("65da4dbd6cef7fc8a09a766a6f5b474e9711a2d40faf841c467a8838e5c8cada3f1cca74ed3b4cdda6d5d334c91763e798b9c7891b291dbf46d89ddc728d72f93c95e081bc340448519aeccc6d105bf1696b7ff9c0b7c006444c"), + ciphertext: &hex!("ad88f4e7b980be05b3df0fc05a49d1eb"), + tag: &hex!("0ad15378f18f4338966e8e17951d8dad"), + }, + TestVector { + key: &hex!("d1dafd9e07ab0f903a9b00d6e353d67f"), + nonce: &hex!("8a96a0fe88f0c7e3077c38f4"), + plaintext: &hex!("bbe4ccbd26522d35ca0d483341385e2b"), + aad: &hex!("d3e1ecd06f79e6839767d957c4d715b4228f4cbca7afa429d860c5db2a6bf4a3ade2d00b91875fedbf9b09e9ee5e69182f326fb36fcc35475efb32e5eada3a6fa6046c8d0c0ee933b0e7f37c87b3eb8b9c0c2b457f8695d25875"), + ciphertext: &hex!("9d016cd94933c07c10b92af40eafac7d"), + tag: &hex!("022e2dd58ac862962e7fa0536bad87cb"), + }, + TestVector { + key: &hex!("da5236b254ee2ff5d7e73d7a09574177"), + nonce: &hex!("d2d91f5c302212557fd62bce"), + plaintext: &hex!("3aaa2a7b2605686c3444bb16df8c57a5"), + aad: &hex!("9ddfa05290e228e5eceb7e96de3a097afaa96d8d3e0d5ffc0e0116f43814f5b0947919267c2dbf0e5f52a97296e7826f2891dd4a043c845046c9ab9ae8327346c7695a72875b9062dd5578be8985edf9faa4917981aacc6f112f"), + ciphertext: &hex!("202a8e67d7f22ff83757fc9ef9b20a0f"), + tag: &hex!("a55bab242a4ebe73b52cc7202f5cdd57"), + }, + TestVector { + key: &hex!("c3e577da2a2b7fdd05c99dc6fc81ccdd"), + nonce: &hex!("dfa747b08f536915345766f0"), + plaintext: &hex!("b863120426d4cbd5c73124c7b0342fa7"), + aad: &hex!("872a6d0e3a0a3b32f4c92a4e5baf7efb7270a9ab9cfcd3c1173a2fcb2c155a923f9d8b8e35a965b11d15e2e0cc591e953da81c172b8882344cff7b40eeaa30d4793900dd85cb65fbeae9d1d3b2a62c66cb932dac1e6806ab6150"), + ciphertext: &hex!("43da888047cb1cfc7dd42329310c8234"), + tag: &hex!("f8267635aa7b51b89c80fa979861eb3f"), + }, + TestVector { + key: &hex!("69e1c0917ca8d49aa69f38cf9c66eb4d"), + nonce: &hex!("0c55672336d219e64c60e15d"), + plaintext: &hex!("7dac3e31269dd79399c94798f4bbc640"), + aad: &hex!("c1b423f27d794e947bc56aace3995065279221f5b8bef6568b5b2882209bf0dd7776e9ae6eb1a1eda0b768aeaaed9e3884cc3968b6d179e9e5abf08df8261c3ee54f8b0eaf2646cb221288a879c5ea4e9183805dc1da8a636a58"), + ciphertext: &hex!("37d215a13362bf087bcba8f95901eb05"), + tag: &hex!("1b3eecb7ae9386dbc1409e70f5827f58"), + }, + TestVector { + key: &hex!("08818d516558631161e49eebd621f78d"), + nonce: &hex!("f1f855eb8aeccc9ddf7aa80e"), + plaintext: &hex!("1a89c9c9623a26b7c8062c5f6a5f7f98"), + aad: &hex!("68fedf6a42b780eeb011aa0b242636668e5c8941d6045b05c948f82c5db3977831435ab4049895b607e854f710e3d8b7a26afaa2e7913093313e93c3e106a8356d6c44579398ce4341aacb3b726e7f42fab75934920df230cb4b"), + ciphertext: &hex!("9e12e3842ff7f5c25a171cc4c5a3dfa8"), + tag: &hex!("01cd4980d92df6739bedf22201a2cc12"), + }, + TestVector { + key: &hex!("bfa4a12b357605b11e65fa92b90d22fc"), + nonce: &hex!("9aeb721b698db40dc9080e23"), + plaintext: &hex!("9383358a4065f3e365924f7fa664012b"), + aad: &hex!("53bc66164811866e12ebcd64447c999777378119a257fe00d45b5c9392d5618f2c2c784696f5a9fea85d0f8c9cb5438b15b3f5661d49e0b0980ff61aeee0cdf650ab4fa82bcb0d0390f99daf02d8561bf5bca5627e3b194951ae"), + ciphertext: &hex!("df469d986744c33244682184912cdd68"), + tag: &hex!("8c12f8338ffb7840e085fdedaa6ab3cc"), + }, + TestVector { + key: &hex!("e16a57c83f230c368a0f599a7ebf3f5e"), + nonce: &hex!("2631b811ea57cb7d58fa232a"), + plaintext: &hex!("2a37e380f575e4365116fe89a58ee8dc"), + aad: &hex!("d5bc101ad26f7d03999eac122f4e060f20a402ff8a2a0324a77754e1eb8b7a65f78743ac2ee34b5429ec9fd6120fe6d17e71f738cebf0ae39a5be5a4dde85384d98cd90d218785b08daa662f24187156118fba981b9691cf12f8"), + ciphertext: &hex!("9278d1eab07dc7fa68742059d9fdbe60"), + tag: &hex!("27a474294ff811db4f6e0c88b1a86b0c"), + }, + TestVector { + key: &hex!("fe9bb47deb3a61e423c2231841cfd1fb"), + nonce: &hex!("4d328eb776f500a2f7fb47aa"), + plaintext: &hex!("f1cc3818e421876bb6b8bbd6c9"), + aad: &hex!(""), + ciphertext: &hex!("b88c5c1977b35b517b0aeae967"), + tag: &hex!("43fd4727fe5cdb4b5b42818dea7ef8c9"), + }, + TestVector { + key: &hex!("6703df3701a7f54911ca72e24dca046a"), + nonce: &hex!("12823ab601c350ea4bc2488c"), + plaintext: &hex!("793cd125b0b84a043e3ac67717"), + aad: &hex!(""), + ciphertext: &hex!("b2051c80014f42f08735a7b0cd"), + tag: &hex!("38e6bcd29962e5f2c13626b85a877101"), + }, + TestVector { + key: &hex!("5bd7362f38bafd33ff4068860eb35c27"), + nonce: &hex!("6064368166c48633b090cb9a"), + plaintext: &hex!("634852a6b68543ead889aa19ef"), + aad: &hex!(""), + ciphertext: &hex!("3a44f911376c371e6d597539d3"), + tag: &hex!("452b67e9d36a9ec5a893272b4d2f2103"), + }, + TestVector { + key: &hex!("2591360228dd945aae8fba95dc2725c5"), + nonce: &hex!("2adabc15c16e5c5954c8ab01"), + plaintext: &hex!("c580b051600dd902b273e26677"), + aad: &hex!(""), + ciphertext: &hex!("9ac66aa93d7547bc0a45baf5ac"), + tag: &hex!("a609413c9c13817287f39cfcf4da2e6e"), + }, + TestVector { + key: &hex!("3c85f64e35953f2caded63f987592611"), + nonce: &hex!("7ad13cb40e21ee633251968f"), + plaintext: &hex!("7bddb4037c2be00f4ef6f85ccd"), + aad: &hex!(""), + ciphertext: &hex!("9c2030e3e19e490c309610d889"), + tag: &hex!("b0e4080a8dae54a6770f4e21d5324e90"), + }, + TestVector { + key: &hex!("7b8d32382d29c00198f1d41fc6b52b8c"), + nonce: &hex!("bd65d7281a9a6aa9fc268f61"), + plaintext: &hex!("10f27dabb9c9e9facbd21b13cd"), + aad: &hex!(""), + ciphertext: &hex!("707efbd54aabbecc22ee6b5304"), + tag: &hex!("ca35f5dea869508653ce556c9c05d32e"), + }, + TestVector { + key: &hex!("dd95a8ca25883353aff5c414ad9ac5c0"), + nonce: &hex!("be2ed3a4d38fa65cf341e5ee"), + plaintext: &hex!("5b0c29c8bef219d52932b33041"), + aad: &hex!(""), + ciphertext: &hex!("4918ace25961fae06dbd891d16"), + tag: &hex!("ae6f069accfacba61a38323dd65f4c02"), + }, + TestVector { + key: &hex!("4db01983f6ad9e39385070b810c26c80"), + nonce: &hex!("2342dc3fb660e3925509b6ed"), + plaintext: &hex!("5cef6c4f05073ae39e05356dc5"), + aad: &hex!(""), + ciphertext: &hex!("12e41f4373f1e5dcfcf758e2c8"), + tag: &hex!("36fe1b8981946fd16cf12ad80f04d59e"), + }, + TestVector { + key: &hex!("8d59f931d4cf8a2683e269008ee86062"), + nonce: &hex!("7ac862a09c3408b667e8cd38"), + plaintext: &hex!("2c47413a8256f25677b1de8ef1"), + aad: &hex!(""), + ciphertext: &hex!("284ff4dfe4255f56b4a56585a7"), + tag: &hex!("16c0a4a5826e291d4b3f7ead6892c392"), + }, + TestVector { + key: &hex!("01c681e2cf1d7c8484c3811201376187"), + nonce: &hex!("56a8f48a3198b977f5064d02"), + plaintext: &hex!("37dc0f572c9e51c6fc18642d7f"), + aad: &hex!(""), + ciphertext: &hex!("54922c65023605c1eba146d448"), + tag: &hex!("dddbf654030e73be0dd6d26b67efd0e6"), + }, + TestVector { + key: &hex!("dae6cfda8979801d9399006797a2366b"), + nonce: &hex!("1cb41dac13ffa72e72a405d0"), + plaintext: &hex!("9f43ac53d4cec80dd29a902d86"), + aad: &hex!(""), + ciphertext: &hex!("e156a5f0711096cadd489937a7"), + tag: &hex!("dfa2d2a342b78ac6e7276365f2fa6dc0"), + }, + TestVector { + key: &hex!("5146ebe3d1fdf166ffa4099b638c5b64"), + nonce: &hex!("10014449817d881328c2b882"), + plaintext: &hex!("700af6989527eb16ffab6634d2"), + aad: &hex!(""), + ciphertext: &hex!("8ab35c288f09084da3c0cbd240"), + tag: &hex!("eec8232f2907b2e1cb2c940622530d25"), + }, + TestVector { + key: &hex!("cd70f86fc0a1780740fefef5742e4398"), + nonce: &hex!("c2abd119f22d310b34f41c5c"), + plaintext: &hex!("39fb497a2691264f02fcba4887"), + aad: &hex!(""), + ciphertext: &hex!("01339a3a9119836f6b038a1a50"), + tag: &hex!("e45a0a12c84ebaaf1885f457507b9a5e"), + }, + TestVector { + key: &hex!("8828454ceefd9004e30ae8a03d71f9d1"), + nonce: &hex!("8d9e3c61aa687a8f2b9ee30a"), + plaintext: &hex!("a94b020f4724178a3f4f9137c5"), + aad: &hex!(""), + ciphertext: &hex!("c4a94f89e03305aa415c7b350c"), + tag: &hex!("1acc1c75b9fc826af2e950cc7be6cf64"), + }, + TestVector { + key: &hex!("47982f133cb72342dd642f3475bde634"), + nonce: &hex!("8304304acea2def778f2bf9e"), + plaintext: &hex!("2c97a5fb6df85153a5c3bf414c"), + aad: &hex!(""), + ciphertext: &hex!("37e0962960edcf0a09a8538cac"), + tag: &hex!("07459fa438e1f159a6649a8ed6f934b8"), + }, + TestVector { + key: &hex!("dfefde23c6122bf0370ab5890e804b73"), + nonce: &hex!("92d6a8029990670f16de79e2"), + plaintext: &hex!("64260a8c287de978e96c7521d0"), + aad: &hex!("a2b16d78251de6c191ce350e5c5ef242"), + ciphertext: &hex!("bf78de948a847c173649d4b4d0"), + tag: &hex!("9da3829968cdc50794d1c30d41cd4515"), + }, + TestVector { + key: &hex!("3016620015db1d85eef09bbce50ae294"), + nonce: &hex!("eb481db3a52201173e2d4ad7"), + plaintext: &hex!("38b57c0d4151d7ee57e032829f"), + aad: &hex!("fa3d95b81a619638cea3f68dfbc02133"), + ciphertext: &hex!("7738601ab14748223164d1f69d"), + tag: &hex!("63ca9e8c27d9fa837ca4a0bb7039e390"), + }, + TestVector { + key: &hex!("b3ba382909e94ef5d318ee32cb54a33e"), + nonce: &hex!("3cf10b1700711486119cfd9e"), + plaintext: &hex!("4a90ad3f97c9c7e82efcbb318b"), + aad: &hex!("d1e17c0189b04561699bd2f791d69491"), + ciphertext: &hex!("bdf6a8a11288e83126932cd946"), + tag: &hex!("ca7ff7458c3adf388eef7e0e32d6b2c4"), + }, + TestVector { + key: &hex!("0a8fc9e07eb50b092cd9fccb3db2373e"), + nonce: &hex!("371d0af80bb20f2ead09dc22"), + plaintext: &hex!("7826bf01e962a201f5c8e7f742"), + aad: &hex!("9f42976847531ddfe428694f61260b2a"), + ciphertext: &hex!("665cdb3e2568ee1157d877dd25"), + tag: &hex!("c66fc129ecb30ea0d54b6d6932d9d7a8"), + }, + TestVector { + key: &hex!("3d1fc93233e86cb882e4cd754df63754"), + nonce: &hex!("1ede8cadc78bb4733c341bac"), + plaintext: &hex!("74232bfedc377efd5a63ab77cc"), + aad: &hex!("5807c856944fee1e6c2e70ad9a08de00"), + ciphertext: &hex!("ff3e09311d59bf1f3dff474fd4"), + tag: &hex!("7dbaf75ab6084504e080460ebfd255af"), + }, + TestVector { + key: &hex!("936ba9fc715c6e2d70a7986b14b82ce6"), + nonce: &hex!("45b3239d045bd56ea5a0e77f"), + plaintext: &hex!("941255369704ec192bab1cf039"), + aad: &hex!("a2570d9548bd6c05f824577871784ee4"), + ciphertext: &hex!("b3ead079446053a8206f4a37a6"), + tag: &hex!("fa5d98f053e8520f45e1597ee38b3751"), + }, + TestVector { + key: &hex!("96a05889a7591c1918472fd26977451a"), + nonce: &hex!("7d80492afefce80da6689ffc"), + plaintext: &hex!("b09b2dc5c5463a03dd5c9b0ecf"), + aad: &hex!("f4ffa36a478c795e0d28d37fa9e6fcc2"), + ciphertext: &hex!("f7cb053d447dddcb6e3a2d891f"), + tag: &hex!("2a38f63a1b7cdccec426683b34a44ff5"), + }, + TestVector { + key: &hex!("7c98567fb5ae9601fca412e72dc9fe2f"), + nonce: &hex!("1218ce69073eefd25a7944e6"), + plaintext: &hex!("0df75d39d8facc3accbdefc87c"), + aad: &hex!("df4203c3402d2b328bcb44e7683e08ab"), + ciphertext: &hex!("7e5ca0d1c1ff83bc3633f2301c"), + tag: &hex!("7ea717458ca93d8844da5df7ef74005a"), + }, + TestVector { + key: &hex!("4e1b199c12f12b591c051c7edc608d11"), + nonce: &hex!("a4bd3af7f35d0fa21f73641e"), + plaintext: &hex!("051ed5d700a7e59990f0358928"), + aad: &hex!("dae2cd749195bcfb67a663789e85995e"), + ciphertext: &hex!("ae50359f104ba2089ae98eb45a"), + tag: &hex!("c08a7cce7c38626604032d2be9bd519c"), + }, + TestVector { + key: &hex!("9491cb5d4f2b94cc5a50dc67bfedd074"), + nonce: &hex!("8377399607418e8d51dac5ea"), + plaintext: &hex!("2a1e50ccb5a52be3d338e8f0a6"), + aad: &hex!("972d9c486961334afc104765c2863253"), + ciphertext: &hex!("afe759b51318f67d872a1dfdae"), + tag: &hex!("77a4493aed7e3a6e014d0a1a314c3f86"), + }, + TestVector { + key: &hex!("0993571183089c4a7bd8e8789854c265"), + nonce: &hex!("d72ce6db33b33e2a2d430d2e"), + plaintext: &hex!("daf7f3ec2e2592c65847734f40"), + aad: &hex!("e47252d2a8ef5190faf328176588609b"), + ciphertext: &hex!("c6fadec0c7520f717144f0104a"), + tag: &hex!("6670c8cbf7e9eb431e899f61acccf456"), + }, + TestVector { + key: &hex!("d45b6c85293d609310eb3179cfbac4fb"), + nonce: &hex!("b02328302cc469cda1c7eb48"), + plaintext: &hex!("70f5af8c1da987f6ab5dea31de"), + aad: &hex!("74ca5b46ab31a11b4b4c253666844b32"), + ciphertext: &hex!("da6b359072accf5f036c85600d"), + tag: &hex!("d8e496c53797b124e356967ee525c0ca"), + }, + TestVector { + key: &hex!("9326155a9b81013c1edb143f9f5ae9d2"), + nonce: &hex!("c95383eb3050ebea4deb80e9"), + plaintext: &hex!("aa80cbebfb01b035a4e1e50e35"), + aad: &hex!("64a73f0497746436ac94c3c18e1ef6e1"), + ciphertext: &hex!("45ec8de633c7bb585c0a7fea1f"), + tag: &hex!("537b6103b0f7c5dce82bfa37c2734877"), + }, + TestVector { + key: &hex!("9192ce4d383752e9d9c66b93ef7f05ab"), + nonce: &hex!("adabd3baa4374697c53b4289"), + plaintext: &hex!("c55b5d16e3cee22bad1f5420ba"), + aad: &hex!("14cad0cb1736ccde73f86897ea017570"), + ciphertext: &hex!("3aa22a57646229fd33bbfae6ce"), + tag: &hex!("5ce7cd439823538fbc194886348ff029"), + }, + TestVector { + key: &hex!("3dd104297e803dc22b8f11f1951c8508"), + nonce: &hex!("8abd1fd8cd88ef848e8ce082"), + plaintext: &hex!("e1eb53704ccd5d7992f1c91097"), + aad: &hex!("96f6c82aa93ccca47056efc3ac971613"), + ciphertext: &hex!("8e4125514870003f0b0e8044a8"), + tag: &hex!("d951047cd8d50ca5f7ffdebf78725c56"), + }, + TestVector { + key: &hex!("fe0121f42e599f88ff02a985403e19bb"), + nonce: &hex!("3bb9eb7724cbe1943d43de21"), + plaintext: &hex!("fd331ca8646091c29f21e5f0a1"), + aad: &hex!("2662d895035b6519f3510eae0faa3900ad23cfdf"), + ciphertext: &hex!("59fe29b07b0de8d869efbbd9b4"), + tag: &hex!("d24c3e9c1c73c0af1097e26061c857de"), + }, + TestVector { + key: &hex!("544ec82f837fbe561f371b266cc52ed5"), + nonce: &hex!("b756952a0e98cf4cb024a499"), + plaintext: &hex!("a2e81f78b8e3e39e6cdf2f2982"), + aad: &hex!("cd0a24fd0f6a693a1578b9dfd2a212e990aa662b"), + ciphertext: &hex!("a4f08997e2d93c3c622137f9a8"), + tag: &hex!("059cf266240236fd3f41a3f4fabb36bf"), + }, + TestVector { + key: &hex!("91b73e2061b02b1e5e4c150ce1df4d27"), + nonce: &hex!("8b15597c84db62e2d8b03857"), + plaintext: &hex!("21e1b4b405050408b08e5e2a97"), + aad: &hex!("eba7f1a060e81f4ae7a77346d74dae9263ec284c"), + ciphertext: &hex!("0f819b25fc683c182533503ad8"), + tag: &hex!("5a1da6290fef801f2131614f7cd2d0bf"), + }, + TestVector { + key: &hex!("e6a1e4260efb2bb3073a1ab475e901b9"), + nonce: &hex!("be445fbabc3866d702965b08"), + plaintext: &hex!("2897d77c7f20679cbf27181aca"), + aad: &hex!("9452137225de644f94556b382ac13915e8261913"), + ciphertext: &hex!("d56e2d6d52923205291fffa50a"), + tag: &hex!("a6acf19c5434f95e333827ed9c7b88ec"), + }, + TestVector { + key: &hex!("49c18bed9412346a8ef02351cd4680d6"), + nonce: &hex!("7b5a7e9beec5b627f78bfd1d"), + plaintext: &hex!("bafe851c800f6df67e941fb496"), + aad: &hex!("251b9e935d72c1ed05795c74c88b6d4a03bd729b"), + ciphertext: &hex!("6f0c2eeb0a37d51d78314c3414"), + tag: &hex!("1a75d962d34205d60f79e4de87381046"), + }, + TestVector { + key: &hex!("ed0334239eb6f1ee1d686df163d219b7"), + nonce: &hex!("6146338e40fcd8bf264bc83b"), + plaintext: &hex!("954ddf553bf66473657110a028"), + aad: &hex!("cdba8eb5713075497eb5abf1434045a010f81832"), + ciphertext: &hex!("3eb76dfd40c5ebc840951d1b28"), + tag: &hex!("5d5aa1dc4a663eeb847e540f9a468155"), + }, + TestVector { + key: &hex!("14ab4d3a91e8f8320edba5b045b9474a"), + nonce: &hex!("83c6ac97704afdd24fbe3eba"), + plaintext: &hex!("de5f1521ce9423526932917863"), + aad: &hex!("e3981ea2e7468973a6a998deb7676d06630bad47"), + ciphertext: &hex!("19936ae7d6620899649a5c7887"), + tag: &hex!("66a805353bde0b1315f772d49eeaf8f2"), + }, + TestVector { + key: &hex!("f822c39eaba3ebb3d8b58cff3845ac59"), + nonce: &hex!("1f5d11c469e9fb74f19d8581"), + plaintext: &hex!("c0fac87ca518ab22853c8fa02b"), + aad: &hex!("b33871f65233bb2ba773cd8fedb517179a2a24a5"), + ciphertext: &hex!("a072381956210925148e3bc55d"), + tag: &hex!("f716ec012f7f9be988a9e450da7aa2fe"), + }, + TestVector { + key: &hex!("c566e9995c03a777f9999446382ef2fc"), + nonce: &hex!("4f343477387f48b9c6d15e69"), + plaintext: &hex!("a9eafd8903c71862c7c99cf068"), + aad: &hex!("c2b73bf0d1abd6d484df725a760f184bc315e0ba"), + ciphertext: &hex!("9f9551a3ad017c3fa518964704"), + tag: &hex!("15383fb8ace2e001c194474031c14e87"), + }, + TestVector { + key: &hex!("fa2fe01b7cb4ca24aba5880da268398a"), + nonce: &hex!("93f19d0a8edf1f29364743f2"), + plaintext: &hex!("006c3b0681f21ad705cf94d070"), + aad: &hex!("e80f337eb56c336d1e928db3b7eeee968e2f75bd"), + ciphertext: &hex!("a73b314c7f0bbd79ee56bd77bb"), + tag: &hex!("d2f9ecc80a5ae2e1d2735b9fbf01be25"), + }, + TestVector { + key: &hex!("77b34970d4300069e0092cd64ad17305"), + nonce: &hex!("d88e76814f3cf7a2f887e371"), + plaintext: &hex!("4e65a46a4579f08130272e5c83"), + aad: &hex!("7c772010e83befec22f6aebe8e18a0437f50a573"), + ciphertext: &hex!("d2d8ffd3f841e6039f1d551905"), + tag: &hex!("ee2c73c455081d84a631b18a7fe5f789"), + }, + TestVector { + key: &hex!("3c1c2aae3954d6f645ce2a697a4f3af8"), + nonce: &hex!("04b54f6447ebbcfbda57445a"), + plaintext: &hex!("f73e226b50a75558a389ccd738"), + aad: &hex!("e7a9d5c8328278311dca3e84da2bf0f573198d4f"), + ciphertext: &hex!("770e4b798b91850ec4e90136ca"), + tag: &hex!("8cb9ce2c90417f1c49a235de9b2ada2d"), + }, + TestVector { + key: &hex!("15ca2910df4e43c44a7c01d485b99157"), + nonce: &hex!("4a65ca77dde14bbf131dd597"), + plaintext: &hex!("786744b394e40bfe5db938c0ad"), + aad: &hex!("f9011e2cfb9c82d37f6b3f2af730a2e28c036f2c"), + ciphertext: &hex!("43c00fac7c11c3273078f09fe2"), + tag: &hex!("955beaa87737d3094bacc42a15986d83"), + }, + TestVector { + key: &hex!("998990fe4a9a6c56efdf1deac41a1ef5"), + nonce: &hex!("1b7a766436f4a674b5ed86ab"), + plaintext: &hex!("e53a9954c3943691dee5b17991"), + aad: &hex!("2eba6f2c61704917434507f4a2db16c4906bb4e5"), + ciphertext: &hex!("e5682045f438f4a96ac870690b"), + tag: &hex!("1afddc03809e565321ea66d8c83a324a"), + }, + TestVector { + key: &hex!("268ba76816d00e20997da268bd8faa18"), + nonce: &hex!("21cd5d21ed193612fd6db854"), + plaintext: &hex!("16339986d092027e7cbece0fb6"), + aad: &hex!("1971b90da0554ee7b6b0a5e9a782f05d511c1b99"), + ciphertext: &hex!("7cfd53b8c3c834c213d9860499"), + tag: &hex!("1f8522bfab97bec436d768332ae37c20"), + }, + TestVector { + key: &hex!("cbd3b8dbfcfb11ce345706e6cd73881a"), + nonce: &hex!("dc62bb68d0ec9a5d759d6741"), + plaintext: &hex!("85f83bf598dfd55bc8bfde2a64"), + aad: &hex!("0944b661fe6294f3c92abb087ec1b259b032dc4e0c5f28681cbe6e63c2178f474326f35ad3ca80c28e3485e7e5b252c8"), + ciphertext: &hex!("206f6b3bb032dfecd39f8340b1"), + tag: &hex!("425a21b2ea90580c889134032b914bb5"), + }, + TestVector { + key: &hex!("a78f34cd0cac70aab64acae18e3cbeee"), + nonce: &hex!("3c88570498da96e7b52c7929"), + plaintext: &hex!("bf61b1fb3b24506cc8c730d399"), + aad: &hex!("36b66ff81ec23a28944c98d2834cc764bb70703f0b26e079b6eb008ec11ccfb54a189ad393878f0824436ae69e7e2d8c"), + ciphertext: &hex!("f72057f873ad12b5e19ce433e0"), + tag: &hex!("1fea5b4176464b1f5dce11558a75ec21"), + }, + TestVector { + key: &hex!("0e038a1368999e2e70b6e350e01684bd"), + nonce: &hex!("a58952b8135420cd0f61be18"), + plaintext: &hex!("801bbabf908ff04d5856cadc2b"), + aad: &hex!("765203b3d61537be2883fba9899c3f3eff60cb9714e54de3a78a96dbf29cf53d82112e19b10141f13b11627a8fa55026"), + ciphertext: &hex!("7f0f35cb15fb4e7e3820d9ab1f"), + tag: &hex!("8dce643720d9d6f90f13a155e0be5936"), + }, + TestVector { + key: &hex!("b69d82e78b22a473af6234066b891778"), + nonce: &hex!("0415ab2f32d2a15006c3bdd5"), + plaintext: &hex!("d4ab346edaca5c84d45b45c6fe"), + aad: &hex!("f0be65105e1cd4fd1a272f7f6db958040b44edd0608b2225789cf34217cfcd6a5879b8e79dfa7d24345ad20f0c4f9a1c"), + ciphertext: &hex!("ad77c91c6ba6cb29eb5e4f6071"), + tag: &hex!("f67061dbded1a8df55fe9fcd68f61168"), + }, + TestVector { + key: &hex!("78faf937758f34b6d314e2fa30f60c2e"), + nonce: &hex!("85c9ef0e17ebcbb7227ba4c1"), + plaintext: &hex!("0ad91a8be4ccd6ee0ce75413a3"), + aad: &hex!("70fec6e608b6264228b822e7490e5e76398494c6489de5e839fb80513442cd0dfcf883000995185213e283f49234280b"), + ciphertext: &hex!("4298d0a1ea4c54950021d91921"), + tag: &hex!("19893b83fd24a8c21bb4ff14612cdb27"), + }, + TestVector { + key: &hex!("f812627cb6dc5921d3567dd17f1f3b9a"), + nonce: &hex!("37beb9c060f240d9ff78c844"), + plaintext: &hex!("dbce5235bccd0bc6249b30e9b1"), + aad: &hex!("a27fd811330efa672bbfa1cb2a221fa45bab88c5183eed6383e34c7e7450fd577f6c783c75d9ecaf74bb2ad2b2e8c143"), + ciphertext: &hex!("100ab04960a762db73174666b4"), + tag: &hex!("122172ee3093b8cb238a7c991da3b94f"), + }, + TestVector { + key: &hex!("a495f82751bf7781fee36d265607aa6b"), + nonce: &hex!("729a513baf1ccd1c97311700"), + plaintext: &hex!("0ac413fa533b01be459e95d784"), + aad: &hex!("3a44a7ea6d3ed13005d46c19f5ec7d2f7e50e8a268fc49e3c6fe15b41b6f6ea7245d88cb358e53cdba82cf297ea0ea97"), + ciphertext: &hex!("d05f52a875f56d3a6971495b7b"), + tag: &hex!("14ae378a5f75b386202194c677377803"), + }, + TestVector { + key: &hex!("63eed2623c80ea1c5d06a0003c4b3065"), + nonce: &hex!("3a276f4361cc6d7bdb340986"), + plaintext: &hex!("65067b281d5aafc0146d206fe2"), + aad: &hex!("d484646fdca9f5d3d4fa2c85ed145f99e3c73f4d81f6c08eadf318694bd7cc94382cc73a5610f9cbfd9987dc167d670c"), + ciphertext: &hex!("4cf2ff71e44a39eb6a9611e150"), + tag: &hex!("113e7d239946d784c331bccd5e098194"), + }, + TestVector { + key: &hex!("3ad85304b4267dd603070c1a999eb658"), + nonce: &hex!("2a02a6220d395dc91fa0d220"), + plaintext: &hex!("e0620a9e28ad8dba32b601c662"), + aad: &hex!("7a1511cab8aa9f7277f7b26cdee602e4a608b5565a20eedd66d70507a90e79da6521cae1e2ca810771392567af51d883"), + ciphertext: &hex!("cf38f7abaf4f92414ecb7021a8"), + tag: &hex!("8bebb0b62c81a4a3ae765dbc7c8747a8"), + }, + TestVector { + key: &hex!("63010b75ada3ccd0c1338613d57e3f53"), + nonce: &hex!("9898b912da0a2f169c3bf907"), + plaintext: &hex!("fc10d85cb5485be263374aaadf"), + aad: &hex!("565e1e581089098451ccaf1d594d1b4edbdcd5cb00ba4b2e08e4db780ce8258df41d01dbdd50521b75a72a8259f70321"), + ciphertext: &hex!("8f2390e88bc6f18ecdc1a1b9d2"), + tag: &hex!("15c40e98b6bd5b07d4757727ad6b7b71"), + }, + TestVector { + key: &hex!("d2a18188bb88312ec18916431b6dd880"), + nonce: &hex!("aedf2efb80b633d7afbe5a51"), + plaintext: &hex!("343f8363662077fb0ab50ba284"), + aad: &hex!("52492921f6b76e888baa5a4cb391af04faeb31bf00e8ed4363482fa95148f573b9adbebabf48d3ad33cb5ed3c0d6df61"), + ciphertext: &hex!("97a6f44a04055850779bc70842"), + tag: &hex!("5ffb75b58b4572366fb006455f692f93"), + }, + TestVector { + key: &hex!("7b3b81fa87f6fc20795e5fe33fe0d1e8"), + nonce: &hex!("b858127e11ea0d5ba523f7ce"), + plaintext: &hex!("e574920cdba3524bac8c2294bf"), + aad: &hex!("c23d4cf74bd76adee0973e4b3ac31a96fdeb0f2455e044d2d1b82ebd1937e09623921c81b6a1b9698b5b097b7c5c483d"), + ciphertext: &hex!("016a7b57db778fd019628016f6"), + tag: &hex!("e8035022b05e4c10792321d195b75854"), + }, + TestVector { + key: &hex!("852c34591e7ffef09259a9edf25020e1"), + nonce: &hex!("9e4243f5356d48f853cc3acb"), + plaintext: &hex!("c991389c242c48e31a9ae00d59"), + aad: &hex!("8a4514a5e7d4e2e036490b541206bfe6471c14bb50af6fc869048bae954b5dd813429359ee5eef23ee42ea35e0c36bb8"), + ciphertext: &hex!("5c319983e5e276658f10a58edb"), + tag: &hex!("5343086d4ac0e45e4adc6dc27d566296"), + }, + TestVector { + key: &hex!("b9840f1c04f7c9e9b2c9bec0c6176738"), + nonce: &hex!("7af462cc891270fe78566890"), + plaintext: &hex!("c9171685284b205bf4fd9d3f45"), + aad: &hex!("493ef83c18389c1e52050d2569f0d6f955cf8e76cf0a1697ffcb1665e285fe6e3595f456cff7f32feb7bde4cc82d4ebb"), + ciphertext: &hex!("988c2c3df37c68fc8bc7a29b11"), + tag: &hex!("d81b0bc3543fef4a929867bff63a1c17"), + }, + TestVector { + key: &hex!("9449043071de904f5e6e7922b263f122"), + nonce: &hex!("39f0713e60cbc8e41e4d7328"), + plaintext: &hex!("869a917e056f4460d6c2076d10"), + aad: &hex!("0b7a25e3e3027095772f3f8b8336813b607031eddd6f354a171e4b585504952cb51326c3edf4c48e41498da441cc090f"), + ciphertext: &hex!("cc878c8f760961e4ad08ad09a5"), + tag: &hex!("c303c9680b673c049e9b7bec8c28428b"), + }, + TestVector { + key: &hex!("e5b1e7a94e9e1fda0873571eec713429"), + nonce: &hex!("5ddde829a81713346af8e5b7"), + plaintext: &hex!("850069e5ed768b5dc9ed7ad485"), + aad: &hex!("b0ce75da427fba93da6d3455b2b440a877599a6d8d6d2d66ee90b5cf9a33baaa8329a9ffaac290e8e33f2af2548c2a8a181b3d4d9f8fac860cc26b0d26b9cc53bc9f405afa73605ebeb376f2d1d7fcb065bab92f20f295556ade"), + ciphertext: &hex!("c211d9079d5562659db01e17d1"), + tag: &hex!("884893fb035d3d7237d47c363de62bb3"), + }, + TestVector { + key: &hex!("1b96a8699f84058591f28590a5e63c0e"), + nonce: &hex!("d437b28673240ddc63d22d2b"), + plaintext: &hex!("802192b9c2d78e1df9ac223598"), + aad: &hex!("0f985a66d350c153a4882d0a4fc6e1b8b8450cd0825182358521b1be5fc734338af72a48170fde7512a8a92ac81d12e3a7fdcf7d98933732a9893d92d9435fcaee6033b726d28f73c5f76fd6b93d13bc8904d11cd4a713cd353f"), + ciphertext: &hex!("8c13cded61d08c1f2db878378e"), + tag: &hex!("43ee877c121d4a329e81e51d68a9d845"), + }, + TestVector { + key: &hex!("94874b6f3738d963577553a19155f4fa"), + nonce: &hex!("8e9f61edc853db24fb162062"), + plaintext: &hex!("ab5fa8933bf8b4b6eb8fd4a0f6"), + aad: &hex!("d30b11456b68d89dfecc00930c5102cabdb207abadfc7e26286e822a14c6e723ea5492ef53cc2206dbe9860583e2fd2a8ed26fcf5dba8914cae4829ff83745bcf203c2c9729ec5f635d368f8697139b18f1c39ea4e3e849f4b3f"), + ciphertext: &hex!("e359459af9418493dd8af46d27"), + tag: &hex!("4dd94f3b128f34ddd4036886fa084506"), + }, + TestVector { + key: &hex!("7434e4ec0aa26aa89f7a025b7cabee6b"), + nonce: &hex!("ed9fa99d2a22cb4fcb2d25ee"), + plaintext: &hex!("fd53183688a51d4bcbe52f6d37"), + aad: &hex!("ec9bad331852febf4ee1928c65d57df5eea95caf852fbb821c022978d33d07fec1ced606caed13624bb6d08a22da7e23e39298e10395b29d91a46220f64ca4d7d333d93ddec412322b67d5e101784e0a65088779b8c44f7cd05d"), + ciphertext: &hex!("97f74cd6ff2ea7d43262fe6f19"), + tag: &hex!("7ed5bcf0ce0448fa661d0c0fbcd36578"), + }, + TestVector { + key: &hex!("72a565d3b3b6814bea37db7f659ba1d2"), + nonce: &hex!("6f975cfb8f0973eba7cff602"), + plaintext: &hex!("46a9956585a9c06507ec073e2c"), + aad: &hex!("bac017084cdd4c035a1917de4abc453e875d1ec9f7d603683cccdd64e6273eaf11619acbef407fed03ff3e76373132c5bd680f7645e4fcdb09ccc60ce65584f607a090426f660df5bf4daba95e7cfb3f30e4197218f8decf0dca"), + ciphertext: &hex!("a657482d12377846ebe3ca6f66"), + tag: &hex!("0f10964e776b25ae079b357e199c8cd0"), + }, + TestVector { + key: &hex!("a85a8e0f16c7af9e7f32c817611a0249"), + nonce: &hex!("12b4a1c1bed206c426c1d977"), + plaintext: &hex!("4544079578dc90631c616a89cb"), + aad: &hex!("40741eac93ba6f3b60fdf1ac1b17fa3dd70d1ad4755f5a6bbd59c9c5aa99bb65bf7e077e5863b1d0b93104dea7b8e455d7bc149668822dc788b46980b2b439c33e10cc7c17415529c942e9eaf33eaeb627bc4cffc35cae4d37c9"), + ciphertext: &hex!("b0be95166bf557bae6152b360b"), + tag: &hex!("46391f35d73901732a7b9c7eb976aed9"), + }, + TestVector { + key: &hex!("96c837ca5294446d389a6f06cb42e737"), + nonce: &hex!("b37ce0928e17982ef783b2b8"), + plaintext: &hex!("8b77fe7aac6a70fcae1ee74157"), + aad: &hex!("8f67abbb7a9394821c7196349262c589d5e1c156d6126fb3da0562bf403e733508f1f1926d6c9045350cad3d1243504dc70aa17a4de748e4a1fd804ae262c8ad557adaf799466434266b91d2c083f96218473adfc9dd2e8c3700"), + ciphertext: &hex!("d950ab8631a66c313d6801977d"), + tag: &hex!("31e109753cbb651ed194369f00840323"), + }, + TestVector { + key: &hex!("fad699fe2dfb8a2b955708ff97b15892"), + nonce: &hex!("61d9979bb5dd655e826abf68"), + plaintext: &hex!("ca88d99b2c88b078a9878fcfde"), + aad: &hex!("7c02b7f2e7be357843a86596d7ba3a87e922bb0a982c32a20e809491c6343cfee2ee92fa2b6f898ee5b77a9ec5719de356c5e7507b1cac49b06e6fd5311eb9cf7a0c42b5252ca90632296d12ff5316a56253cc6666fb4d0a38f2"), + ciphertext: &hex!("bfa286323d4904de8cd21389c0"), + tag: &hex!("cf3af80df6bde595d6b5a28d6b7112f1"), + }, + TestVector { + key: &hex!("ca83a1109cf5bfb7d24d6ba72c6c1a74"), + nonce: &hex!("ee40762d9a5fcdb41438ce05"), + plaintext: &hex!("53c7fa9eba69541113c1998c46"), + aad: &hex!("f54c4418df498c782ed61ccba4e657c8de9032231fd6a98c718063600d96f0e5f17fa73b9492faa264b5b9706e0d096386983694fb41b904c109b32b67c4e472e2a416fdd8f2a41fbfb1c5ecdf5be97fcd347c2541c1e50cfe18"), + ciphertext: &hex!("8cedd6149a203beb47d78489ff"), + tag: &hex!("00906817785539306d07775e215bfb4b"), + }, + TestVector { + key: &hex!("65a467d5e8d503a0916e5ccaaf240b20"), + nonce: &hex!("0cc6f2f2a5cf96ce6adc2c5e"), + plaintext: &hex!("b619af43215d41b1b0650bbe0d"), + aad: &hex!("ae98d8e675bca2cd4bf8f0860d46bd2c18f2d15dd431c51fe63c878cc9b1cf47a3b84cf1e9a02a4f0a8940008b72f4f1ed9cb5aae670899705573a8045008cad1284cddd1532791d38c8067694669d8b7d06a46969c413e6e35c"), + ciphertext: &hex!("6c24bd0ecc97873f0f7c8802c5"), + tag: &hex!("03168a06b495f3f31d46f0de87d5471a"), + }, + TestVector { + key: &hex!("4cf328e1f2f180c2dd9e6d703cae188f"), + nonce: &hex!("35b7cfe65331e520265d6657"), + plaintext: &hex!("9c1a195735a84e6491a8ac07ff"), + aad: &hex!("72a6a4f43598b91169a834d906cbe4cb40da1a41502a7f4bc80265a239330a9102de94a7fe8d57d28dc125aa5e6d061e7d2a90cdad8406ee899687d02f780f0c1ae8e944b300b61cd3489852d61eb2349a447be85d25d3cdde0e"), + ciphertext: &hex!("eb4d38c23be97445c25e8bf2f4"), + tag: &hex!("b005f424f77a81f4a965aa7a1bf8cfe5"), + }, + TestVector { + key: &hex!("7d62b16a551c12ac2102472492a4d3af"), + nonce: &hex!("d464c988013cfee4bafd7a9b"), + plaintext: &hex!("6de52d4b0878c26b0d8a6ff127"), + aad: &hex!("12a9155e72f6c19a9f00a651fe52d6dac331cac06b3ba594e24021900cdaa7d73a75a0968dd5d7d2f16ebab2197c620a1768bbc0839e21c8a37203af4c2ba146fdcac2b48701cc4bb5863f514c6562e01e807cd5308c9274ad9e"), + ciphertext: &hex!("a6dd42b752cacb47f1de9adaa1"), + tag: &hex!("c6472e722a39ae44be5e4242cc58e046"), + }, + TestVector { + key: &hex!("ef6c85fa490919d342734357fe3656bd"), + nonce: &hex!("7790d3a8deb8712c68ddae80"), + plaintext: &hex!("bf45d58e3cf0cd47bfe90814ea"), + aad: &hex!("fb04ccc1d78523c9aef6e8285fa991026c5aa4cbc8c37f9e0969d74c571e2409775d116c4a55b03f029842d7e3a53df8f7ceb9469b4461649dfb4183e57ebea8971bd967ee95d5f656873368a83313fa31cf6ab11d7b2c77d20d"), + ciphertext: &hex!("7cf1afa60d3428c8fd25d9479b"), + tag: &hex!("63e3a5eebcd72468e8ffab55e3caefe7"), + }, + TestVector { + key: &hex!("ac5b4ad09c73ed0b80931b920ceb0fad"), + nonce: &hex!("1c0ab2941025ce7f084b8509"), + plaintext: &hex!("bf64de420133b29d1d50f4757d"), + aad: &hex!("e8cb8547ac67dccb3cb88e0443f9566944a79adaed7680b9e174080751d91e4d83357f28802a576e0fb53fb32e8d4d879d55aa9e79e201be363f4ddb16dad35e058a7d69e262c359c036f0d72151aa0bf04fbef5c4c3f7e91d05"), + ciphertext: &hex!("3761f611ec3ff853c915e61ef6"), + tag: &hex!("bf906c3dabd785968ba5c7abd4a1eceb"), + }, + TestVector { + key: &hex!("35818c93c54a321f2ccc28e967d22ce1"), + nonce: &hex!("18dfcc73829a3c13287a6112"), + plaintext: &hex!("6f32f25bfc511e8a7c60854944"), + aad: &hex!("09be731cd52fe4f7c6dd9aef978f8f117c358997842ffbb2df96727625669b58513e2bc97ef9c7119afa6b088a4f9312bebebfa6e71080a6e7f369207f3396f9c240a13143d7bfc5cad5049cb067ce4f57876d883bc8283fed87"), + ciphertext: &hex!("9553eb0378229fdb213fd46002"), + tag: &hex!("ec228ec0fc273b67d922c2ba3dde5bdf"), + }, + TestVector { + key: &hex!("9971071059abc009e4f2bd69869db338"), + nonce: &hex!("07a9a95ea3821e9c13c63251"), + plaintext: &hex!("f54bc3501fed4f6f6dfb5ea80106df0bd836e6826225b75c0222f6e859b35983"), + aad: &hex!(""), + ciphertext: &hex!("0556c159f84ef36cb1602b4526b12009c775611bffb64dc0d9ca9297cd2c6a01"), + tag: &hex!("7870d9117f54811a346970f1de090c41"), + }, + TestVector { + key: &hex!("f0a551c56973e1cfdfe2d353aad66c2a"), + nonce: &hex!("94e95e0544ab0b0b9997aee3"), + plaintext: &hex!("734c0907ef49a1d86bc665bb9da9cedeeecd2abfed7f591c201ac360ca42f941"), + aad: &hex!(""), + ciphertext: &hex!("f2c2f0c35e0bf6c5f5c24d8aadba19ed35848959b9c586604c396428493418d0"), + tag: &hex!("8855aecbe9604a839fa5d481f8760ffc"), + }, + TestVector { + key: &hex!("c635775fa1416abe375c792ea7a486ac"), + nonce: &hex!("5b9f038596f55115986a3109"), + plaintext: &hex!("54172156fcb2c40392009807bd3ec4a11c2c1b6d69ad20c773df3d9e7cf35e3d"), + aad: &hex!(""), + ciphertext: &hex!("73a9d9de0a3dcdc52dd9745fdf12353f4d63d0c7646443f5206883f6b7da2b94"), + tag: &hex!("11970a60855b0fe890d4f5988f6cafae"), + }, + TestVector { + key: &hex!("43d0651aa5d06f2846fed833fbb72241"), + nonce: &hex!("2ae626772b73c7cd25dab014"), + plaintext: &hex!("cec1607ccdc6332e5371766190cc7b03a09fb814b3d2afc52edc747d70b7fff4"), + aad: &hex!(""), + ciphertext: &hex!("ea742cc41afac5ffbfa81e89bad82f1f8a07eca281fc253b533cc157eceec4e0"), + tag: &hex!("db1e19fb545ae218f4ad3c9a6da64997"), + }, + TestVector { + key: &hex!("defa2f0eba651799c6041e6f28a0db3b"), + nonce: &hex!("102158d6ed54ecc7efdeba7a"), + plaintext: &hex!("67844577a198b456fa410afcede8fc24fb970459096ebae03bfe1dd32a6b9665"), + aad: &hex!(""), + ciphertext: &hex!("4d87782c99ea2b18c58393eef975007b9019f42667b98098404137dc085d631b"), + tag: &hex!("fbdf857c1bff89bd725b8ca90d643e5b"), + }, + TestVector { + key: &hex!("f098deb1e8149b3c88320efbfea087e2"), + nonce: &hex!("8146393ed0dd09d89d1ae7e5"), + plaintext: &hex!("8ee6f4c01e98b501a9914f57239bda7d5831ac147c320651863e06db60c1a02d"), + aad: &hex!(""), + ciphertext: &hex!("122309ab94c98901104bda0488efb563959da64979653ee4f8e658a3ea8a3c9c"), + tag: &hex!("93e3d93d0580c5567ecfac274da211e2"), + }, + TestVector { + key: &hex!("63b28aec8f7dd44af269e48e35294a34"), + nonce: &hex!("4c3d88500f6a483b63ba1139"), + plaintext: &hex!("5b86eb718b3917537d4ef51b6c74a85cc9a90002410d8f346cbe56c86ac72d4d"), + aad: &hex!(""), + ciphertext: &hex!("d0281117e29fbf9676f7887811b010a19a34475ad9e4516cd8424d0b9e5a2c3c"), + tag: &hex!("904ba928205fdda9e2674805be07e93e"), + }, + TestVector { + key: &hex!("765ed884a7554c792cc671e93c02433f"), + nonce: &hex!("667467b168db56adf48a26e2"), + plaintext: &hex!("b941bb1f73980b0d76324a49a6c33623d4a1063b05c82cb43e4b0cdd4f913860"), + aad: &hex!(""), + ciphertext: &hex!("84906e78ac79df67a0fb4ccf4c8da439094339adc92d98abbe032cdf4f5d92ec"), + tag: &hex!("750a89a842a6dd7d1317f561b9038402"), + }, + TestVector { + key: &hex!("816ed7edadca9e8fa2b2b9f9ebd14d51"), + nonce: &hex!("7da514e274b5b812722b5c3f"), + plaintext: &hex!("c76908234954ff939ba2293fa1ac654a4bee41a574f2694d090980481a08083f"), + aad: &hex!(""), + ciphertext: &hex!("b59a50e4414b4903c195ff47e8f9028d77b7e73a9a54e1ced9ebb1636b123864"), + tag: &hex!("007af223e7ac139eafd78d0a2c87ca25"), + }, + TestVector { + key: &hex!("f7b38d0d340373b98b89725fd889be49"), + nonce: &hex!("bc2b87a883af1c0bff8388fb"), + plaintext: &hex!("0a8de4df6e01bc7b2a36e4a123af8ce6240bec42cd4e4f09aa92520c1658103c"), + aad: &hex!(""), + ciphertext: &hex!("65ee08ab751bef3720db313491fca20a87cdfd6b8b028f53bf352304da504911"), + tag: &hex!("abbc81ca718fcbc6a75c85ada74e466f"), + }, + TestVector { + key: &hex!("dc662c77a2d520a067cbd6bd7e119696"), + nonce: &hex!("23aa76d1e8c3a72be862a5eb"), + plaintext: &hex!("5fb66e144d2564e096832065647dae768659d6dcd10a1dbe00858ce4f5148912"), + aad: &hex!(""), + ciphertext: &hex!("612713f9e6bd8017f61410c10ba1bd21adc87565bafbd1839d9572e270e94210"), + tag: &hex!("9d7616c3b486107cc74a8a2aa9c65209"), + }, + TestVector { + key: &hex!("5c5b3799a19098b9c5737783ef0c80e9"), + nonce: &hex!("34fb9e101915639def30f40e"), + plaintext: &hex!("05f15cd45a82f36bc4e5e3d6db7a60640faa0e929c00f0354e913bcb02d83118"), + aad: &hex!(""), + ciphertext: &hex!("ad60f53d51b6b00fc3366a4b4bc16b678ecd12473e8bd55c363bc0d94a844b70"), + tag: &hex!("1a528398ee2c9f436743d1a08602c5b4"), + }, + TestVector { + key: &hex!("3a541317198a2fb1b90470e90d6d7f38"), + nonce: &hex!("dfa6eb2b53177ff5d0924295"), + plaintext: &hex!("3ac18af46d3fb15d477b849fe1ead087840742cbd8b2ec31b45b8ac2e4a53975"), + aad: &hex!(""), + ciphertext: &hex!("66755e7ec710a8ed7c776521f214ceb54e550220177eb89fe3949c9e74e2e108"), + tag: &hex!("20425ac5f07868b49edf9896af64396a"), + }, + TestVector { + key: &hex!("8f85d36616a95fc10586c316b3053770"), + nonce: &hex!("d320b500269609ace1be67ce"), + plaintext: &hex!("3a758ee072fc70a64275b56e72cb23a15904589cefbeeb5848ec53ffc06c7a5d"), + aad: &hex!(""), + ciphertext: &hex!("fb2fe3eb40edfbd22a516bec359d4bb4238a0700a46fee1136a0618540229c41"), + tag: &hex!("42269316cece7d882cc68c3ed9d2f0ae"), + }, + TestVector { + key: &hex!("5fe2650c0598d918e49bb33e3c31d5b4"), + nonce: &hex!("dd9501aa9c0e452f6786ebef"), + plaintext: &hex!("5a6b60ec0ac23f6d63ff2b1919ba6382927ef6de693a855f3e3efd49bd4453d8"), + aad: &hex!(""), + ciphertext: &hex!("f0ac2d9153f00be3fce82d24fd3df3ea49f8265137417468724ae1342c6d9f00"), + tag: &hex!("6bab3332c8d370fa31634c6908a4b080"), + }, + TestVector { + key: &hex!("298efa1ccf29cf62ae6824bfc19557fc"), + nonce: &hex!("6f58a93fe1d207fae4ed2f6d"), + plaintext: &hex!("cc38bccd6bc536ad919b1395f5d63801f99f8068d65ca5ac63872daf16b93901"), + aad: &hex!("021fafd238463973ffe80256e5b1c6b1"), + ciphertext: &hex!("dfce4e9cd291103d7fe4e63351d9e79d3dfd391e3267104658212da96521b7db"), + tag: &hex!("542465ef599316f73a7a560509a2d9f2"), + }, + TestVector { + key: &hex!("9b2ddd1af666b91e052d624b04e6b042"), + nonce: &hex!("4ee12e62899c61f9520a13c1"), + plaintext: &hex!("01e5dc87a242782ca3156a27446f386bd9a060ffef1f63c3bc11a93ce305175d"), + aad: &hex!("e591e6ee094981b0e383429a31cceaaa"), + ciphertext: &hex!("87b976488ac07750aa529e1602290db36f4d38d5c5ccb41292b66c3139617ebe"), + tag: &hex!("c4e7ea53efd59354ec6b4b8d9f8b237c"), + }, + TestVector { + key: &hex!("8737490bdc02e3543c312e081e2785cd"), + nonce: &hex!("cf3460b8010d410fd5524720"), + plaintext: &hex!("aa0acbbf2b847910d56ee4da8a9f40973f85d6cce1d6326a777eff01173e66d0"), + aad: &hex!("eba8c1ca49e977cf26eb52325e59afa8"), + ciphertext: &hex!("893902594834c3a72da17bd73ccd53238a581a3e33edf8b9b901662b5f7e1d3a"), + tag: &hex!("36a3a106d3c10a65da7d81942c98b349"), + }, + TestVector { + key: &hex!("f7fc73fc1c428e56af92e6b2870845e3"), + nonce: &hex!("375b1a84fefaaa807ffeba18"), + plaintext: &hex!("f871a9a695b74f9501942f99a3489d4befec6768d7c17d1c38f51fd6cd16adc4"), + aad: &hex!("0d668901163a08a338c427342d31e799"), + ciphertext: &hex!("ef65290d220227147154f66a12004ce292507527f17c5119c69fa4f81e56d0a1"), + tag: &hex!("2d48c8b198610cdea73965f6ab1d9a12"), + }, + TestVector { + key: &hex!("e522d6715bb408401c5a7af3ef190caa"), + nonce: &hex!("1a3b2a313418ed26de8ddf57"), + plaintext: &hex!("d3f10233505f524ffb8d961d8321be88c975704bdd9df958f3795adf0085aaa7"), + aad: &hex!("b993eb193e9d59382919ebbc9e3ad829"), + ciphertext: &hex!("e1519156cc27905b8da24d29fb502d54042eb6fab10c5f6a99d1ef54c92c555d"), + tag: &hex!("7fd04f637b748db17da7ee34099a112a"), + }, + TestVector { + key: &hex!("55190de13cfbbedf4a0787f9ecc34e45"), + nonce: &hex!("87803bcf6a69962abae929e5"), + plaintext: &hex!("ee5da0026ce103140873226149b75fa734888b00518aeac0224466bbb0d23d0c"), + aad: &hex!("067c3857cc240c6bb5f628bcc7cf5559"), + ciphertext: &hex!("06362d236e9618037d31d4f1ea0df6064e0bf06b6c5904530e1002e8479c16fb"), + tag: &hex!("342a27aea0ef0aa26ad92ea3a92afa37"), + }, + TestVector { + key: &hex!("65f7a5ff7feaa8d50736dce3c8524cf9"), + nonce: &hex!("dfa0822065b1ed4987685217"), + plaintext: &hex!("a32d3aed1371cfcddf5e735a9d95b96d1ac59c3ab784be8364cc1cf3b71bf70e"), + aad: &hex!("cc4fd4d82584059b5a165d632d56fe1e"), + ciphertext: &hex!("bdf356a54a5cfa281edbe7e35966b5b8a68894f282cd7a734d502dfee6dcb1f5"), + tag: &hex!("4ff05b2898df6edc27574a2eb395ffc8"), + }, + TestVector { + key: &hex!("df0ceb73dfbd06782f69cd51cc4fc1fb"), + nonce: &hex!("c5fb4bf0b40477e10e5d15d4"), + plaintext: &hex!("fa9da35d8d812585322fa1c0cf4633b06424272cfac1c5a51138b0b9b91d443d"), + aad: &hex!("f292c4c2a2356e70feb0003a28708ed8"), + ciphertext: &hex!("e81cd00a96dcb719fc2c3af7b5420cb5667fed53af8f561dc216fc7215ab16a1"), + tag: &hex!("60848116706be55b4ea939ba899eb2b7"), + }, + TestVector { + key: &hex!("72205e651f03e2c16eea7689af43bc4a"), + nonce: &hex!("42c47b2f95b0ec02652f1fff"), + plaintext: &hex!("7fbe781650c396ca8cdc6b2efddae0007cb008c4fc7310fa17ec5ae060171391"), + aad: &hex!("7f978fc1f1b2f9f37b88b96b8c14ebec"), + ciphertext: &hex!("b3f3a8bfe2906ac1bbc93ddc701a5529c2cb156354cedf85928f605ed6005bdc"), + tag: &hex!("9151c8000dc25eba4a57908b238afb21"), + }, + TestVector { + key: &hex!("a2c96c0b051c633ec10b2fccb43f4517"), + nonce: &hex!("c4c13fc9f15f482bf6bd8d0b"), + plaintext: &hex!("5f0a50d976eb2048bc481d7bca9b3e7367c3b12c9e98ac8521f45c715ae3bfff"), + aad: &hex!("94afc74a7040c47705722627e05f159c"), + ciphertext: &hex!("2bde225ca63b40ce64500c40c00fa5c50086c431e95d1f99678cb9a90bda2502"), + tag: &hex!("6a296aa47e52737304eaafec0c3d0c65"), + }, + TestVector { + key: &hex!("108146de148bd4dba69c4ad2c11a35c0"), + nonce: &hex!("9dfbe2fa46a46c3ebaf31c48"), + plaintext: &hex!("0104c3da4cbe50f31ccfcc426d634d8d39686444a3b75bfb54d67349fb7e7017"), + aad: &hex!("bc83808f9e884967c84d28ce981dfd1b"), + ciphertext: &hex!("3f4424912dfaafd8f8b08ba7baea95effb3e4571720a2626b92ad8f7a69d4477"), + tag: &hex!("eedec85ed9e14a5fcc2cd0ce50ff00a4"), + }, + TestVector { + key: &hex!("37b9352444bcaa9624b267566a59095a"), + nonce: &hex!("d7a72473b99b2890ef7c4928"), + plaintext: &hex!("93037b2b4814541f425ea0bcc88ce1486632919cef443a5374d9944edc7e42ed"), + aad: &hex!("f7751af2dcbf5a7eb81d6bd73ced1220"), + ciphertext: &hex!("491e0893a652a5975d3db72868b5619311a9cddad11c5522e95893c42e3b63a9"), + tag: &hex!("fcd8120512eb3f14295efd3b045b0868"), + }, + TestVector { + key: &hex!("dd1332f17e62b2be889e9a399fb0d3fe"), + nonce: &hex!("3f0028cb7cb8f1091a4e2f4a"), + plaintext: &hex!("9c2e07683c6ca06d012708ad6dae95082eebd36261ccc874226ad354cc8ba82e"), + aad: &hex!("2f33c5f85f976811ef67533f488917fa"), + ciphertext: &hex!("a4fa9311e3c02c3b068a3f11ae7657efc3a3e69991251280503940ac4a7e8950"), + tag: &hex!("0e5e77baa0f36db11cc5bfc27ffc7a49"), + }, + TestVector { + key: &hex!("39e215f1a2572257efd939ac0365ec97"), + nonce: &hex!("e1f4da712c4c1eb31027352c"), + plaintext: &hex!("21f7d62bb2918dde6acf9b6c9b7afed4be7d623c3e2070444b087fb40de7e6f1"), + aad: &hex!("9368e8d525e77707d316542dcd735c6e"), + ciphertext: &hex!("3c93eb8df00556e3f42d54acfd635fbffc0f77f868a68f738ec2918213ba9a22"), + tag: &hex!("0dd8352d507e5253ee0849688d2ee86d"), + }, + TestVector { + key: &hex!("06f36f4939473b540e71db35f398a53d"), + nonce: &hex!("13efe211cb6ef3a374f4da85"), + plaintext: &hex!("a5aafedc4c1ddb7f6b38f7974d16a1c88cf7ef1ebe5027ea4fb55db16101fc20"), + aad: &hex!("8cbe3e3eb19818db197901bd4ee42de2"), + ciphertext: &hex!("7d21fb06002d19f40741b275b72cdbabbe032460ecf13d98f1cafcb30f704af0"), + tag: &hex!("dd4beca1670cf437372aba77bc3e9261"), + }, + TestVector { + key: &hex!("fedc7155192d00b23cdd98750db9ebba"), + nonce: &hex!("a76b74f55c1a1756a08338b1"), + plaintext: &hex!("6831435b8857daf1c513b148820d13b5a72cc490bda79a98a6f520d8763c39d1"), + aad: &hex!("2ad206c4176e7e552aa08836886816fafa77e759"), + ciphertext: &hex!("15823805da89a1923bfc1d6f87784d56bad1128b4dffdbdeefbb2fa562c35e68"), + tag: &hex!("d23dc455ced49887c717e8eabeec2984"), + }, + TestVector { + key: &hex!("8bdec458a733c52cd994b7c2a37947d9"), + nonce: &hex!("bf8d954df5f1ee51fc3f1890"), + plaintext: &hex!("9d5f1c905df900111f2052a60913d8a9d83cd40e43ba88203b05e3dbf0e37fbe"), + aad: &hex!("ffe26874a54bd38a026c5c729e2852a748457412"), + ciphertext: &hex!("f056cf8ea6c4f353f08d54c27a8ef3324ab927a641563f9f5dc5f02c3b2204b1"), + tag: &hex!("2f8b9351426363f09f5d17f634a381a9"), + }, + TestVector { + key: &hex!("0a651f95b6fe5d9442fd311cee245229"), + nonce: &hex!("b7b2349b60ac5cf09885ef4e"), + plaintext: &hex!("1cd7be7611d8f7c9d75fdf3f53d28172ae4d462c06da56cb386687f2c098e28b"), + aad: &hex!("725a089a37ba50e53143722140ce5c37bc0a48e7"), + ciphertext: &hex!("e2926f34c30883a3b7eb0dc47627aad090111654a4980fc4fc952fe7a7b6b60a"), + tag: &hex!("617345dab8973c21ad711c2a51885f83"), + }, + TestVector { + key: &hex!("fec2452d0883a54c0e33fccc092ddcf6"), + nonce: &hex!("9e3e354d30c2c77cd0d9a0fe"), + plaintext: &hex!("95b9c5e6adb7fcce212abf535095bd955c3aa0f7ac2428841f4de9035263446a"), + aad: &hex!("6c12b112110ebf36930910f1bfc9ed49e14440b1"), + ciphertext: &hex!("a85754f451b40f3ab576327b4b99fa09adc95380299f61c5c7a8e28188d2a40b"), + tag: &hex!("94b979f7718ec13412e03f3461440100"), + }, + TestVector { + key: &hex!("e5f6d9f2c8ad08a1500157e027b92219"), + nonce: &hex!("94358eeb6829f1be4de3abfc"), + plaintext: &hex!("3204856040edd9401a890769875cc252e5dcb4a77e951e6eaef6d7318a06bcf4"), + aad: &hex!("b3b860929cdc3fb0e393f21287f3dddc4a1c927a"), + ciphertext: &hex!("b1ba514ae4c41270d7beafaa1bac2fa993cf5af3607a008c6bb4aee2a1212dd4"), + tag: &hex!("7e0f5aa40553128f2c15cb9567c950e1"), + }, + TestVector { + key: &hex!("aeccfc65063c3fccfc5a0b29193d1ef4"), + nonce: &hex!("70649c9d2848d21c575d6914"), + plaintext: &hex!("46ac375da56527c3c6fd5f28f33c63b1ffaf06c33b8f329eae37f8579a62291b"), + aad: &hex!("637dc392cfe3a8e2fe5e871799a46dbe38f59610"), + ciphertext: &hex!("7f8841d3c82907596c4aa6ed433b9eb33b24d66f0a0cdd846d5ea51668975d9d"), + tag: &hex!("dfbab7a42d60cda73b03189034e44ff5"), + }, + TestVector { + key: &hex!("1dbaf0bdd974b48ae373f686a961aeba"), + nonce: &hex!("a3a6454d17ac622248ae9857"), + plaintext: &hex!("83a131f7737b4e881fb255ab9225f7faba96476626ed27168d6342ccca8d3e75"), + aad: &hex!("393843360c388a6e2f83c7202e8da6fa7041a6be"), + ciphertext: &hex!("2471d23957d6305a86520b757c54890a57f665a44a19af2f8d55e6833659e730"), + tag: &hex!("4693b10c8998580e986be0bb26a22e3f"), + }, + TestVector { + key: &hex!("540f40fe8ac2e506b69bb2ba356ff8db"), + nonce: &hex!("0502e51ac42f641d7a0176b0"), + plaintext: &hex!("910a000c5e99245870f08dd658b648f944d04426a70d6d46d8e88ec8eddfb324"), + aad: &hex!("9b1f2b2fd7265792852628df926abc5609aaa762"), + ciphertext: &hex!("9381d4b72d740b58c3f27f8dff01d8bef45e769b834539a439173c88a6d18e62"), + tag: &hex!("7c678893a122a50f777dfcebf514f81d"), + }, + TestVector { + key: &hex!("55d0e0560a2027bb873d84a39ff87046"), + nonce: &hex!("616d61ba94216c9c7c0903b0"), + plaintext: &hex!("1610431777c01136c0a0073f5c114c357f0216d5eaa31cd40b8cd605ac56dfab"), + aad: &hex!("a0203e1f31f66bfdc819d086a48b705d1eb7721b"), + ciphertext: &hex!("5d846a8dfe02cf2454e11075a236b2a6acc59819e9ca6af580690664c195edd3"), + tag: &hex!("24cd0dd950859ab9d1ae654ef7174f98"), + }, + TestVector { + key: &hex!("b7ff8402f1325d945c98662003323db7"), + nonce: &hex!("6b6163fb2d1641bce33459e6"), + plaintext: &hex!("a2a653ee98df41fe873bc036a5fa7ddfea8d63ff0949ae8e1489cdb0c3a80c7f"), + aad: &hex!("50a7649f5ac25f110f9408ecf3289d978a55620a"), + ciphertext: &hex!("820a373f446a8341c8d928d223a5aea854b643ff07902b0c5bd0c6319b42d855"), + tag: &hex!("764c69deed533ab29bd85dd35d4dcf9a"), + }, + TestVector { + key: &hex!("48c901ba4e905bd68afdaec739ae00c2"), + nonce: &hex!("5bbe3dede5ebbd8cb845a9b6"), + plaintext: &hex!("80b845888bd2f25defcd62b72b6bdeebd6152b3aa6b006891b0d69769fcc06d3"), + aad: &hex!("0c0cbcdcdbb35a35116b12b62715df4b647d78c5"), + ciphertext: &hex!("512779582d1fe1831f333bb563634acef8021c3c76b06beb6c7da98daac4c229"), + tag: &hex!("15fd32f96a4b9505bc1373525d40eeb7"), + }, + TestVector { + key: &hex!("c82cc4d9ff0681968839991afd0dfc2a"), + nonce: &hex!("26a95931946fd2118ccd01cb"), + plaintext: &hex!("7516c4a781be02cafc36df4a07d2c9ffb978fdecf5217240097d5c26ff1e77bd"), + aad: &hex!("8bbe80d4f4cd6c61b4fe3d24e98853acd4dd83fc"), + ciphertext: &hex!("f98436fe4bf6e5993adab0f0001bebfb449735eb365b9e7ce4b151f82005c5c7"), + tag: &hex!("c83be461e1fedbb4ddf3ee72b9debe20"), + }, + TestVector { + key: &hex!("748a88bf4e264a1180bfd665072aba65"), + nonce: &hex!("b0a768b62de3cbbc1bcfe93f"), + plaintext: &hex!("1e1df61a9f10c7b4057d684ccef74e09f2a87f7e4aed393a451461d574c8ddbc"), + aad: &hex!("f4b102d885495fb893189aa216d8ab653bb97b99"), + ciphertext: &hex!("5e1af9511989069a615a6850402547ef4788197452461f1241e24be674c60074"), + tag: &hex!("734e1cc937ca384e282410fd9fc4bff2"), + }, + TestVector { + key: &hex!("2393180bb81320965a58424b287c9b3e"), + nonce: &hex!("480053c69ac54b93f5e81338"), + plaintext: &hex!("d46fcbf950bfcfca3906769f922821473d3005d5a1d81278622d4d3cd9721a33"), + aad: &hex!("f6a2a3ac8e462fb01bbedcc9b0f8686ad4477929"), + ciphertext: &hex!("125874ff5a7f8936a76b11587bbebd461e27638bff5a1e993465c9cde82f2bd4"), + tag: &hex!("9b625b4c2f66cf2fc88043b9b4c6f2fa"), + }, + TestVector { + key: &hex!("d651166baf42b75adb26e370b76016e5"), + nonce: &hex!("4af70e3be1357501cbb16bca"), + plaintext: &hex!("21d76d04488d4c33a7e8822797f785b43540bd374206966c9ef7832c51cc009f"), + aad: &hex!("2c1072d5df5306e20d323a9897abac120bfb4d04"), + ciphertext: &hex!("bc557572490f4d63811f8d83e58214ba4d8d24290264381838328a2962f010b2"), + tag: &hex!("8bd1f65c551c4affa517a8b03b6337e2"), + }, + TestVector { + key: &hex!("48b7f337cdf9252687ecc760bd8ec184"), + nonce: &hex!("3e894ebb16ce82a53c3e05b2"), + plaintext: &hex!("bb2bac67a4709430c39c2eb9acfabc0d456c80d30aa1734e57997d548a8f0603"), + aad: &hex!("7d924cfd37b3d046a96eb5e132042405c8731e06509787bbeb41f258275746495e884d69871f77634c584bb007312234"), + ciphertext: &hex!("d263228b8ce051f67e9baf1ce7df97d10cd5f3bc972362055130c7d13c3ab2e7"), + tag: &hex!("71446737ca1fa92e6d026d7d2ed1aa9c"), + }, + TestVector { + key: &hex!("35a7eabe7de2d176e97cdb905c0b7f17"), + nonce: &hex!("2fa0cfef89fd9849df559c98"), + plaintext: &hex!("08f23fc6fde45fe044cc2c397390bb362524bb16cfab7c548de89faf3ad98947"), + aad: &hex!("314e0423ac429f43ed90d731fcb5bdc7849595ee16553a1b7f91412bf98ac4cb052ca91c62a33b3928ee2887ebc273b7"), + ciphertext: &hex!("cf040174f8e280d10aa65eb59db8bf3e4e2a8aa01b1f320564314946b3749af2"), + tag: &hex!("94f78c8ab96107437826050e1a89b9e2"), + }, + TestVector { + key: &hex!("23c31e0e50ed44fae7e6df38abf0b16a"), + nonce: &hex!("779034aee3e3b1942ef3e713"), + plaintext: &hex!("681d498d7e85684c5996ce27270fe8065089e58617cc6deae49cceb27dc1e967"), + aad: &hex!("6a7877001fb018519c7f660d77cae7bd892af075ae2d68940071f9156bda7010eb25d57885913544d4922a21347c808e"), + ciphertext: &hex!("7b14a15674755b66af08d581ee6f8b98691927cb1f5c43e5589de61c1b3883c9"), + tag: &hex!("2fa40d9c65eed28a99f95af468293006"), + }, + TestVector { + key: &hex!("4b4f9155d8db85e0e2b36bf3aa981e6c"), + nonce: &hex!("7c8d933778e1414e7338d934"), + plaintext: &hex!("f8a26c7a9a614a17151fcd54406891adf34e31a0d55046e1b413195b44113bb7"), + aad: &hex!("43b6c54526318efaa8f0a4979ccfa0f299f5d9889433b19971f60a663e359d1f2c1af393928c9b4165c07d7536c910de"), + ciphertext: &hex!("3f9bdea3c3561ad417c205887aea6ca1ee070057388dc80226f331ffb0017de5"), + tag: &hex!("e8ea1d3077df2c3d20f02a5046fdae73"), + }, + TestVector { + key: &hex!("4148dd87bc6aaa908a0dbe1e5d2f6cc7"), + nonce: &hex!("d01ffa7787117f8cb0b4014b"), + plaintext: &hex!("bf1968a91d5da5c9e42ffb5cdf11e0d31b69935b22958c149c005d52576b262b"), + aad: &hex!("fdeceb385ed6de0d2d15453f022dd455b8db3bd9f13e44f085722a6935ea6631058e0cb5fcbd3b9e97db339b529de123"), + ciphertext: &hex!("bfc9ecbbaf49371107cec37f80171f94141e25a486e1b42d8258208a6038fa34"), + tag: &hex!("f2dad0b16bb728cb957ad9ab0716d195"), + }, + TestVector { + key: &hex!("5d50961aa7fad7cae9a8d043e191c9c6"), + nonce: &hex!("263f4dc6464e89110a77f24f"), + plaintext: &hex!("0fed89fa86e5fbc4bf2e352caf8e1e8910f106db7b5092feec9fff5f4f768ae4"), + aad: &hex!("e74cd8621c2db03d6b47cda4ae0671dfe8bb62f26715bd4397adc679c987016bf305a1e555ebc91a048e2a7bdc7cb8b9"), + ciphertext: &hex!("2190380bee10ade973aea0db269835649f4e53e4724598e1a935704a40411b16"), + tag: &hex!("0aa3d68d90ef3d329ff394451db0a2c2"), + }, + TestVector { + key: &hex!("c2428b54a781242f896bbc8816e8176b"), + nonce: &hex!("715d8c8397ee55eb53f86a2a"), + plaintext: &hex!("0088129bb514a66d5a208838e20c7978ea6389cbd56e85de87e0db0608d8c1a4"), + aad: &hex!("435bb2a96fae0ab64c0a499d6e50bf2e5560643338aadabaa795f82d6503588d6522a70e4e475297aa9c5bbca7138b05"), + ciphertext: &hex!("a9fb750c009ffd7fe76703e3588f747fa58cef68b1d9dd2f953bbf3ab6da2b59"), + tag: &hex!("613bb91239aafdced8fb87b6ba0f9e5d"), + }, + TestVector { + key: &hex!("6a3408481a54a1d9231142ffb9fd354f"), + nonce: &hex!("bb2fdedd1a33321ace0a5c66"), + plaintext: &hex!("63c934eeea0dca9732734d800034e57616f4d339aedefd515a829300937e6d5f"), + aad: &hex!("448f17c604cb976cb527b3b1f8d40350420c94545d73ab72a3dc10a32cec537d78a17d32fe073b329e25bb2d538b5bc1"), + ciphertext: &hex!("b413a9c842fa51001b8949aa81dfc10408391892eda84785e725745378536d24"), + tag: &hex!("1e323d12856a644a86f394f96185a07a"), + }, + TestVector { + key: &hex!("c5a7ef970a7f42b83194bfaa62dc092c"), + nonce: &hex!("9505924d0b11200db3c40529"), + plaintext: &hex!("84ba18d1e1503d1c512e0956380811bc70f2d97f65269712431a3720ddac91b3"), + aad: &hex!("c2b989d3d56d6dc0c3e846631e11f096a1c3f016984a2a60f593f5b45acd28319ac9828773c6d1e043c6213ce970e749"), + ciphertext: &hex!("b07c02dabffaa8f7b11f644e547f887f78bdc9babbaa0ca66e350e2b5a293b35"), + tag: &hex!("11393df432636dc7d7a3f183f531166a"), + }, + TestVector { + key: &hex!("3f45c5c7d042ee34e8257bf83a46144e"), + nonce: &hex!("0c732f208ec1f8e0e0de0eb0"), + plaintext: &hex!("d46fafdf04468e91b9b87a84f71261bcd44b438e3a943590c6d1990786909ec1"), + aad: &hex!("991c82c9e48dc887f054bc0b45979dd8d244954ea910e30139da9dad476843691f32c7b494114e058d2b27284ea13a62"), + ciphertext: &hex!("54cbb18328682037bdddb8c585b731b18b5cfc495d9b899c9b8db8a11d9e46e9"), + tag: &hex!("289349ea094839dc6e9570c1d7d62a91"), + }, + TestVector { + key: &hex!("10f0569b4e6c441858f8053a646b775f"), + nonce: &hex!("863dbdc9eb8a9c1ac1af6ac9"), + plaintext: &hex!("f99eead51bb2a17f370a50079d93167179af5c49965af2d3f06d211fd96d6ba0"), + aad: &hex!("41d372deba9b25bb982d8c4662f063f95d1859640550ee6177862644b028f42c435636cdc0cdc57509a5fcb75657e581"), + ciphertext: &hex!("566f59cf4fe7b14dca35575743867351f18b1fa7e39417f8e7fe4e8bf1052ca4"), + tag: &hex!("df39c291b26f8ca2557abc6074694070"), + }, + TestVector { + key: &hex!("66f958e09896ab2b21eb36fc36fbfcad"), + nonce: &hex!("371a4dbdf80e6d46508a9621"), + plaintext: &hex!("c0458f59bac039a4349e39c259edf6cf62fbd87910064409c64d8f6ef55d96ef"), + aad: &hex!("19f19eafb6191fb0452807ba2ba6ae4ac36b37138f092cba1a63be58e4f8b994f2f6958799446b5d226fd23a95fe793b"), + ciphertext: &hex!("192474ad795e3e3e36abcef2d42c038d39ece8119fb058a752b7959fe46703f5"), + tag: &hex!("d17dc61d1513fc1cc2df45283afeb556"), + }, + TestVector { + key: &hex!("0f46ef6999a3cbcc2e539a8952a7fbcc"), + nonce: &hex!("ff8829c2fb56cdf74914ad2d"), + plaintext: &hex!("37401d56052412f91aa9398f3ab3afe68ae500aaf40f7941c8a82ae56379fd5d"), + aad: &hex!("fc9a1c16b0f4cf133843a7664a17e97c02e7aa360153f5b4b881ed3825f7b2a414adae94c9a6479a9eeaaa206f99c3db"), + ciphertext: &hex!("6866aa7699a8ce2c747880001987c28393fea80acb7b24a9e6e61086df68f5b6"), + tag: &hex!("c996fc3e44887ad4d703b72dc2ecb1b8"), + }, + TestVector { + key: &hex!("90838209bbc8d07846127667564dd696"), + nonce: &hex!("febfb4dd04eb313933b9c278"), + plaintext: &hex!("cec0527329847a7eece6afa65c7f50ff2d7df4bc4e8d2990c41bf42aa9bda615"), + aad: &hex!("01cbb3a7a70001027b064c337260ddde8cd07fc786d71e293fe0bd44c794dbf7b054114bcd259e115e3acc98cd2ed7b1"), + ciphertext: &hex!("e6275470454a9e0b6f6ea2a4d64cb93462a6cddc69e80f338098fe8b1d4bc364"), + tag: &hex!("50ddc254d7504590c938a503048cc8fe"), + }, + TestVector { + key: &hex!("f94e9d80b48dc5bdca82f14daa46be16"), + nonce: &hex!("29bf1931f0dc4fe3c807e234"), + plaintext: &hex!("64971fdf74f93f8aae32a998e5acf2b09623795a77cb9ad888abe6c7756b0a9d"), + aad: &hex!("449e68d78fcaa2e0f2811a87a9c48a3cd18e4d644eb88ef05b91f4528e35c713f4df2ff97de251bc5b04a177d2e29299"), + ciphertext: &hex!("f317607d97ed51fcc2f6ff7b394470758df772abb33b7ba049c6748b39fc4005"), + tag: &hex!("6c473bbc8881239f85eddc79f5daa0b9"), + }, + TestVector { + key: &hex!("8fbf7ca12fd525dde91e625873fe51c2"), + nonce: &hex!("200bea517b9790a1cfadaf5e"), + plaintext: &hex!("39d3e6277c4b4963840d1642e6faae0a5be2da97f61c4e55bb57ce021903d4c4"), + aad: &hex!("a414c07fe2e60bec9ccc409e9e899c6fe60580bb2607c861f7f08523e69cda1b9c3a711d1d9c35091771e4c950b9996d0ad04f2e00d1b3105853542a96e09ffffc2ec80f8cf88728f594f0aeb14f98a688234e8bfbf70327b364"), + ciphertext: &hex!("fe678ef76f69ac95db553b6dadd5a07a9dc8e151fe6a9fa3a1cd621636b87868"), + tag: &hex!("7c860774f88332b9a7ce6bbd0272a727"), + }, + TestVector { + key: &hex!("93a45b16f2c06a487218d761eabf1873"), + nonce: &hex!("f658ed7ce508e710d5815f18"), + plaintext: &hex!("b6a2afb916a235c7fac5cd6a8e9057c2fff437b7544532a296a3c80c35f47c99"), + aad: &hex!("33156a775586e8c92c7e99c467a840281abc19483b9a320e707bf1ffe856ff1c473bb52f5b940e44df2c2f766cbe9ed360d844283f8daa3ef68def4bf5f2c3aae3028c2d348ca1963e9227cdfa6f6205dbd9f3832e46a4f552ec"), + ciphertext: &hex!("6564e15287e995886395353c65c830e6fdd295c7ec2633c7f8d280f2340cdd15"), + tag: &hex!("e4f4dfef764270a068a9095b9618ffef"), + }, + TestVector { + key: &hex!("5015f6b267f7ba8f83b46ef9440a0083"), + nonce: &hex!("b66dd42e69f8a614516ab6cf"), + plaintext: &hex!("d1207549cc831a4afc7e82415776a5a42664bc33833d061da409fbe1fb1e84df"), + aad: &hex!("f06fe187ad55df4c1575043afb490c117c66e631b6a026ac8b3663d65f4e605b57f467ed6c0a3fde03db61f82d98a238955a3e0f51bac78d14b94a0b75057a432ff375a09b0a41def3c887fcb103ee99f4b9f4474a64600b87eb"), + ciphertext: &hex!("9600b7aa6f5d8e30d3bbca6800643ee764b59bcb83de3dfd03364bbc9a48252e"), + tag: &hex!("49a0ad2dfbb49e8acc6ad1de4d9311d7"), + }, + TestVector { + key: &hex!("408722e80d9cae213180efc0f2675f32"), + nonce: &hex!("e9ed15b1942f1ab5e9cf9421"), + plaintext: &hex!("39ed45bdd73f72aa16ae833d05c6d9ab1fca2b5ea478db553027787857fc9fcd"), + aad: &hex!("19fb7034ac4f57035cf19f68d76c4581054edbabe884e076a0498542d42f0412f5eb87c2cafbe13b9936c6fcee4c7bb46df2274306fb1a86bae4660290c13eddeb8cfe8de585e415563bc1a6ca9823b66c8f2da5da5df8f41677"), + ciphertext: &hex!("9241526c638c2f0a2d1e52bb049f71039565bba5c59876eb136f92ac68ac7f6c"), + tag: &hex!("a6a9b62c36b156ad4024e705c1d78360"), + }, + TestVector { + key: &hex!("678c4bf414452f1c5a659669646d4161"), + nonce: &hex!("295d2762261d1a536e1c057c"), + plaintext: &hex!("53f4ab78c16a20c07095afa50f7e96d66bdb5da90e7e3a8a49fac34652726edd"), + aad: &hex!("bc84743a0c42bb3423032a89857de5a9355ed7821980bf18379ae503b69da35601608f62bbfcb2e2ad9eff7e03fcb4b6d1768ad3a4d92831c5b2e3fc0eea3ab7b874f64e84c376a8f9e15b9aeb5392de10122605699f7d03a999"), + ciphertext: &hex!("2c821a0eb61cbdb09f84f086f69652b38ac9d07a90985f3ef36482a9ef8edbb2"), + tag: &hex!("e6e042fe0894df45b7d9898e96e9b906"), + }, + TestVector { + key: &hex!("8df843ad9376d7326114143899b4ca6f"), + nonce: &hex!("cdf3b88613e485fe6886e720"), + plaintext: &hex!("c1fcfda327533d17e1a6ac7e25cca02546c66635a115cf3f6d008eba55947d60"), + aad: &hex!("e5bd7fa8a56f3c155120f3bccb0fa557063e7bb9517cd04d9996533ef3924ee6197ee7512c6ef09d2177e75b4909c6cff0e86cdadce20e279a0503956f4c2196391a8ffec2d17a1d6614be7847cd114df70b93959f1765826592"), + ciphertext: &hex!("71b822b6d39c9a801a4c2a2c9173b0f3d9b50cf18e8e95291136527a9778edc2"), + tag: &hex!("b584a7e51d40ab28732c11ed602730a5"), + }, + TestVector { + key: &hex!("64b43dfcdcf30dfb97373d75d09ab733"), + nonce: &hex!("9359d85361a3e4c110d715f4"), + plaintext: &hex!("7c5c94ac7b138273de768d2bda16bef0774799df333fdd1a756e344ec35f2844"), + aad: &hex!("01acee6296478134999280ed47a5bc65dd5122c5d35092df54718900d04cfb81457ba9ec9d01e55dd8a65d6b3865fa0e7a45382f287c688c51ffcc951945e3e9c87b03c5545cec0d966926b8ee0453b69f25ce9fdf0a3065c81e"), + ciphertext: &hex!("5f9aa615e13b7b585bdc2d4c3a83d1304d6f78ebba0d5b329d86ca730a515702"), + tag: &hex!("3cbf9fa530b049e067868433307425db"), + }, + TestVector { + key: &hex!("93a951295d4428902a5cce8fe2068763"), + nonce: &hex!("8aed35ae4ae714cf756e686b"), + plaintext: &hex!("0029b749b4db477dcf47d0296eb88806ef0b56060d598e48c9b5a6f9d046404d"), + aad: &hex!("8186788a93a764a866944a2056279ad7f1d2083a96ce224fe6de60e70b17db18022a1504e1bf45c326c6d6992d8c005b675715016e00ec965b398b2ea4ab09cca2ac4ac312e6840ce00a36f6467028328fa30d4086e5bcb677ba"), + ciphertext: &hex!("792cd1a143304fc737d0739be52b2e61841a908963832cff06ab6ec585be6467"), + tag: &hex!("e1bb3eac7f570055fc2d2f0588c4935e"), + }, + TestVector { + key: &hex!("4f3114710c0e7f393b91c982beb3cfcc"), + nonce: &hex!("03994d0b244f94d13cedce90"), + plaintext: &hex!("36831744fd1c17a5df65a63d6642502075a0109f0f0c093ff33505140371136c"), + aad: &hex!("d294f939361af1bff5674a5235ba3e79bf30a5341b8634b5dac613e9a567ccce01b0596282ea584e579719206b2313f6675e7834f8a6d941e164169e97648ce77968ab4ecdfb3d639898468a1e8d285a9327dc958093eb33f8b1"), + ciphertext: &hex!("557e78350ebe53d1b7c1652669621db7a71a8fe2c0a84e61badf2dd9f034b91b"), + tag: &hex!("bc6c1f1322064eab75737067973d56a7"), + }, + TestVector { + key: &hex!("f00a034ea2f732863f9030257c8dcbf9"), + nonce: &hex!("2bd288fc2fabba6c44a04705"), + plaintext: &hex!("85472091a37ec5f37d50fc09fb6b9d803577227b4c079ae64a9264e7a784c4fc"), + aad: &hex!("312de02725a53b8a3dca7f02876dd9a4665de7a3f3dab7e4ac37b71d9d02478829ca38d3ec76d7792eb32478b92552e90154cf5608dcad4f33496061161af933d066e146888d1b7fa9b0c5255d59a8fdd88da638d06ee6d16d93"), + ciphertext: &hex!("9aa27810c3761ae175560340144610c7d263ad35234ecc55feed1c5dd3a4dadf"), + tag: &hex!("02724d14a7dcb5ef81ce8aa937f1419d"), + }, + TestVector { + key: &hex!("49dfbd368a541721d6cd5b2513ec6087"), + nonce: &hex!("8b0214ec3a6a6af65be84ceb"), + plaintext: &hex!("ef6cff08cbcb63a72e841340513f4e289ad34e89733731456cbfbc9a87b20f9b"), + aad: &hex!("6d3dc86af4bb9e92af0dec8cea981481341f37be457093d98a818d8cb4b68b9f7197b1fa310147701f047949af41d0b226af4a3b0b92e5342224766dab7830e1687aa3918a89d4d3b50d69595944f492d3d68b3609ca594e7f26"), + ciphertext: &hex!("e0802e60f73aa2fd669cf5870e963b1f33707ad4cc551f658b18bb72fd7cd9e3"), + tag: &hex!("cd6d9a33458ac709385acfbcffa457e5"), + }, + TestVector { + key: &hex!("3c0f57982449fad339c7ac5f6501b9ec"), + nonce: &hex!("4db6301b638bab6a833001eb"), + plaintext: &hex!("d1d5e1f3d8b491b2345d4a020add93e31596a5a204045f75fad53305d6b5aab5"), + aad: &hex!("ea3872b0d48dad649a876a6b3672e9c7ffcd69695a4d2eb1853ed5c26eca0e8f21385563d42dfef2e1430e06561b8e0b73b5f62ba51a4aca78c56c06c479961c3d21c1fa3823cf80145f7b24e4740127e9e9960fa2480e36e4c4"), + ciphertext: &hex!("32c508251494d05ed9413b0011a028a1bb9bf7e18f72de4b750cc7ab96ec034d"), + tag: &hex!("27c994680810f7b538c37b551b2f17df"), + }, + TestVector { + key: &hex!("8bb2aa3219c604544b4187d491586d9f"), + nonce: &hex!("341d76da6e3094fc3570ae78"), + plaintext: &hex!("274a2097708c53fd2a81444e13285691eec192c223b84dc9824c67ed3a050ba9"), + aad: &hex!("69c5e98cad9aa3327444b9625eabcd086367e64170d35c4586fa385a396b159425f8dd3969446529d651ce5a3b6432529487f91d193d05d2e345a28b50dffccc0396f76e418086e1fe2768e340c1fcffdb29e9514829548823f3"), + ciphertext: &hex!("ed8775001f33bafdb1ef577698116e9ae656085fca8b969740c7c697450f9879"), + tag: &hex!("6c8936c42dc46321695d3af2a33ada14"), + }, + TestVector { + key: &hex!("4d8154426d1b12eaf98d09ac05b1f9e4"), + nonce: &hex!("23e3916b9d64f98d122e6be6"), + plaintext: &hex!("d8a69c57969c6551c328675f7d772faad6c2c6843bf4b209e483fbdfc5efcaa4"), + aad: &hex!("2355631b9d487f4a7ec98d497f251cb79acfc58c0517d5e7b92a1abbae6ae7353b874d02faaf6410438539e02710e4d7cdada686871fef7582d562f384a571ce1edc68effdb932462e648c712b4e1d4e2e46718abd3cc5973aa0"), + ciphertext: &hex!("2fa53c6fd1846db81002e9c14da634480b352225e9190ab03d2598ef49a3b2b8"), + tag: &hex!("a4023fd8d0f076eed5992f680b154433"), + }, + TestVector { + key: &hex!("2c14b55dc1f8e3acf85258a12360053f"), + nonce: &hex!("5b5930a7f63b1a8ec445dfa0"), + plaintext: &hex!("41a7569d5f3f39ae06547d0ed681e8922382cfc940bc7e55da200ebf905bf476"), + aad: &hex!("dc8fb70d3afd3c67c9a86b3467ddfa23298c6523ebe7ef17b7bcdb2ef130c61bd5adca2eebc897fd4126470e0a9088e8ee4a60939024b9abc7ed551d0e79214edea566ca4d970198f9b3a20b6822f4e30fc2cbe76596a01817ff"), + ciphertext: &hex!("f64364ee15acf049d8bf90aaa914bffae9ac6073b8d56122276efe04b202d0f9"), + tag: &hex!("fa09390c1ce9ec97fc10c55ef2da2425"), + }, + TestVector { + key: &hex!("594157ec4693202b030f33798b07176d"), + nonce: &hex!("49b12054082660803a1df3df"), + plaintext: &hex!("3feef98a976a1bd634f364ac428bb59cd51fb159ec1789946918dbd50ea6c9d594a3a31a5269b0da6936c29d063a5fa2cc8a1c"), + aad: &hex!(""), + ciphertext: &hex!("c1b7a46a335f23d65b8db4008a49796906e225474f4fe7d39e55bf2efd97fd82d4167de082ae30fa01e465a601235d8d68bc69"), + tag: &hex!("ba92d3661ce8b04687e8788d55417dc2"), + }, + TestVector { + key: &hex!("7e6a5b6d296ac7a7494b72c93bad15ce"), + nonce: &hex!("5225c255bc82949a1cdb86c8"), + plaintext: &hex!("8bd452633f9dae0639fe0e67e36401adf65b3edf6799ff9eec80d85c13c85e0ee09491d4f5acaf8ae920281801a2f5d12c9370"), + aad: &hex!(""), + ciphertext: &hex!("2348f512a3a8501be9eaa41d8a127fcd8f0368d5053981a5626f85405363d218af7ba52a2bdb87a1ff07329f21792f4c64fc39"), + tag: &hex!("8753cee020ac668e9e1a37f63231543e"), + }, + TestVector { + key: &hex!("0d54e78be0eba65446682721368567f2"), + nonce: &hex!("aefce9f80307fbff0965881b"), + plaintext: &hex!("5b335be97a86c8c1a29b7408833f752c8c5d4c912e7f26c73b909239e1222fc851b4e3c0accc5148cc60af2f019f9ee0060131"), + aad: &hex!(""), + ciphertext: &hex!("7277aebd1beb239a3a610587b0d7cd71640291a4e4d6dca73a5d0e05f058e7a0e151a0d087ff256d08876e1fc3e0e5e69c72b0"), + tag: &hex!("bda879404fc226cfad834a3e85e04415"), + }, + TestVector { + key: &hex!("0bdbb7986a6026d17a9ded7700831f59"), + nonce: &hex!("e3bdba2fe3b5cad727071202"), + plaintext: &hex!("77ec68b51f5eb0f2d80d3af696627f365b6e83e69f105c7bad8e4869b228a0c496aa05c96e97a6bfcb33aa172f22c6bf3d5116"), + aad: &hex!(""), + ciphertext: &hex!("e7a5a701e950ca26987e1c40c889b475dba50cea13f09e9d3bc3cf4c84382c15bde4c34ff05eb278b4b745e51cbf4f12c12689"), + tag: &hex!("b794991a8a4a9f3d59d9987e9fb7ac30"), + }, + TestVector { + key: &hex!("823e852ef0b9551b2700bed65edcc808"), + nonce: &hex!("85798ee5fd33ef752a363d85"), + plaintext: &hex!("c1ebd968d861fddffab41857de7049bdee73acfea5564cf44ce40d75b960ca5453cda093a55c5527687f25433bd6dcde443030"), + aad: &hex!(""), + ciphertext: &hex!("e8e976e8175a41ec6a629a225cf277a1a7e2b839b2f581c88698a39300e4a54ef381f7b433e0ea9acffe59801d516cd4c61135"), + tag: &hex!("ccfdc010bd16ddd651d0a189255a7035"), + }, + TestVector { + key: &hex!("99c0001a7c12f331e7b3b164daf4616f"), + nonce: &hex!("383e8df9db398c5e9842257c"), + plaintext: &hex!("9d8ab6774cbf486fc4378a05a7aabba7ba7ff4a0f5eeb51c54c2ae9a5dd829d2735089955d5ae240d28da8b79994cd72234ee6"), + aad: &hex!(""), + ciphertext: &hex!("23c5e30b40b0946cf5b4df15407ff2d973397a10e94a303b71a4a5de074644006a10fcab198f86c4156c59e28900b958efcb8a"), + tag: &hex!("8ecd6196137905263729dafc06860720"), + }, + TestVector { + key: &hex!("6fa5f5b79f6f2fa7c1051d2a374db822"), + nonce: &hex!("d466bfcf72789143eade1e84"), + plaintext: &hex!("d9528856db087849264ac811689420ef2beea9c6767644f3ca8bfc6345a3e2e5c49e7e0fd9b1c2e1671bd1b6275b0bd43306c5"), + aad: &hex!(""), + ciphertext: &hex!("1128b1da86b71d3c0cb9904f2513d2329c033754fc0d40f87cdfc7ee53dbe3ab565719c8d1dc5d3314123bc9e096fc8509b85d"), + tag: &hex!("19092b9776c4a1f6e30354fa5115dc04"), + }, + TestVector { + key: &hex!("bce7d033f24ba8fbc237f06f40c6ae25"), + nonce: &hex!("c0d68906e987fe22344cae52"), + plaintext: &hex!("e533180c0c73d75799025303d660e43d5795ad46b84a05741b441f855eeea299a6484c17f39e884aee28b7d384afb49c134c73"), + aad: &hex!(""), + ciphertext: &hex!("4723daa516b920ec039dd8c0704a37f0bbad9340a7e987888db120459c39cc069554638ab6b32cff585ed58e2d7c1808229776"), + tag: &hex!("1ae612e476f5beb99f65aa9b5f02b3db"), + }, + TestVector { + key: &hex!("f78a05cd2621e9385ca111f3a168fdab"), + nonce: &hex!("a16aef83dbbd5f69c2569103"), + plaintext: &hex!("9e761d4b7bdce2b851e508f77faf447ff83505755494f1bb5169dc23bb02d9ba8fb8b4878c8a47dfd14ea0dcef3e83c688e597"), + aad: &hex!(""), + ciphertext: &hex!("7ead6bde964c35fcf5de23f19725387601f705ac11c5fe1fc531746bf2d871fda54264a623c70e72b5b5ecadc4434f9e696ffc"), + tag: &hex!("2f13e4bd9883c747f0c79c91e661aa8f"), + }, + TestVector { + key: &hex!("dc1b8569a8046e3f294c3cca018f6613"), + nonce: &hex!("5b3cbbe0e948db8efe42062e"), + plaintext: &hex!("6a3a1a9815690106d1908bc7e63e25bfd801900e94a9fbc28b6d52b8f9b4de7003b066bbb18bba33da83c67809e3bcf98b5cbc"), + aad: &hex!(""), + ciphertext: &hex!("b02a253a17fb9248277cae0305473870c19e70b7930a0be9be905423479413dbe3702f42024d69476415290b1422f2c030e99e"), + tag: &hex!("f0fb85e3d6b3a5ddc5da3ec797f758dd"), + }, + TestVector { + key: &hex!("cebef154b3ca2167230daf3b8205f11e"), + nonce: &hex!("e0dc23aa50a52cae644874b0"), + plaintext: &hex!("b8cb070ebf5b27a51f14f22c6b38fc29d04c431c484c117ad250ec4f97fc4df44b0ec847b69a363963d419ce9ad11a321686b0"), + aad: &hex!(""), + ciphertext: &hex!("4c0918e86b152be2c4dfe36c78b8a559c2c7f83fa7776d0341318a065c2a2f1b2678aaaff76cad30ccaa1dcd03a5bb16d00f3f"), + tag: &hex!("79267bdf70e74eaa011e889369f5831d"), + }, + TestVector { + key: &hex!("d7e95109127e83b4d43c81d7ef6d5972"), + nonce: &hex!("43ac0d8895ed785e2cb69d48"), + plaintext: &hex!("b2601f216b5e6f60c518dc817c38be940ac03babf2e6f5ddca0874e819f9aabe046460e3ccf6511566bbde2d9b191fc16ac4b6"), + aad: &hex!(""), + ciphertext: &hex!("957e712dc34ad891cdb3adcce62b0454eae9c792e64eb4e08624de103089cc19499749e8ae6d8c92e2c04c5cb36ef097bb00dd"), + tag: &hex!("f569562cb94828fe71fbddcfd984bae5"), + }, + TestVector { + key: &hex!("39ab7819dbf944cccd2648445337158f"), + nonce: &hex!("4594840e05c33bdbc0187174"), + plaintext: &hex!("834cb05681e9a7876bca891eb7824392c7ac29d4ff4c9a8ad96447d2cc5f0ff218043d3510201452ba5c789ba2a667bcf79b9c"), + aad: &hex!(""), + ciphertext: &hex!("362acf79df28c3c858e92c0c5f0a323b3ea2e81be67cfd903a627ed163c06393287b73fe33a435b96672b9bf1a5a2c2cff4a15"), + tag: &hex!("e58a30e2c91e6d25f423abde987cf2f7"), + }, + TestVector { + key: &hex!("73388f83e409ea236129e46dc9a9b20b"), + nonce: &hex!("a9069b00e1cd29a2b07b8db6"), + plaintext: &hex!("a2e138d5611c5043214f7d9f9c87aab94e0b8e99b311d0cae90829078c3898c8fffa7de9789af0a6c05f375b2f710dd4ba2610"), + aad: &hex!(""), + ciphertext: &hex!("77e0fa6b2765428ae418b57ecf5a392230fa2a9bd1686b91df69845cfa0a2dd9add219229e65ff6a2f887b78ebe8c0c5d1be21"), + tag: &hex!("32385ced195a16dad5eea5a19fd0fa43"), + }, + TestVector { + key: &hex!("d590e53b695315cc0b917d9fa0aac643"), + nonce: &hex!("102de7df461a5578e75c4975"), + plaintext: &hex!("7ee631fb685d4a94563e01480ec5526d04a4035d1f615fdbad6656e2495fe5d7f0d6c40dff659fc85f4ccd78433a192313c3d4"), + aad: &hex!(""), + ciphertext: &hex!("e1322d0c9265cd774d2e9d9b6771799600b79ba38374ee1756aa6871e204e5f6871cd50db15225ded64a9c8899bab37288a792"), + tag: &hex!("13e606a9a4c786b65e2260cdda4b1843"), + }, + TestVector { + key: &hex!("b61553bb854895b929751cd0c5f80384"), + nonce: &hex!("8863f999ae64e55d0bbd7457"), + plaintext: &hex!("9b1b113217d0c4ea7943cf123c69c6ad2e3c97368c51c9754145d155dde1ee8640c8cafff17a5c9737d26a137eee4bf369096d"), + aad: &hex!("d914b5f2d1b08ce53ea59cb310587245"), + ciphertext: &hex!("acfab4632b8a25805112f13d85e082bc89dc49bd92164fa8a2dad242c3a1b2f2696f2fdff579025f3f146ea97da3e47dc34b65"), + tag: &hex!("5d9b5f4a9868c1c69cbd6fd851f01340"), + }, + TestVector { + key: &hex!("4324c97ba8c9f2a1bd447bde5e75938d"), + nonce: &hex!("bcac68106a3fc22048462bc9"), + plaintext: &hex!("789fc14b7d4ec83ec783c0ef38faa6706031ade4e65ae91f0e1c579b8c8652e94e04c4ee5d85d23d0525c133a93a9539448ca1"), + aad: &hex!("2a893eec2eeef4c2e9c305428b9e3293"), + ciphertext: &hex!("2ba721de1aa7afba69cd0fa492fcad5fe639d855c1f280802b9cd5dff37f4bf54a117b8f400cb63906a3c78cdc1ae98b0c30d1"), + tag: &hex!("171df263a72252f2c44f5a63f089adb1"), + }, + TestVector { + key: &hex!("51e42ceb83175d1df09b8385a84fbdef"), + nonce: &hex!("ec6b7f21db6eb16ce87f89b0"), + plaintext: &hex!("4c5a34b0acc8745f45c04d6c82716b83ec6be5146d1272835ea642b49f55353fbc72a3acd16624e5377cbab54e356e3af6be01"), + aad: &hex!("3a081b5734537305222f314ef39a8d20"), + ciphertext: &hex!("1b4bb70f3ed38f378e29edb7e65081f794725a0340daec5708a163a3a81272ac2bd4b3e3db8f8ad57d571b5eb24af652e3c87e"), + tag: &hex!("6a9f2a4b73290fc566f37c286887eded"), + }, + TestVector { + key: &hex!("9280e05a614d452f407aab696afad52f"), + nonce: &hex!("099ef02922592254e44517cd"), + plaintext: &hex!("db91108d47f266dd9371698b194b3a183f2936782be417cf1a048c6504162d37e11a41e3bbfeb98f995ec8e35de94bffe0a363"), + aad: &hex!("12dc4da623d082c767a3f7efe9a6ebc9"), + ciphertext: &hex!("8ac070ab975218af0c22435174abcab01af5db9917095e67140b31feeb78b7d5be3186b4fc41f106303a519b5a32399d2de77b"), + tag: &hex!("7811b48513d9bcf1999b52304492b0ad"), + }, + TestVector { + key: &hex!("89be3c09ae7e2eff5b63f913aa8b575c"), + nonce: &hex!("449d852d65585185bc4298f2"), + plaintext: &hex!("93ccf5d907dea9b0fed5507f8a26400d0a568c0ef53b9fa6bf9d6802b20fe672c9a9536fc75b85f08e4d2c45cf032422f30ea9"), + aad: &hex!("d232713c2b024b5affd4a15050dcba41"), + ciphertext: &hex!("5b38069d695b76a609318e93cde6e239465ac52264017c3e5169bddbda0d2ac76ef0451a3a39d07e8e8da3b0cd2ee808912b4c"), + tag: &hex!("e316e6032fff56e5242caa1b4ef2bb6e"), + }, + TestVector { + key: &hex!("04cbf7dbeba906e1d0e8a98d796e8613"), + nonce: &hex!("b58059139429a6a6a38ccb07"), + plaintext: &hex!("8890c63ab730d9135e19ca3ada35b34a2d5bd9f4968d60e8c65bf43f0d6def7de472c26b89af9e5d6e48c125d84b0fef7d194e"), + aad: &hex!("7532c6237ba1da8b99c4a091c5159eb4"), + ciphertext: &hex!("52bc0be1920a4f1fb3ba3f9fc3e7969c75e40fade163897428f49fc52b6feffb61b65344ab3ac995e07dd5f615c24b447df9a7"), + tag: &hex!("239b60518f3c35b24c2557549179fd36"), + }, + TestVector { + key: &hex!("8f1c70136852dc27ae5162b8743c90ea"), + nonce: &hex!("d372f92b0cf030aab042a6fa"), + plaintext: &hex!("0b6446af88c455d7f1ff5116c7af949803cc50bcf1ecfc81c6627141a42b363f7eb7fc628503bb6f037dae843fd2d319b61118"), + aad: &hex!("7eeff5d17e79f00d68e26cb7e6bee76c"), + ciphertext: &hex!("4f235f6cc2c0474ab50557e2cf612ab09ffc85975de082b9cb9649a522b8a47f24e1b2c48f3cd57dce49542bd3560fe5e44bca"), + tag: &hex!("c541b78244efd2b9e61e75296f164aad"), + }, + TestVector { + key: &hex!("1ac69a35f749c65d5d27ec109b58f336"), + nonce: &hex!("f0b9c6e8cfc7ba4c880d99a8"), + plaintext: &hex!("9695507b944865587f27395c74468af6a845716b34db61e437b77d0107387b3fda581c466b6df40948da35906b77ff8ed09402"), + aad: &hex!("251d75d69ab64f1363efeaa771f3dc01"), + ciphertext: &hex!("f41dc7402768705dbe3bf7cdbeb4fc672d3a6c3d65520dab3082727dff084b6e0bab17f96c2b137a4bd564a13f77ee37347383"), + tag: &hex!("022edf7437b41653db3bf2479a9e74a1"), + }, + TestVector { + key: &hex!("16cbfdc8f9900f6702a430b0d8b624cf"), + nonce: &hex!("28dd5c46e03680f2c01a7bba"), + plaintext: &hex!("e1562d6e6a469cfd9f0a6a15be9a033cd454959ef8b37b2da58164fff1d8dbd3fac2b97bf1b503046fd9cc68bc942d0f727a3c"), + aad: &hex!("b1bcbdd27c0ef4de462fce0be8855a36"), + ciphertext: &hex!("10915ff87b80e42d548950e53ff6642ad44afa695175d24c9b5197f64c15570ebe0bc969c0251be940b42889464cf562c3e1a4"), + tag: &hex!("f9606f7a0e41153a1b45c25f1784cace"), + }, + TestVector { + key: &hex!("4c12a54aa7bb7a0c0c798834f39b3fa8"), + nonce: &hex!("e5854fac9adca3bb1bc549b7"), + plaintext: &hex!("7e7fe58f9f13907a694b47f053c9270c2e4d73b52642a71446943a5c5f3e2fcd554b376dd2f549aa7e0737b62c6414f542bba2"), + aad: &hex!("7f42a7791e705345888f00573be98980"), + ciphertext: &hex!("df46d7519910899b7c3d9e7d0dab82c93b7d8ee03f4f5aa82ecf64cacf3c9fb58f17a021536028744e412770e57562249e5f09"), + tag: &hex!("2823d4b59cf8f8837bebd5efdfb92929"), + }, + TestVector { + key: &hex!("32aced5414e267cf77844c0acbb8872c"), + nonce: &hex!("3d108e912d53b88e0dff9d6c"), + plaintext: &hex!("c7fcf53c93a521c6e244f203cfc40b80bd8ab1e4e54cdb581fc14c31dc6a93805edbba32a729acf1a7c04c8b0366c2035c65b3"), + aad: &hex!("7be4c5df7935453d50f1c6c79ae6c13a"), + ciphertext: &hex!("80beec8c20c7e9514c38ac6e3775de206754433cb1d7c89bbefb33b1b41245e0d1baf7cc870b1f1ec387f2dded3e0f479ef160"), + tag: &hex!("d97f7d82b3ff97f2f6c652194c004748"), + }, + TestVector { + key: &hex!("6275270952263f5f008b16f2456c7ddc"), + nonce: &hex!("1d1837ea4cb3732a6ea6487d"), + plaintext: &hex!("fd4de28a18a3de3b9660acf08eeac40e192b77c5264c80651c28628e61c3916f7ac03d849ae39c981a2808866a8292746a4793"), + aad: &hex!("6ee8ed2ed241f1d7cee55ca67001729b"), + ciphertext: &hex!("d69490708893f1638ad594c3a0ad8eb4f17da3203b18aced930976ee1abf4df1ae8a768ddc9df6ccdca2d579165023e52bb9d7"), + tag: &hex!("aa47cda3928f7a2ea42feae4dfb0800f"), + }, + TestVector { + key: &hex!("7796d479bcb213f19e2ed73ef1069fe6"), + nonce: &hex!("f0ebb6fb1df60069b00a34c7"), + plaintext: &hex!("f72603b6e74bafc20f423bea2a1036ab44461b5e5a5631b013573d953e1fb073b855511860d1782c1f3b146b5c41eb946e2fca"), + aad: &hex!("87563b4d72e2f2c0094bff678e3b7975"), + ciphertext: &hex!("44c4d7ba2af1be22daa6352b58bf8cda28999bc33c420f8881001719fe639a9e9e5c48df120f7cbe73af4c1513a637b9de33e8"), + tag: &hex!("8b7002219f586318150132e0e5cbf2e9"), + }, + TestVector { + key: &hex!("f7c50f29479ff0f9945ab9df56872eaa"), + nonce: &hex!("1bb94d7b399eb7a9a0efaf6e"), + plaintext: &hex!("fa86691b746424b3426dd9ce8cf0f132de5c575e001701324ca7ce474d5813a19904591055fc7f343e20d0f4c92118b14ce774"), + aad: &hex!("88a9f81078d6a0820c56c582a30333b9"), + ciphertext: &hex!("55024fc5e95e5f7c33bf948c167b13382236b2cf187cc09e37dce043f6293fe457a1dde728cf407c702d75a670397ffe28e8ba"), + tag: &hex!("645ca60cfc8046a0253f438e69b8e47c"), + }, + TestVector { + key: &hex!("f3e302a1568a5340b5745ae87f5a5bea"), + nonce: &hex!("ce41f436f2e84643f673603e"), + plaintext: &hex!("e4abaa66875bd8d45b6ed5e7671b03e09423ea41b7d89039da92728151bd690ccdef4fa16392a7f85efc0bc2b1664bd3f15e77"), + aad: &hex!("87ba36d234ec508b308ff258c6bd427b"), + ciphertext: &hex!("123b69b2d0f10934da3fdb5c1b96b4ffc8ffc1446088b634b38e145e6dd98e8fea17214b5c9136f039577d4493b8bcf935ae19"), + tag: &hex!("97ca8cf064a408c7b764cf32d3b79c0a"), + }, + TestVector { + key: &hex!("fe47fcce5fc32665d2ae399e4eec72ba"), + nonce: &hex!("5adb9609dbaeb58cbd6e7275"), + plaintext: &hex!("7c0e88c88899a779228465074797cd4c2e1498d259b54390b85e3eef1c02df60e743f1b840382c4bccaf3bafb4ca8429bea063"), + aad: &hex!("88319d6e1d3ffa5f987199166c8a9b56c2aeba5a"), + ciphertext: &hex!("98f4826f05a265e6dd2be82db241c0fbbbf9ffb1c173aa83964b7cf5393043736365253ddbc5db8778371495da76d269e5db3e"), + tag: &hex!("291ef1982e4defedaa2249f898556b47"), + }, + TestVector { + key: &hex!("ec0c2ba17aa95cd6afffe949da9cc3a8"), + nonce: &hex!("296bce5b50b7d66096d627ef"), + plaintext: &hex!("b85b3753535b825cbe5f632c0b843c741351f18aa484281aebec2f45bb9eea2d79d987b764b9611f6c0f8641843d5d58f3a242"), + aad: &hex!("f8d00f05d22bf68599bcdeb131292ad6e2df5d14"), + ciphertext: &hex!("a7443d31c26bdf2a1c945e29ee4bd344a99cfaf3aa71f8b3f191f83c2adfc7a07162995506fde6309ffc19e716eddf1a828c5a"), + tag: &hex!("890147971946b627c40016da1ecf3e77"), + }, + TestVector { + key: &hex!("d441280905a33bcf02ac16f8cabe97cc"), + nonce: &hex!("53294f8b440c82dbd9bd7543"), + plaintext: &hex!("5cd42b150db7d0bd6556e37e386dfafafabe2aefed2823be932f9daf1234aa0402bead485ebda3a0a6e392d5b0e603ae2dfca5"), + aad: &hex!("aecd49cb8890806d47a950c8e92ab294f325961d"), + ciphertext: &hex!("3ae74193c94ebb96fbb1bc5ecd180b2c0efa1ef4a9ecb6959631f8554f0eb237893476cc0d4fb55fa1880989c1616dd32b964f"), + tag: &hex!("0eae01a8473a8f603c6ae6b637e4aeba"), + }, + TestVector { + key: &hex!("4f66f21817d1865c2fb62d4de344e085"), + nonce: &hex!("4c780a2707f56747b24a4aa0"), + plaintext: &hex!("04eade2d68dc3c5d83f2d3f1c44240bf86127c9f6b3966085ef41ef50107d042b18bbe80bd43cdd1585fc5a99df8271b9b8767"), + aad: &hex!("4c0ec2531542bc801b3ddf593c2e1ba4afeb603e"), + ciphertext: &hex!("dcdf8d2b0d388072ce273ad3502dea5122bac0020a7ae3b97705d3a2bb49a5cb4f95e6cbd74183758c2eabc9ea38155c7ef647"), + tag: &hex!("2558c59cc7d71a2fcedd13f1c6659a63"), + }, + TestVector { + key: &hex!("638276070f70a48dfdd3074905f4dd8b"), + nonce: &hex!("08aa05eee9be39f28f61299c"), + plaintext: &hex!("bca63b1fd480b7c682f992b3ac40712cd412e5bd5141126311ea3c5cd91ff8d75b7ad7be0ac7f61d41292e673177e55e148b8c"), + aad: &hex!("7e3ef6f9d9d33a6bc5904b1317d235ce1a99ffb3"), + ciphertext: &hex!("fab16aaf8cce26586b50e794e889839e0edb63f14f927f353569cac1694604de593d72c52977bf7fe2b6fcecb2d8918d0de8e9"), + tag: &hex!("bd97aacdb02b80a01487d690b5e905bb"), + }, + TestVector { + key: &hex!("dc7fa9348b7fe1b3befa5a09b2dc0f7a"), + nonce: &hex!("51e208cfa9b9d990013f50f3"), + plaintext: &hex!("0b65800b4dc2aaafbc837f9ece7a9111f3ba0309196babaa6b63ef0fedab779e0d352933536520e4ff1c7f079505ead882adf0"), + aad: &hex!("b7219b5b1801457d71cfbe342148849622592c40"), + ciphertext: &hex!("2caae5923cad79802d682172f58191349240a24e25891461ae65394b95413b34e03f3551baf1a055d22a53a8a38f8ef78f6d40"), + tag: &hex!("10769ae854f8298cd94c28c3e28e94e3"), + }, + TestVector { + key: &hex!("eaf1659e08d0f22a7042358ab0ee0f0d"), + nonce: &hex!("d6911b68856038ef9dec1215"), + plaintext: &hex!("0e71b3765f17e016c3024be23d0af6cf50ce98d86943b38cbbe8f3dcb540dda64b77bf73c7cda108e1a5c4bdb590a7f747ecfd"), + aad: &hex!("433ae638214c48207fe9cdc76ef99e28913d6a8c"), + ciphertext: &hex!("bf4aff65fb7df0858962474bee9fbf95b0f06637c7d72bb1cbabe46662f455d3813665477b4badfb206a4d8f01346119e559ec"), + tag: &hex!("866f204b04a309d45e65ea890a17ed0d"), + }, + TestVector { + key: &hex!("382697fc2ca220a5d6a700f7fadbaae5"), + nonce: &hex!("3fe9d400d10dc33545d6cc5c"), + plaintext: &hex!("7d187a1fd4d518197c1e843d613797d4a9fa9da6fe9f773b947dcc0023c43e917df575baadea90237d95f88c54692ef8be672e"), + aad: &hex!("a3cd4b0216378918a46252ca16f2ac9775e993f9"), + ciphertext: &hex!("8e640b879d473d7ce6689175808b925b6ba1177ad8b0c53208e1b7c6303844f52c8cae5791d0aeceea028dac107fad5e80866c"), + tag: &hex!("3849e4fefcecb108f83ddc039a21dd91"), + }, + TestVector { + key: &hex!("186f6a73ac82e33f69c5b158c7ee1cbe"), + nonce: &hex!("bad41bfe8b67151131e85b2b"), + plaintext: &hex!("cc4d9dc2df86165343aada60cb5c1d9f991331d530d860dbf9166907d394721b2a22b53a6b070c5cb32ba3788ff55bc6a0d5f3"), + aad: &hex!("dab496ae14125af2fef47ee3b226a6c92e99b9e0"), + ciphertext: &hex!("41a17c3b18e67d84bfab344bff1429a87c3076879ea42383d1e622e710a60612eecf2fae8a56a95a08c958a52f873ecb303785"), + tag: &hex!("335015e14d2cd8eb9813799c5c703a89"), + }, + TestVector { + key: &hex!("14ba3901daf9db40d5dfbd828a361ab8"), + nonce: &hex!("af37192707a3804beb57c836"), + plaintext: &hex!("85f016f83ceba76a068e5def3ed5ebac85e203c69e32676550c6ed864edfd2ccb2c8da415a42cc6ead791e869296091efe7ca0"), + aad: &hex!("1ac4a38e83649004727d2b2b71075264cfcade09"), + ciphertext: &hex!("2a682e5579d7f801fdbdddb2b5f8564c9e91c39cde47c48ac1dffdf7ef1674ed937e77215691110ab730af97349f84128eed56"), + tag: &hex!("b1b50298f48b96e679c3d71f3d17d623"), + }, + TestVector { + key: &hex!("c0552b2f54f4e8292119dbf61285fecd"), + nonce: &hex!("b5a580ec23753690d6c7392f"), + plaintext: &hex!("88c04f3421de415f9ee9b47e033666c0d182d04f38e6faff5fee5ec89d1bd391079e90fb22c537efe4561718588eab313cfd5c"), + aad: &hex!("46cad83fbea4c47b9374bacb072472edcece9acf"), + ciphertext: &hex!("2ca83a4a63de404ad2306a4918420fe3105cf7f9a52d16aa610e3b69a0fed246da41768c801c19d7502ccccd5ba0a1bc0b50f6"), + tag: &hex!("8c03304e8a74dd52d4e3baec89cd397d"), + }, + TestVector { + key: &hex!("c6efbeedca979cb2c4fa5d6454a77dc1"), + nonce: &hex!("4e57df4988d93d13dc512487"), + plaintext: &hex!("a52077491b20ac65eff89bd0bdb6150ca755cf469c42ebbc5c95bbcf3aba91a9002bf386fc9a126fae73dbb2daa7ceb79d0b5f"), + aad: &hex!("9e65d0542711fe57abfda27587ef4161eb3fe32e"), + ciphertext: &hex!("4dd803cf6c99d2ce3ee8a1996f52837e52c3bb386cfc2792318e1ba64c35b638c9508b2e21d1da6e635e59e37c02c0b0a2529d"), + tag: &hex!("af847ce419fa54045a8bf31062f6d349"), + }, + TestVector { + key: &hex!("3d68401d7c5f5c0a2529ede00724be14"), + nonce: &hex!("3f3eaf76e786e8af54baa56f"), + plaintext: &hex!("8bfeae1dadfc55baca191a6a3f54ab721862c51ce684e4aea6e9a3e2f3d2aac14af1cb0252f29a4c8c0984ce867acebc7596c7"), + aad: &hex!("6a6e3ea815e01cda78a76b0fb8bdafb8a25a6b7e"), + ciphertext: &hex!("8a62b81a69e6e104dc075cc32730ffcb419b9f41711e06d7c2d9e891a88dc6e88817cf5bc2b87e95c4678daf0ca4b8f1e03927"), + tag: &hex!("9eebbcee46565fd4c34b8f47bcd94b31"), + }, + TestVector { + key: &hex!("0657bb596cc28eafd51cc09a3e6ec1f6"), + nonce: &hex!("8e11a0625fba51698614f8f9"), + plaintext: &hex!("435f16f56aa71734dc6571e2714207f7ff85c7eeaa1879901f2ffa00ea45038db54329f0a2e78ac58a5d76314788d8351777fa"), + aad: &hex!("cf73715474e49d71f4f5ad08e209ff9774ae9639"), + ciphertext: &hex!("d876339f0db3bff022cb4504fe0a8ae26040102f575ecd4e4583b04959976254d07384141ba5748d3579815e3b5e1d1e8fddaa"), + tag: &hex!("7e6f7096e425911fe739ac90cca05fda"), + }, + TestVector { + key: &hex!("b2c645e0f2dd0d21e9511364f9355919"), + nonce: &hex!("91f6f089f5e828d6fdf12510"), + plaintext: &hex!("3c01159e4787a74a707b4ead3be126b819831296821f1add394762ac97599cc810bd97205d0743548e7150bfbe6d9c1ba5d581"), + aad: &hex!("e6781ff89032df5e5398108f1d569d7f8327b25c"), + ciphertext: &hex!("1a06dec18eb4c9b361f1f2ec6391daf275f15d97a7f1a73fbe1d144bc1e1018200f725d52400c693a438edb595fd4558c4227a"), + tag: &hex!("451783874f9d925328208bc4c56eed33"), + }, + TestVector { + key: &hex!("3c50622868f450aa0928990c15e1eb36"), + nonce: &hex!("811d5290768d57e7d87bb6c7"), + plaintext: &hex!("edd0a8f82833e919740fe2bf9edecf4ac86c72dc89490cef7b6983aaaf99fc856c5cc87d63f98a7c861bf3271fea6da86a15ab"), + aad: &hex!("dae2c7e0a3d3fd2bc04eca19b15178a003b5cf84890c28c2a615f20f8adb427f70698c12b2ef87780c1193fbb8cd1674"), + ciphertext: &hex!("a51425b0608d3b4b46d4ec05ca1ddaf02bdd2089ae0554ecfb2a1c84c63d82dc71ddb9ab1b1f0b49de2ad27c2b5173e7000aa6"), + tag: &hex!("bd9b5efca48008cd973a4f7d2c723844"), + }, + TestVector { + key: &hex!("a7268c7ef7bbc2be4a3ffc282019fba6"), + nonce: &hex!("df2c5bd03f2cc45a07173144"), + plaintext: &hex!("f88beae931a68ed813a35bef54bd9999fd23ce4a1d258e34fac184ba799132a408bde4ced23748db5b35ea9692f4e1561d4cdc"), + aad: &hex!("445b4ec6c505f132d3b012df624fe8f6e9cda0d8ec5e1ef7cde8b89259e167d68c1fb4dc4a78e5c59377f32ef5cea4b9"), + ciphertext: &hex!("ea53e264e1b0f67ee37c81234d3b9c253ab1a94a4ad17779efcbeef0526129b0fd224b5884eb8b38e35ce0bdda222e30f576f3"), + tag: &hex!("38b5ef8d660f856d495db50f702bb462"), + }, + TestVector { + key: &hex!("183dc6bc9a497304011e5aa41dc575b4"), + nonce: &hex!("0f4e2961d8ac4f81f559de7c"), + plaintext: &hex!("aaad38b847c7a6fce801ff4ba62639592c487382e7e3ab0f29d0dde432f31028c0b14c67c15cc3664c660c197b4792433924d4"), + aad: &hex!("8ade36c0d68fa431838beb9f1d6a422365024bd5019979fa9b09b7c44b785e051dded5c9e21f342cf376e72cdae95207"), + ciphertext: &hex!("38e09d7612a536a80d2e32a46b0e1e4ab1e1022e854461aa7e695d7aa4a003e379c0e270face29e19d74d40a60fb2e8c726aca"), + tag: &hex!("4004e9763f4a7d0fcb0ba57c7611f281"), + }, + TestVector { + key: &hex!("047dcb88c16bd0d32d9a6272b079e379"), + nonce: &hex!("d174ed8d60c0d5c814dad4f6"), + plaintext: &hex!("f957104f1fd87e9e1d6d35171a1cbe8fb22cb4ea7aba31e763e77c6f291db81c63c910cf9b8d37bf93fa28fd4e2808480b5836"), + aad: &hex!("c6567022bdb5f2f3a1e3d78e0202a5f6b457c0ebf46a4b0620afa2b5ba706f1a37f932058afdb8cf4eb9a3815ecad445"), + ciphertext: &hex!("b7f83cb77ef93895a6721dfafde8930090d2a9f39a1d605bbb8d7fe0f0fa838fc6d1f0e5e532592d0c688231e24139e635b502"), + tag: &hex!("452368d42f8a1211b4a018ad1acf837d"), + }, + TestVector { + key: &hex!("7286fe98ac0c03252f3ab7eabb8988eb"), + nonce: &hex!("e32e708c6302ce26902bd599"), + plaintext: &hex!("58fad037e6efa65630ca14698725538c686ced497c584afad218fa3b753beaa7a72fab9c4c108ad14bf5f024613f91a1155679"), + aad: &hex!("4b9003a0259ed70aebfabc90abe750b888e9db453d9f95790d752d4ab9f208ee478046abaa9b2bf24564216071613297"), + ciphertext: &hex!("ead0bc4e5902600598f9ca9e91cf4543420cd64e281a710fe890e0cffefa803d8c046390da6f50fd44b7e87861ac4088b5266d"), + tag: &hex!("970659d5170d654b55ca5f79a9e06957"), + }, + TestVector { + key: &hex!("0dc3090d2786eff167b291e895ac2261"), + nonce: &hex!("6ac8f3a8a61448e1fec06d6d"), + plaintext: &hex!("3017261d20002fafdae4252dcc9b1214e9a9ee959533d34aab136249ca4ef52ab205ea69efe6fd21ed3c90f8933593fc63454c"), + aad: &hex!("a85588d465b1ec2d935ce1ba5d6397bd57055915329830b1aa4a934f2080ecf48ab5f6269ccaaed8a10f398be64cdb8b"), + ciphertext: &hex!("1fd7efc41a54374048e5d2a196bbb5b78452639db232c4c106fa8da6b1471ac14aaf2328e959a9c55f201d7271451151bfb48d"), + tag: &hex!("be7ff0322d4d42009dadf48e5aa939d5"), + }, + TestVector { + key: &hex!("d169282809ddae3384a10b908b8526c3"), + nonce: &hex!("c9448a902e05f8ab10ad92e8"), + plaintext: &hex!("490b469f84939d62e00fdef53430232e5b0ef130d586bbfa8a3d3ba30d91614b64e0da092f16b83a46c9386ebed0bf9e863950"), + aad: &hex!("71b1efec4e50041d0446e03b07ffdff05c6259d90aa7b33189e95360bfeba23afe914d0f17db6ba47ea165cc06d501e7"), + ciphertext: &hex!("ca693b2350d23808840870c2371f49eda453f2e189c70b975af2531b9e8b0d8c262829e61f8990804844ac941b2fe47399a88d"), + tag: &hex!("8bc9e25a568987b427cfc5b42e412d7a"), + }, + TestVector { + key: &hex!("93814839da20b560268ad8fe257a9372"), + nonce: &hex!("f157ac4a83a7b73b8085085d"), + plaintext: &hex!("bbad922de6dea7153724a333554e1aaf2e37aecd182b45885d04f3d11c3763fe59c26828d30c9da95adb75fbd5fbd2e6ece12c"), + aad: &hex!("9b422e74f2109925264c1c0dda2b68c979afdac110e42b81afd2c59e2df3ff3f93832552b626b3821212a3e20c401949"), + ciphertext: &hex!("be069b414d93d4f641b053f1ee7a61e23bf287a63b1d06c05393e8faa5856d22724bfc511a306ae4ba12c0a051b479e35c229a"), + tag: &hex!("53a62f9431b8e6124c9bf6298f1b2880"), + }, + TestVector { + key: &hex!("3262f2442b89a3641456cfa3d4d186fc"), + nonce: &hex!("d0fc4f8f7bb74a1763862407"), + plaintext: &hex!("fcdd7cd83a366f94289d8b470345fccea2aff778edd9f60c6d8273b3277a843965f0d4ff8be1e61ee82caae8754b87e747b2d5"), + aad: &hex!("bee1c8ed52bf347431babccac2a64275224045d5c1122eb8c2ac3d8791a5a9c37abf050c406ebeb947428bb60d58d062"), + ciphertext: &hex!("d0e5cecf32ef65035546cf8a99dc7e6f4320376f8e16a51958dc796c9b9a37a0d74e7b9979a0ab5b88ad92988dc184b964a11f"), + tag: &hex!("37c52cd41ee2d519aa8363b186aadcc4"), + }, + TestVector { + key: &hex!("fc937348a4468afaa629f158dcff5a6e"), + nonce: &hex!("783aa881ba0938ed8fe8ea30"), + plaintext: &hex!("0db6285ed23143762d6e9b708f0c84ed3f48d51e8b3da549f1ce130bd434d0c38238d0e2c6e2b7f6a35eba2cd84d28781dff19"), + aad: &hex!("31b2892a669cce974c2b467d84c45189b335a5943d43b2f158d5c173be4fe31f8142f1b697c772f175a65dd87ae5fb52"), + ciphertext: &hex!("29d665791fac09a72dd2178d69de16a5ea3432bf70acfaa174ec4cc93df7efff5f3c057c1ffacc80eb2991b1c79ab565c1f97a"), + tag: &hex!("113a2dd0be60dd45ea4f3d8b90c1122c"), + }, + TestVector { + key: &hex!("a9a33b71eb81d091ac1d15e48a19a067"), + nonce: &hex!("bb86b999753142de6573e863"), + plaintext: &hex!("910246d2435786fdc8f950a0e3a79d081ea1c41eebb875de2eee9daaa8250850f636522cc953419767ad24982bf14427243971"), + aad: &hex!("7a4ba8b30eeee2f457b74699d2ff77d8f9912f09757972bf8e5e8ec37684a8e1523b0afec0aeb5fababdd945fb55eac4"), + ciphertext: &hex!("a4cb039956e398846bac343db72b72ded486f64fc58c8b3c3d8fbf1f91b00f4c7c2a560f88f73b7eda4bf2bcc9d4f7a6c62f9f"), + tag: &hex!("dd594f34a29fa02af3accf567d7c5206"), + }, + TestVector { + key: &hex!("7cb2f97b5609e76040712a95bfe84fad"), + nonce: &hex!("1c2398ea67c1246540c469ab"), + plaintext: &hex!("ede4b5732c8fa7bebc87f72da2e243dd4173ddad700bef65adeeaa0c570392fc477b3d2b7d404bea40074a6d58a00f2466c1bc"), + aad: &hex!("add3e89872e09f64d828463d5df7519de1a9db7639229b67901bd27ac3c3ea61ac1612067d72037adadd2e14475584a8"), + ciphertext: &hex!("6c6dd8a691eb22294818e61e33afea9e49353d1bb6f645e821d7c4c31fb440dd8cc2651450a764a22038978651ffd33d4be108"), + tag: &hex!("ea246bb5e2ab3282c27927cd983a7297"), + }, + TestVector { + key: &hex!("402fc879126ff144792af40975f0a24c"), + nonce: &hex!("bdbf6e81feff5a11df17e205"), + plaintext: &hex!("8c60dce80b0a5ef578d680d1c811967265cc7664c751faf4d1472dac5b96e26e3be439b19e3da83b1a19dc82ba00d435e03342"), + aad: &hex!("de8443df44d93b3734d8820b9a26010d6ce09c1bb9a02260235a40299d38330f67792d0f54c0c0fb35ef9febcbccd02b"), + ciphertext: &hex!("8753e01ee5c088bcae1309b2e4269d9fb15491831a1e17140808f30aee4fa528020a7fc7df8627cda9b7401c44b15aa1e7c644"), + tag: &hex!("0f457c92a99ac1eba1b6105d6d23ce53"), + }, + TestVector { + key: &hex!("ca5549614dc0324564002139fd6a360e"), + nonce: &hex!("8a4de31b0ddc6d2a3570fac0"), + plaintext: &hex!("37610c187d287982e9afc15a9250aeb91933369dedc5910e4de584d70c27b7e4e0a7b02869299100fd8ef75bc66ae4bed2a853"), + aad: &hex!("6b88709627c28825569d60772b6642a9dadbf3ea9904b290dc632a837d579d2e81284bf4350923c1863e0e8d5894a34b"), + ciphertext: &hex!("29505af512768c89d84054cce8f8889e9b4a095098b9cec7e26a6afcf7aee5132fb43caf7edc068fb6aea3570ad9310a5c3329"), + tag: &hex!("d0918033b6db5f999f26bed94d352af6"), + }, + TestVector { + key: &hex!("a68b64267d0d1bc2d94b9f691ff8e9e4"), + nonce: &hex!("a27706bd8eae8bb3dc95a1b9"), + plaintext: &hex!("4a99ab41c604d7210069d9228dd3223b6f7da215ddda16cf93bf6658784cbbfe08ef6a0152cef368415dff9f8d1d05ead043f9"), + aad: &hex!("8734fa3cecb5793b2b7bcb4fcde7808303c27c2c002a27e0dbaa378b3df4909e37c238a24faf49b6cd134419948bdec6"), + ciphertext: &hex!("43aa0432a1b468bec64de45b66b5fb3e8b2bd9277801ef53a1cd6757bfd45aab9c6b23f0a1f4b30fa33fe52fabe7bb86281964"), + tag: &hex!("fd39ef2e94707a1aba57ff2de7c17927"), + }, + TestVector { + key: &hex!("2c1f21cf0f6fb3661943155c3e3d8492"), + nonce: &hex!("23cb5ff362e22426984d1907"), + plaintext: &hex!("42f758836986954db44bf37c6ef5e4ac0adaf38f27252a1b82d02ea949c8a1a2dbc0d68b5615ba7c1220ff6510e259f06655d8"), + aad: &hex!("5d3624879d35e46849953e45a32a624d6a6c536ed9857c613b572b0333e701557a713e3f010ecdf9a6bd6c9e3e44b065208645aff4aabee611b391528514170084ccf587177f4488f33cfb5e979e42b6e1cfc0a60238982a7aec"), + ciphertext: &hex!("81824f0e0d523db30d3da369fdc0d60894c7a0a20646dd015073ad2732bd989b14a222b6ad57af43e1895df9dca2a5344a62cc"), + tag: &hex!("57a3ee28136e94c74838997ae9823f3a"), + }, + TestVector { + key: &hex!("d9f7d2411091f947b4d6f1e2d1f0fb2e"), + nonce: &hex!("e1934f5db57cc983e6b180e7"), + plaintext: &hex!("73ed042327f70fe9c572a61545eda8b2a0c6e1d6c291ef19248e973aee6c312012f490c2c6f6166f4a59431e182663fcaea05a"), + aad: &hex!("0a8a18a7150e940c3d87b38e73baee9a5c049ee21795663e264b694a949822b639092d0e67015e86363583fcf0ca645af9f43375f05fdb4ce84f411dcbca73c2220dea03a20115d2e51398344b16bee1ed7c499b353d6c597af8"), + ciphertext: &hex!("aaadbd5c92e9151ce3db7210b8714126b73e43436d242677afa50384f2149b831f1d573c7891c2a91fbc48db29967ec9542b23"), + tag: &hex!("21b51ca862cb637cdd03b99a0f93b134"), + }, + TestVector { + key: &hex!("b818752aa4452120808c3d211d57c224"), + nonce: &hex!("d679a0be22c2daf619b11463"), + plaintext: &hex!("7ccdecf13130c20f67dd6f47adec33dfb52bc84a7700431b7fd398d652a123f086ae197328cfaed127a91866c95bdfdb4849ce"), + aad: &hex!("bb853b60b5fd8bd24acc9db9dd3de48b775d4a5cb2a879c1dd78bde94cafee06db12a1574eade205dfd3a8c6f68599e120ec73b6b4559cd03d3118b2b1bbe340bb15320c6bf8d8a1c3c1247b4023ba2949ba6a5ab13f2d85b93b"), + ciphertext: &hex!("bc1a886c9e5accc34f0c237f7ed996e940e4b0ec882638e69866ed24d86467f5433aee23448df39565a0ecfff2c40e6857f725"), + tag: &hex!("5ff9c449d0bfa870ebefe78d519a8d12"), + }, + TestVector { + key: &hex!("528b8948b534d5f780ae3f1e23a47a25"), + nonce: &hex!("fec5eaf0a6d6f5c4adec9618"), + plaintext: &hex!("9c5280591311dc212d6ee2ad8b83dedf03b91e244d8a42690c9a5821ab971453c8b4f63e15bb8af96aeb4a3e35515b651bc68d"), + aad: &hex!("d5134d84a96921537a17869c3ed08c55c29e0a67a30943cb248849843794c1c6fefc98659da9b0f505bdefc2e4ebe9523d2a165b63b5e3b2ba9535821d62aaf95b9c7e6ff1f8807a13e79b9fe589c0d9febbabf9372b01ac2051"), + ciphertext: &hex!("bdf0b752160e64b626d5c543954570169e28b033f77b6ef8a37bcbae2a294a9e7060c3235b290f79c69c39a66b0d5ecc81d02a"), + tag: &hex!("f93768c97781ad0486f2f9e8210f2a22"), + }, + TestVector { + key: &hex!("824ca85e2e4b2a6c6e6a65ef8616c57b"), + nonce: &hex!("d2bf92e7dc53676aac4e6d1d"), + plaintext: &hex!("cd4828e5977d7fc5bbf7f6d1870bf6333c204087639a3b494a4037170b73fc6b32c4555d1a02a8837441734d6835a54bf35a44"), + aad: &hex!("465afd08d7260308d8d21025f31570e5dcd6bcbd6520ecb6ff85de58378d5af6eaf7cb2f1242c0c47b759c58dbc6e4b45c8b993514f14b82eda3fcb6a0df2075a0ab76fa0c5b6cb37d1d28f773dac591790887d2d72f03bcc5ae"), + ciphertext: &hex!("4da02474ef189de863d53323ff6737c12efb3d60a890a8d53991de57ffc6cafd44c429a762a2154c5a937120db2161f2cf2ea1"), + tag: &hex!("949d399a7e2567b275c6f842de602605"), + }, + TestVector { + key: &hex!("4f60b753a36b4b1f2e4d8300ddc667a5"), + nonce: &hex!("35fa2551581f8592134bba45"), + plaintext: &hex!("83807c042900611f50fd42557b7cf66315872225143d2cdf8c05ccf688ff21da8f6a2556b0051285b8e7cb8aee05b72816abd5"), + aad: &hex!("9a006b7cea27f3b4a305ffb0c5bec7e3582c6a3be028ebf44bb2496dae1f492f765cc66c82d3a2212abd6142524e0727dab8ae506e6d5b9dd361e3a37df3bec95b14f1174e7f25c656aabb42981b91950755281c5ef8f52e57bf"), + ciphertext: &hex!("cd2291ac182ab6d0f7b6b93e67abc4228ab63a4c1b214caa11698d40d2a8aa10164b48624d39dd967f4c35eebf09acdfe59f45"), + tag: &hex!("b231bb4e63dda90a11700f204dc2b175"), + }, + TestVector { + key: &hex!("07b122a618bb54b8c39d579fe5518a5c"), + nonce: &hex!("26fa33d4c5b37f0c5d07e2d0"), + plaintext: &hex!("06cf2fa1c9057d4974ae9048b4878d75b0b4720ed2d7c340e6d983a7cf08d20013abeef881cc3213fe25b3f6ac1e17fe1c2e11"), + aad: &hex!("20966308f57d3a3e7a4ea149cc1f3edeaef11e8af780a16534472d8df7f706152ee376614426094fd745d77cdca28682d0d2e689d28a50610168d638b23cb4dffa95dd260bc72e0098722cd00126a07fd23ffba1d10a3ce46b85"), + ciphertext: &hex!("61a69d35967c85dd5e0741a9b88152c3b04b1824930cf6c03f1cb44c1258b71fa3f5233d2f4ee256353c0b8f6d470b53d7811a"), + tag: &hex!("e98a7a33748de95e22b520ba2254bce3"), + }, + TestVector { + key: &hex!("288e7efe62b93b990f2398c2460e415d"), + nonce: &hex!("c7ebc0cd756d9501faf71a7d"), + plaintext: &hex!("5fafe873b9d30771f2ef8dad397a8b42af3fc8f7ebbea80d0132e1af14269a463dbd87e3e01a58c2d991eb3badcf156fe8260d"), + aad: &hex!("fcb20124c58b29ef7e39800d1e11c4063774dd2c462dd9e07d140d9f4b5ebe4cba7bb8cc03bf357b22096c9897cdcdf112b7a5f7d1e38d5c74c16924522cbe2443c157cc93146c12bae4da2b2f1df07f334aa1cc99fd7f7e2899"), + ciphertext: &hex!("e5e69100c77d57e05a41b28be74b1c8542fd1f15e73fc589535ea1fac2d263fd92cdaa9908eab6ffd9194586aa3fed5fcd109f"), + tag: &hex!("537516fb827cbf6ce0500c6feff4db34"), + }, + TestVector { + key: &hex!("f66c5b44e7a9dade5765c3f64fb2bab9"), + nonce: &hex!("3482a46c8d4f173e62ce1dc5"), + plaintext: &hex!("80501408e23e2a656720b32b9f41f542fc64e9e8d824af115ece88d551a5f5d5f7fdb67e2339fc263dfdb18a78d423fd868caf"), + aad: &hex!("1e77645efa4419b2c9696b8f989051929ad6a01fe2223ae68325f8176cc467fffbd198e008904b82af6469a3bbb095c4d00cfed143723ed6cf6ba4198c40eabd05c03e0260f8b2f55038e5c382690886280f6989357c50f74fe5"), + ciphertext: &hex!("e778a946529444e2656505e4f5f6519d3ecad5458f8f1a04f31a8af97ca185ff717764bca6e99258a24dc97c322ac1c7f54fba"), + tag: &hex!("c5b2cb532cd05b162b47e94f6d79cb8e"), + }, + TestVector { + key: &hex!("41e8af55426edbe8f0339d0fba400497"), + nonce: &hex!("07eb87d42e90a075d4b34911"), + plaintext: &hex!("adc5504d0a9735d7b73fc53bd0ff60f2c881394fdecfcce3483efe126bf148e48db9c0fd356f82e62d743ec09f8906431eb5e0"), + aad: &hex!("bb2e5c52f2eacc9b7706a2efe4b607858922fd6914a1e22dfbecab2a06464942f769a9c544f046b88a7570e2cf6fd8146c86b2b4decb934f04a81e6d48affbce1f5381ab31a9736b63f5a4e744731726a36357e858c0980d3732"), + ciphertext: &hex!("040d99698b2a5e0169f6f94e61159c135fb19c5917c015aaf8ebb4a451ffd8347428ebfdd80c83841d299318084c779dc91b0c"), + tag: &hex!("a16d6267efaeec13d6bc281316ab8be7"), + }, + TestVector { + key: &hex!("bbf947c0e805ac0641d540b471eb9d26"), + nonce: &hex!("b57daf0004f43821f1ba86de"), + plaintext: &hex!("1211e9224ebb862f2d27de692362324942da12da441176c4742a228d7928d3c1fb3e83c66d68c619a10911fc2ed90226d4ae48"), + aad: &hex!("e18d861dc9bb35a9efa63c7c1deaf53910256809a477f1c3db893b2389f1d137659033a5841b888cd6491bb574b782dec2c840f6350825406387d71340d275e62af3cc070c1389375d81ce98ad37c7afcadcd79f1c520a462e7d"), + ciphertext: &hex!("a6f6aa1750118b402ee1b5f025d29007e3cb162ad9e363efb9ef2d24c850f62db925bbb7e9a83ca6cd6f74251db72622857b29"), + tag: &hex!("a72dcc29d358f794361f84202c9832f9"), + }, + TestVector { + key: &hex!("a56f4de6772b1242f1dff344ec9b512d"), + nonce: &hex!("94d228087e821e301409f305"), + plaintext: &hex!("af537682c419eb7ca3fed65bcc364b01efc2455ff65128dedc88f2224603ef3d7246622269a12b269bbf6ac9d2d3b81abd366f"), + aad: &hex!("6a9c61dbbfaa20a13320a5f1dead28bfbe5dcbe84fe0a3617c348bd702fbe746f439dfcabdad22ac2fa629793f545bc68459f1c0462453b5b31b747c3d29614f0ccd0745fbaa4b204d47d5cc7db35d6bc44bfcecdfae910faa72"), + ciphertext: &hex!("55b60587eb879105ce4a36555d8f799618238bf1f7fd4df622662bd07f450a18375ab7eef02a8036470428c4834f881bf05cd4"), + tag: &hex!("8cbe48d46b5c1296b05b2b6f4b24f7c6"), + }, + TestVector { + key: &hex!("766067fa8f0dc348b77d55ab5317a609"), + nonce: &hex!("8716219953becc2d8918f3aa"), + plaintext: &hex!("ab910f7300ec6bf57d7baf2b4474a26a7d7dfcd6b1044cd0b0b32995029a70627f8d2554429e13d14d78950fb1c79ed1f48c32"), + aad: &hex!("8106f9cacb894dc2f0c93c67cc06cd54af6c6d94193bd0bd9673fc702fc6b995941476f2dc584ff753cdf24517c2153f1e1c6e37fe6d86c1e4fc63bceb25749f9372d62a1932749dd21ef6010b2942bd0464bd64171063a778a0"), + ciphertext: &hex!("8bc822183f9e42f05429e064934d9f84dfe1713d71690e68981f94256fa4a60736607c5864e3b05e3730caed80004a9bb3adb6"), + tag: &hex!("439b0bcdd24a87429a4098fd8a05514c"), + }, + TestVector { + key: &hex!("557ef21e91f108f6ab451980837cf029"), + nonce: &hex!("ac1010f6dcec713cba17cb13"), + plaintext: &hex!("a2ae838532cebfc9ff8fb62242b84df706ad1777a62f54c64d9b1777bdc0819438d34aa4c1906e0fae1e845b32d8fb65763dc6"), + aad: &hex!("5d09aa2a302e3ec2bd71b25d52053463c9c38a3b460f7b980aad6c91d5011570be8c23b4db518701f4c5a157882695ba4ac140f94bda13d9824a8976d436492baaae6c4f8367683199695a1f6bcda2f645b188aa5c286fb91c8a"), + ciphertext: &hex!("94c1941887ff94f34cb96cff2b6a25f660ce9b3ac54963960e70ee49500dae6a20d3307393f37d3a4a35c13b58f7bff0f5de7b"), + tag: &hex!("95e574f70f5efa14b8ee21961972ee3c"), + }, + TestVector { + key: &hex!("55c8bcb0021090e4b2c785c79cb966b8"), + nonce: &hex!("5e9f1313282f73d7ffb92837"), + plaintext: &hex!("2d7c1b689189bbfa2be26ad5c1f296dee4c0f61456ffc94cf8e70aad0f09d0608c4115aa6ed5eba93ed5820b3f3426bbf4d64a"), + aad: &hex!("f7e14a57e3bb6b99866b90573d7bc355baeb7ac347e43d0b65d97ecc2eb9c772401a8e3c7e9e2871c2b79579d44c139e62c33b42a9e0c87686960009d659d5e3874e168c334b6650c6d36168633757a7c20764232ce94a0de1a5"), + ciphertext: &hex!("ba59002df3394c5b80983519dc163eca5c44df80f8c4c4e15d3ff73f13c170c80a59d87a2165a7b450be01031a8e41c505c89f"), + tag: &hex!("28418c564731bddf3d504d8ed32e66ee"), + }, +]; + +tests!(Aes128Gcm, TEST_VECTORS); + +// Test vectors from Wycheproof +aead::new_test!(wycheproof, "wycheproof-128", Aes128Gcm); diff --git a/tests/aes256gcm.rs b/tests/aes256gcm.rs new file mode 100644 index 0000000..8784067 --- /dev/null +++ b/tests/aes256gcm.rs @@ -0,0 +1,3024 @@ +//! AES-256-GCM tests + +#[macro_use] +extern crate hex_literal; + +#[macro_use] +mod common; + +use self::common::TestVector; +use aes_gcm::aead::{generic_array::GenericArray, Aead, NewAead, Payload}; +use aes_gcm::Aes256Gcm; + +/// NIST CAVS vectors +/// +/// +/// +/// From: `gcmEncryptExtIV256.rsp` +const TEST_VECTORS: &[TestVector<[u8; 32]>] = &[ + TestVector { + key: &hex!("b52c505a37d78eda5dd34f20c22540ea1b58963cf8e5bf8ffa85f9f2492505b4"), + nonce: &hex!("516c33929df5a3284ff463d7"), + plaintext: b"", + aad: b"", + ciphertext: b"", + tag: &hex!("bdc1ac884d332457a1d2664f168c76f0"), + }, + TestVector { + key: &hex!("5fe0861cdc2690ce69b3658c7f26f8458eec1c9243c5ba0845305d897e96ca0f"), + nonce: &hex!("770ac1a5a3d476d5d96944a1"), + plaintext: b"", + aad: b"", + ciphertext: b"", + tag: &hex!("196d691e1047093ca4b3d2ef4baba216"), + }, + TestVector { + key: &hex!("7620b79b17b21b06d97019aa70e1ca105e1c03d2a0cf8b20b5a0ce5c3903e548"), + nonce: &hex!("60f56eb7a4b38d4f03395511"), + plaintext: b"", + aad: b"", + ciphertext: b"", + tag: &hex!("f570c38202d94564bab39f75617bc87a"), + }, + TestVector { + key: &hex!("7e2db00321189476d144c5f27e787087302a48b5f7786cd91e93641628c2328b"), + nonce: &hex!("ea9d525bf01de7b2234b606a"), + plaintext: b"", + aad: b"", + ciphertext: b"", + tag: &hex!("db9df5f14f6c9f2ae81fd421412ddbbb"), + }, + TestVector { + key: &hex!("a23dfb84b5976b46b1830d93bcf61941cae5e409e4f5551dc684bdcef9876480"), + nonce: &hex!("5aa345908048de10a2bd3d32"), + plaintext: b"", + aad: b"", + ciphertext: b"", + tag: &hex!("f28217649230bd7a40a9a4ddabc67c43"), + }, + TestVector { + key: &hex!("dfe928f86430b78add7bb7696023e6153d76977e56103b180253490affb9431c"), + nonce: &hex!("1dd0785af9f58979a10bd62d"), + plaintext: b"", + aad: b"", + ciphertext: b"", + tag: &hex!("a55eb09e9edef58d9f671d72207f8b3c"), + }, + TestVector { + key: &hex!("34048db81591ee68224956bd6989e1630fcf068d7ff726ae81e5b29f548cfcfb"), + nonce: &hex!("1621d34cff2a5b250c7b76fc"), + plaintext: b"", + aad: b"", + ciphertext: b"", + tag: &hex!("4992ec3d57cccfa58fd8916c59b70b11"), + }, + TestVector { + key: &hex!("a1114f8749c72b8cef62e7503f1ad921d33eeede32b0b5b8e0d6807aa233d0ad"), + nonce: &hex!("a190ed3ff2e238be56f90bd6"), + plaintext: b"", + aad: b"", + ciphertext: b"", + tag: &hex!("c8464d95d540fb191156fbbc1608842a"), + }, + TestVector { + key: &hex!("ddbb99dc3102d31102c0e14b238518605766c5b23d9bea52c7c5a771042c85a0"), + nonce: &hex!("95d15ed75c6a109aac1b1d86"), + plaintext: b"", + aad: b"", + ciphertext: b"", + tag: &hex!("813d1da3775cacd78e96d86f036cff96"), + }, + TestVector { + key: &hex!("1faa506b8f13a2e6660af78d92915adf333658f748f4e48fa20135a29e9abe5f"), + nonce: &hex!("e50f278d3662c99d750f60d3"), + plaintext: b"", + aad: b"", + ciphertext: b"", + tag: &hex!("aec7ece66b7344afd6f6cc7419cf6027"), + }, + TestVector { + key: &hex!("f30b5942faf57d4c13e7a82495aedf1b4e603539b2e1599317cc6e53225a2493"), + nonce: &hex!("336c388e18e6abf92bb739a9"), + plaintext: b"", + aad: b"", + ciphertext: b"", + tag: &hex!("ddaf8ef4cb2f8a6d401f3be5ff0baf6a"), + }, + TestVector { + key: &hex!("daf4d9c12c5d29fc3fa936532c96196e56ae842e47063a4b29bfff2a35ed9280"), + nonce: &hex!("5381f21197e093b96cdac4fa"), + plaintext: b"", + aad: b"", + ciphertext: b"", + tag: &hex!("7f1832c7f7cd7812a004b79c3d399473"), + }, + TestVector { + key: &hex!("6b524754149c81401d29a4b8a6f4a47833372806b2d4083ff17f2db3bfc17bca"), + nonce: &hex!("ac7d3d618ab690555ec24408"), + plaintext: b"", + aad: b"", + ciphertext: b"", + tag: &hex!("db07a885e2bd39da74116d06c316a5c9"), + }, + TestVector { + key: &hex!("cff083303ff40a1f66c4aed1ac7f50628fe7e9311f5d037ebf49f4a4b9f0223f"), + nonce: &hex!("45d46e1baadcfbc8f0e922ff"), + plaintext: b"", + aad: b"", + ciphertext: b"", + tag: &hex!("1687c6d459ea481bf88e4b2263227906"), + }, + TestVector { + key: &hex!("3954f60cddbb39d2d8b058adf545d5b82490c8ae9283afa5278689041d415a3a"), + nonce: &hex!("8fb3d98ef24fba03746ac84f"), + plaintext: b"", + aad: b"", + ciphertext: b"", + tag: &hex!("7fb130855dfe7a373313361f33f55237"), + }, + TestVector { + key: &hex!("78dc4e0aaf52d935c3c01eea57428f00ca1fd475f5da86a49c8dd73d68c8e223"), + nonce: &hex!("d79cf22d504cc793c3fb6c8a"), + plaintext: b"", + aad: &hex!("b96baa8c1c75a671bfb2d08d06be5f36"), + ciphertext: b"", + tag: &hex!("3e5d486aa2e30b22e040b85723a06e76"), + }, + TestVector { + key: &hex!("4457ff33683cca6ca493878bdc00373893a9763412eef8cddb54f91318e0da88"), + nonce: &hex!("699d1f29d7b8c55300bb1fd2"), + plaintext: b"", + aad: &hex!("6749daeea367d0e9809e2dc2f309e6e3"), + ciphertext: b"", + tag: &hex!("d60c74d2517fde4a74e0cd4709ed43a9"), + }, + TestVector { + key: &hex!("4d01c96ef9d98d4fb4e9b61be5efa772c9788545b3eac39eb1cacb997a5f0792"), + nonce: &hex!("32124a4d9e576aea2589f238"), + plaintext: b"", + aad: &hex!("d72bad0c38495eda50d55811945ee205"), + ciphertext: b"", + tag: &hex!("6d6397c9e2030f5b8053bfe510f3f2cf"), + }, + TestVector { + key: &hex!("8378193a4ce64180814bd60591d1054a04dbc4da02afde453799cd6888ee0c6c"), + nonce: &hex!("bd8b4e352c7f69878a475435"), + plaintext: b"", + aad: &hex!("1c6b343c4d045cbba562bae3e5ff1b18"), + ciphertext: b"", + tag: &hex!("0833967a6a53ba24e75c0372a6a17bda"), + }, + TestVector { + key: &hex!("22fc82db5b606998ad45099b7978b5b4f9dd4ea6017e57370ac56141caaabd12"), + nonce: &hex!("880d05c5ee599e5f151e302f"), + plaintext: b"", + aad: &hex!("3e3eb5747e390f7bc80e748233484ffc"), + ciphertext: b"", + tag: &hex!("2e122a478e64463286f8b489dcdd09c8"), + }, + TestVector { + key: &hex!("fc00960ddd698d35728c5ac607596b51b3f89741d14c25b8badac91976120d99"), + nonce: &hex!("a424a32a237f0df530f05e30"), + plaintext: b"", + aad: &hex!("cfb7e05e3157f0c90549d5c786506311"), + ciphertext: b"", + tag: &hex!("dcdcb9e4004b852a0da12bdf255b4ddd"), + }, + TestVector { + key: &hex!("69749943092f5605bf971e185c191c618261b2c7cc1693cda1080ca2fd8d5111"), + nonce: &hex!("bd0d62c02ee682069bd1e128"), + plaintext: b"", + aad: &hex!("6967dce878f03b643bf5cdba596a7af3"), + ciphertext: b"", + tag: &hex!("378f796ae543e1b29115cc18acd193f4"), + }, + TestVector { + key: &hex!("fc4875db84819834b1cb43828d2f0ae3473aa380111c2737e82a9ab11fea1f19"), + nonce: &hex!("da6a684d3ff63a2d109decd6"), + plaintext: b"", + aad: &hex!("91b6fa2ab4de44282ffc86c8cde6e7f5"), + ciphertext: b"", + tag: &hex!("504e81d2e7877e4dad6f31cdeb07bdbd"), + }, + TestVector { + key: &hex!("9f9fe7d2a26dcf59d684f1c0945b5ffafe0a4746845ed317d35f3ed76c93044d"), + nonce: &hex!("13b59971cd4dd36b19ac7104"), + plaintext: b"", + aad: &hex!("190a6934f45f89c90067c2f62e04c53b"), + ciphertext: b"", + tag: &hex!("4f636a294bfbf51fc0e131d694d5c222"), + }, + TestVector { + key: &hex!("ab9155d7d81ba6f33193695cf4566a9b6e97a3e409f57159ae6ca49655cca071"), + nonce: &hex!("26a9f8d665d163ddb92d035d"), + plaintext: b"", + aad: &hex!("4a203ac26b951a1f673c6605653ec02d"), + ciphertext: b"", + tag: &hex!("437ea77a3879f010691e288d6269a996"), + }, + TestVector { + key: &hex!("0f1c62dd80b4a6d09ee9d787b1b04327aa361529ffa3407560414ac47b7ef7bc"), + nonce: &hex!("c87613a3b70d2a048f32cb9a"), + plaintext: b"", + aad: &hex!("8f23d404be2d9e888d219f1b40aa29e8"), + ciphertext: b"", + tag: &hex!("36d8a309acbb8716c9c08c7f5de4911e"), + }, + TestVector { + key: &hex!("f3e954a38956df890255f01709e457b33f4bfe7ecb36d0ee50f2500471eebcde"), + nonce: &hex!("9799abd3c52110c704b0f36a"), + plaintext: b"", + aad: &hex!("ddb70173f44157755b6c9b7058f40cb7"), + ciphertext: b"", + tag: &hex!("b323ae3abcb415c7f420876c980f4858"), + }, + TestVector { + key: &hex!("0625316534fbd82fe8fdea50fa573c462022c42f79e8b21360e5a6dce66dde28"), + nonce: &hex!("da64a674907cd6cf248f5fbb"), + plaintext: b"", + aad: &hex!("f24d48e04f5a0d987ba7c745b73b0364"), + ciphertext: b"", + tag: &hex!("df360b810f27e794673a8bb2dc0d68b0"), + }, + TestVector { + key: &hex!("28f045ac7c4fe5d4b01a9dcd5f1ad3efff1c4f170fc8ab8758d97292868d5828"), + nonce: &hex!("5d85de95b0bdc44514143919"), + plaintext: b"", + aad: &hex!("601d2158f17ab3c7b4dcb6950fbdcdde"), + ciphertext: b"", + tag: &hex!("42c3f527418cf2c3f5d5010ccba8f271"), + }, + TestVector { + key: &hex!("19310eed5f5f44eb47075c105eb31e36bbfd1310f741b9baa66a81138d357242"), + nonce: &hex!("a1247120138fa4f0e96c992c"), + plaintext: b"", + aad: &hex!("29d746414333e0f72b4c3f44ec6bfe42"), + ciphertext: b"", + tag: &hex!("d5997e2f956df3fa2c2388e20f30c480"), + }, + TestVector { + key: &hex!("886cff5f3e6b8d0e1ad0a38fcdb26de97e8acbe79f6bed66959a598fa5047d65"), + nonce: &hex!("3a8efa1cd74bbab5448f9945"), + plaintext: b"", + aad: &hex!("519fee519d25c7a304d6c6aa1897ee1eb8c59655"), + ciphertext: b"", + tag: &hex!("f6d47505ec96c98a42dc3ae719877b87"), + }, + TestVector { + key: &hex!("6937a57d35fe6dc3fc420b123bccdce874bd4c18f2e7c01ce2faf33d3944fd9d"), + nonce: &hex!("a87247797b758467b96310f3"), + plaintext: b"", + aad: &hex!("ead961939a33dd578f8e93db8b28a1c85362905f"), + ciphertext: b"", + tag: &hex!("599de3ecf22cb867f03f7f6d9fd7428a"), + }, + TestVector { + key: &hex!("e65a331776c9dcdf5eba6c59e05ec079d97473bcdce84daf836be323456263a0"), + nonce: &hex!("ca731f768da01d02eb8e727e"), + plaintext: b"", + aad: &hex!("d7274586517bf1d8da866f4a47ad0bcf2948a862"), + ciphertext: b"", + tag: &hex!("a8abe7a8085f25130a7206d37a8aaf6d"), + }, + TestVector { + key: &hex!("77bb1b6ef898683c981b2fc899319ffbb6000edca22566b634db3a3c804059e5"), + nonce: &hex!("354a19283769b3b991b05a4c"), + plaintext: b"", + aad: &hex!("b5566251a8a8bec212dc08113229ff8590168800"), + ciphertext: b"", + tag: &hex!("e5c2dccf8fc7f296cac95d7071cb8d7d"), + }, + TestVector { + key: &hex!("2a43308d520a59ed51e47a3a915e1dbf20a91f0886506e481ad3de65d50975b4"), + nonce: &hex!("bcbf99733d8ec90cb23e6ce6"), + plaintext: b"", + aad: &hex!("eb88288729289d26fe0e757a99ad8eec96106053"), + ciphertext: b"", + tag: &hex!("01b0196933aa49123eab4e1571250383"), + }, + TestVector { + key: &hex!("2379b35f85102db4e7aecc52b705bc695d4768d412e2d7bebe999236783972ff"), + nonce: &hex!("918998c4801037b1cd102faa"), + plaintext: b"", + aad: &hex!("b3722309e0f066225e8d1659084ebb07a93b435d"), + ciphertext: b"", + tag: &hex!("dfb18aee99d1f67f5748d4b4843cb649"), + }, + TestVector { + key: &hex!("98b3cb7537167e6d14a2a8b2310fe94b715c729fdf85216568150b556d0797ba"), + nonce: &hex!("bca5e2e5a6b30f18d263c6b2"), + plaintext: b"", + aad: &hex!("260d3d72db70d677a4e3e1f3e11431217a2e4713"), + ciphertext: b"", + tag: &hex!("d6b7560f8ac2f0a90bad42a6a07204bc"), + }, + TestVector { + key: &hex!("30341ae0f199b10a15175d00913d5029526ab7f761c0b936a7dd5f1b1583429d"), + nonce: &hex!("dbe109a8ce5f7b241e99f7af"), + plaintext: b"", + aad: &hex!("fe4bdee5ca9c4806fa024715fbf66ab845285fa7"), + ciphertext: b"", + tag: &hex!("ae91daed658e26c0d126575147af9899"), + }, + TestVector { + key: &hex!("8232b6a1d2e367e9ce1ea8d42fcfc83a4bc8bdec465c6ba326e353ad9255f207"), + nonce: &hex!("cd2fb5ff9cf0f39868ad8685"), + plaintext: b"", + aad: &hex!("02418b3dde54924a9628de06004c0882ae4ec3bb"), + ciphertext: b"", + tag: &hex!("d5308f63708675ced19b2710afd2db49"), + }, + TestVector { + key: &hex!("f9a132a50a508145ffd8294e68944ea436ce0f9a97e181f5e0d6c5d272311fc1"), + nonce: &hex!("892991b54e94b9d57442ccaf"), + plaintext: b"", + aad: &hex!("4e0fbd3799da250fa27911b7e68d7623bfe60a53"), + ciphertext: b"", + tag: &hex!("89881d5f786e6d53e0d19c3b4e6887d8"), + }, + TestVector { + key: &hex!("0e3746e5064633ea9311b2b8427c536af92717de20eeb6260db1333c3d8a8114"), + nonce: &hex!("f84c3a1c94533f7f25cec0ac"), + plaintext: b"", + aad: &hex!("8c0d41e6135338c8d3e63e2a5fa0a9667ec9a580"), + ciphertext: b"", + tag: &hex!("479ccfe9241de2c474f2edebbb385c09"), + }, + TestVector { + key: &hex!("b997e9b0746abaaed6e64b63bdf64882526ad92e24a2f5649df055c9ec0f1daa"), + nonce: &hex!("f141d8d71b033755022f0a7d"), + plaintext: b"", + aad: &hex!("681d6583f527b1a92f66caae9b1d4d028e2e631e"), + ciphertext: b"", + tag: &hex!("b30442a6395ec13246c48b21ffc65509"), + }, + TestVector { + key: &hex!("87660ec1700d4e9f88a323a49f0b871e6aaf434a2d8448d04d4a22f6561028e0"), + nonce: &hex!("2a07b42593cd24f0a6fe406c"), + plaintext: b"", + aad: &hex!("1dd239b57185b7e457ced73ebba043057f049edd"), + ciphertext: b"", + tag: &hex!("df7a501049b37a534098cb45cb9c21b7"), + }, + TestVector { + key: &hex!("ea4792e1f1717b77a00de4d109e627549b165c82af35f33ca7e1a6b8ed62f14f"), + nonce: &hex!("7453cc8b46fe4b93bcc48381"), + plaintext: b"", + aad: &hex!("46d98970a636e7cd7b76fc362ae88298436f834f"), + ciphertext: b"", + tag: &hex!("518dbacd36be6fba5c12871678a55516"), + }, + TestVector { + key: &hex!("34892cdd1d48ca166f7ba73182cb97336c2c754ac160a3e37183d6fb5078cec3"), + nonce: &hex!("ed3198c5861b78c71a6a4eec"), + plaintext: b"", + aad: &hex!("a6fa6d0dd1e0b95b4609951bbbe714de0ae0ccfa"), + ciphertext: b"", + tag: &hex!("c6387795096b348ecf1d1f6caaa3c813"), + }, + TestVector { + key: &hex!("f4069bb739d07d0cafdcbc609ca01597f985c43db63bbaaa0debbb04d384e49c"), + nonce: &hex!("d25ff30fdc3d464fe173e805"), + plaintext: b"", + aad: &hex!("3e1449c4837f0892f9d55127c75c4b25d69be334baf5f19394d2d8bb460cbf2120e14736d0f634aa792feca20e455f11"), + ciphertext: b"", + tag: &hex!("805ec2931c2181e5bfb74fa0a975f0cf"), + }, + TestVector { + key: &hex!("62189dcc4beb97462d6c0927d8a270d39a1b07d72d0ad28840badd4f68cf9c8b"), + nonce: &hex!("859fda5247c888823a4b8032"), + plaintext: b"", + aad: &hex!("b28d1621ee110f4c9d709fad764bba2dd6d291bc003748faac6d901937120d41c1b7ce67633763e99e05c71363fceca8"), + ciphertext: b"", + tag: &hex!("27330907d0002880bbb4c1a1d23c0be2"), + }, + TestVector { + key: &hex!("59012d85a1b90aeb0359e6384c9991e7be219319f5b891c92c384ade2f371816"), + nonce: &hex!("3c9cde00c23912cff9689c7c"), + plaintext: b"", + aad: &hex!("e5daf473a470860b55210a483c0d1a978d8add843c2c097f73a3cda49ac4a614c8e887d94e6692309d2ed97ebe1eaf5d"), + ciphertext: b"", + tag: &hex!("048239e4e5c2c8b33890a7c950cda852"), + }, + TestVector { + key: &hex!("4be09b408ad68b890f94be5efa7fe9c917362712a3480c57cd3844935f35acb7"), + nonce: &hex!("8f350bd3b8eea173fc7370bc"), + plaintext: b"", + aad: &hex!("2819d65aec942198ca97d4435efd9dd4d4393b96cf5ba44f09bce4ba135fc8636e8275dcb515414b8befd32f91fc4822"), + ciphertext: b"", + tag: &hex!("a133cb7a7d0471dbac61fb41589a2efe"), + }, + TestVector { + key: &hex!("13cb965a4d9d1a36efad9f6ca1ba76386a5bb160d80b0917277102357ac7afc8"), + nonce: &hex!("f313adec42a66d13c3958180"), + plaintext: b"", + aad: &hex!("717b48358898e5ccfea4289049adcc1bb0db3b3ebd1767ac24fb2b7d37dc80ea2316c17f14fb51b5e18cd5bb09afe414"), + ciphertext: b"", + tag: &hex!("81b4ef7a84dc4a0b1fddbefe37f53852"), + }, + TestVector { + key: &hex!("d27f1bebbbdef0edca393a6261b0338abbc491262eab0737f55246458f6668cc"), + nonce: &hex!("fc062f857886e278f3a567d2"), + plaintext: b"", + aad: &hex!("2bae92dea64aa99189de8ea4c046745306002e02cfb46a41444ce8bfcc329bd4205963d9ab5357b026a4a34b1a861771"), + ciphertext: b"", + tag: &hex!("5c5a6c4613f1e522596330d45f243fdd"), + }, + TestVector { + key: &hex!("7b4d19cd3569f74c7b5df61ab78379ee6bfa15105d21b10bf6096699539006d0"), + nonce: &hex!("fbed5695c4a739eded97b1e3"), + plaintext: b"", + aad: &hex!("c6f2e5d663bfaf668d014550ef2e66bf89978799a785f1f2c79a2cb3eb3f2fd4076207d5f7e1c284b4af5cffc4e46198"), + ciphertext: b"", + tag: &hex!("7101b434fb90c7f95b9b7a0deeeb5c81"), + }, + TestVector { + key: &hex!("d3431488d8f048590bd76ec66e71421ef09f655d7cf8043bf32f75b4b2e7efcc"), + nonce: &hex!("cc766e98b40a81519fa46392"), + plaintext: b"", + aad: &hex!("93320179fdb40cbc1ccf00b872a3b4a5f6c70b56e43a84fcac5eb454a0a19a747d452042611bf3bbaafd925e806ffe8e"), + ciphertext: b"", + tag: &hex!("3afcc336ce8b7191eab04ad679163c2a"), + }, + TestVector { + key: &hex!("a440948c0378561c3956813c031f81573208c7ffa815114ef2eee1eb642e74c6"), + nonce: &hex!("c1f4ffe54b8680832eed8819"), + plaintext: b"", + aad: &hex!("253438f132b18e8483074561898c5652b43a82cc941e8b4ae37e792a8ed6ec5ce2bcec9f1ffcf4216e46696307bb774a"), + ciphertext: b"", + tag: &hex!("129445f0a3c979a112a3afb10a24e245"), + }, + TestVector { + key: &hex!("798706b651033d9e9bf2ce064fb12be7df7308cf45df44776588cd391c49ff85"), + nonce: &hex!("5a43368a39e7ffb775edfaf4"), + plaintext: b"", + aad: &hex!("926b74fe6381ebd35757e42e8e557601f2287bfc133a13fd86d61c01aa84f39713bf99a8dc07b812f0274c9d3280a138"), + ciphertext: b"", + tag: &hex!("89fe481a3d95c03a0a9d4ee3e3f0ed4a"), + }, + TestVector { + key: &hex!("c3aa2a39a9fef4a466618d1288bb62f8da7b1cb760ccc8f1be3e99e076f08eff"), + nonce: &hex!("9965ba5e23d9453d7267ca5b"), + plaintext: b"", + aad: &hex!("93efb6a2affc304cb25dfd49aa3e3ccdb25ceac3d3cea90dd99e38976978217ad5f2b990d10b91725c7fd2035ecc6a30"), + ciphertext: b"", + tag: &hex!("00a94c18a4572dcf4f9e2226a03d4c07"), + }, + TestVector { + key: &hex!("14e06858008f7e77186a2b3a7928a0c7fcee22136bc36f53553f20fa5c37edcd"), + nonce: &hex!("32ebe0dc9ada849b5eda7b48"), + plaintext: b"", + aad: &hex!("6c0152abfa485b8cd67c154a5f0411f22121379774d745f40ee577b028fd0e188297581561ae972223d75a24b488aed7"), + ciphertext: b"", + tag: &hex!("2625b0ba6ee02b58bc529e43e2eb471b"), + }, + TestVector { + key: &hex!("fbb56b11c51a093ce169a6990399c4d741f62b3cc61f9e8a609a1b6ae8e7e965"), + nonce: &hex!("9c5a953247e91aceceb9defb"), + plaintext: b"", + aad: &hex!("46cb5c4f617916a9b1b2e03272cb0590ce716498533047d73c81e4cbe9278a3686116f5632753ea2df52efb3551aea2d"), + ciphertext: b"", + tag: &hex!("4f3b82e6be4f08756071f2c46c31fedf"), + }, + TestVector { + key: &hex!("b303bf02f6a8dbb5bc4baccab0800db5ee06de648e2fae299b95f135c9b107cc"), + nonce: &hex!("906495b67ef4ce00b44422fa"), + plaintext: b"", + aad: &hex!("872c6c370926535c3fa1baec031e31e7c6c82808c8a060742dbef114961c314f1986b2131a9d91f30f53067ec012c6b7"), + ciphertext: b"", + tag: &hex!("64dde37169082d181a69107f60c5c6bb"), + }, + TestVector { + key: &hex!("29f5f8075903063cb6d7050669b1f74e08a3f79ef566292dfdef1c06a408e1ab"), + nonce: &hex!("35f25c48b4b5355e78b9fb3a"), + plaintext: b"", + aad: &hex!("107e2e23159fc5c0748ca7a077e5cc053fa5c682ff5269d350ee817f8b5de4d3972041d107b1e2f2e54ca93b72cd0408"), + ciphertext: b"", + tag: &hex!("fee5a9baebb5be0165deaa867e967a9e"), + }, + TestVector { + key: &hex!("03ccb7dbc7b8425465c2c3fc39ed0593929ffd02a45ff583bd89b79c6f646fe9"), + nonce: &hex!("fd119985533bd5520b301d12"), + plaintext: b"", + aad: &hex!("98e68c10bf4b5ae62d434928fc6405147c6301417303ef3a703dcfd2c0c339a4d0a89bd29fe61fecf1066ab06d7a5c31a48ffbfed22f749b17e9bd0dc1c6f8fbd6fd4587184db964d5456132106d782338c3f117ec05229b0899"), + ciphertext: b"", + tag: &hex!("cf54e7141349b66f248154427810c87a"), + }, + TestVector { + key: &hex!("57e112cd45f2c57ddb819ea651c206763163ef016ceead5c4eae40f2bbe0e4b4"), + nonce: &hex!("188022c2125d2b1fcf9e4769"), + plaintext: b"", + aad: &hex!("09c8f445ce5b71465695f838c4bb2b00624a1c9185a3d552546d9d2ee4870007aaf3007008f8ae9affb7588b88d09a90e58b457f88f1e3752e3fb949ce378670b67a95f8cf7f5c7ceb650efd735dbc652cae06e546a5dbd861bd"), + ciphertext: b"", + tag: &hex!("9efcddfa0be21582a05749f4050d29fe"), + }, + TestVector { + key: &hex!("a4ddf3cab7453aaefad616fd65d63d13005e9459c17d3173cd6ed7f2a86c921f"), + nonce: &hex!("06177b24c58f3be4f3dd4920"), + plaintext: b"", + aad: &hex!("f95b046d80485e411c56b834209d3abd5a8a9ddf72b1b916679adfdde893044315a5f4967fd0405ec297aa332f676ff0fa5bd795eb609b2e4f088db1cdf37ccff0735a5e53c4c12173a0026aea42388a7d7153a8830b8a901cf9"), + ciphertext: b"", + tag: &hex!("9d1bd8ecb3276906138d0b03fcb8c1bb"), + }, + TestVector { + key: &hex!("24a92b24e85903cd4aaabfe07c310df5a4f8f459e03a63cbd1b47855b09c0be8"), + nonce: &hex!("22e756dc898d4cf122080612"), + plaintext: b"", + aad: &hex!("2e01b2536dbe376be144296f5c38fb099e008f962b9f0e896334b6408393bff1020a0e442477abfdb1727213b6ccc577f5e16cb057c8945a07e307264b65979aed96b5995f40250ffbaaa1a1f0eccf394015f6290f5e64dfe5ca"), + ciphertext: b"", + tag: &hex!("0d7f1aed4708a03b0c80b2a18785c96d"), + }, + TestVector { + key: &hex!("15276fc64438578e0ec53366b90a0e23d93910fec10dc3003d9b3f3fa72db702"), + nonce: &hex!("c5e931946d5caebc227656d2"), + plaintext: b"", + aad: &hex!("3f967c83ba02e77c14e9d41185eb87f172250e93edb0f82b6742c124298ab69418358eddefa39fedc3cade9d80f036d864a59ead37c87727c56c701a8cd9634469ff31c704f5ee39354157e6558467b92824da36b1c071bedfe9"), + ciphertext: b"", + tag: &hex!("a0ffa19adcf31d061cd0dd46d24015ef"), + }, + TestVector { + key: &hex!("ec09804a048bb854c71618b5a3a1c590910fc8a68455139b719486d2280ea59a"), + nonce: &hex!("d0b1247e7121a9276ac18ca3"), + plaintext: b"", + aad: &hex!("66b1d39d414596308e866b04476e053b71acd1cd07ce80939577ebbeace0430f7e4c0c185fe1d97ac7569950c83db40bbed0f1d173e1aa0dc28b4773705032d97551f7fcef7f55e4b69f88df650032dfc5232c156641104b5397"), + ciphertext: b"", + tag: &hex!("8440e6d864ab778f9be478f203162d86"), + }, + TestVector { + key: &hex!("4adf86bfa547725e4b80365a5a327c107040facfff007dc35102066bd6a995c4"), + nonce: &hex!("b1018cc331911255a55a0795"), + plaintext: b"", + aad: &hex!("053ca4428c990b4456d3c1895d5d52deff675896de9faa53d8cf241255f4a31dc3399f15d83be380256616e5af043abfb37552655adf4f2e68dda24bc3736951134f359d9c0e288bb798b6c3ea46239231a3cb280066db9862e7"), + ciphertext: b"", + tag: &hex!("c7424f38084930bfc5edc1fcf1e7608d"), + }, + TestVector { + key: &hex!("3c92e0d1e39a3c766573c4646c768c402ccff48a56682a93433512abf0456e00"), + nonce: &hex!("d57f319e590191841d2b98bd"), + plaintext: b"", + aad: &hex!("840d9394aa240e52ba152151c12acd1cd44881e8549dc832b71a45da7efcc74fb7e844d9fec25e5d497b8fb8f47f328c8d99045a19e366e6ce5e19dc26f67a81a94fa6c97c314d886e7b56eff144c09f6fa519db6308bc73422e"), + ciphertext: b"", + tag: &hex!("cb4ef72dbda4914d7434f9686f823e2f"), + }, + TestVector { + key: &hex!("b66ba39733888a9e0a2e30452844161dc33cb383c02ce16c4efad5452509b5b5"), + nonce: &hex!("937cb665e37059b2e40359f2"), + plaintext: b"", + aad: &hex!("dbcd9694a8834860034e8ede3a5bd419fcf91c005ad99f488aa623f581622093f9d41e6a68e20fd202f302bcfc4417ca89090bfcd4d5224e8ff4eb5bbae4ecb27baa239f59c2f99cd47c0a269c497906b41a8f320a3dd2dc2de2"), + ciphertext: b"", + tag: &hex!("bdc8249302d9d666cf7168317c118743"), + }, + TestVector { + key: &hex!("2f9fcd1043455695638c991a1b1d35ad57c18ef0727322747b7991abc3d787f3"), + nonce: &hex!("d06cf548f62869f4bed7a318"), + plaintext: b"", + aad: &hex!("432023c12cf1f614e1005112a17dbe6c5d54022a95cf6335a5bc55004c75f09a5699739ecf928e1c78d03dad5096a17a084afe1cc22041bbdfb5985bd08b0dcc59d2b08cd86b7aad597c4cd7b4ba6d6a7370b83995a6511a1f9e"), + ciphertext: b"", + tag: &hex!("322eb84fb6884f10cfb766c2e3ec779e"), + }, + TestVector { + key: &hex!("21c5839a63e1230c06b086341c96ab74585e69bced94332caeb1fa77d510c24f"), + nonce: &hex!("5ab6e5ed6ee733be7250858c"), + plaintext: b"", + aad: &hex!("c92f08e30f67d42516133c48e97b65cc9e124365e110aba5e7b2cbe83debcc99edf4eb0007af052bda22d85900271b1897af4fd9ace6a2d09d984ac3de79d05de0b105a81b12542b2c48e27d409fd6992dd062d6055d6fc66842"), + ciphertext: b"", + tag: &hex!("53b0e450309d146459f2a1e46c9d9e23"), + }, + TestVector { + key: &hex!("25a144f0fdba184125d81a87e7ed82fad33c701a094a67a81fe4692dc69afa31"), + nonce: &hex!("8bf575c5c2b45b4efc6746e4"), + plaintext: b"", + aad: &hex!("2a367cb0d3b7c5b8320b3cf95e82b6ba0bba1d09a2055885dedd9ef5641623682212103238b8f775cce42ddfd4f66382f2c3a5e8d6dff9163ced83580a75705574026b55db90f75f8abb3014c9a707021dedc075da38bebbf0a0"), + ciphertext: b"", + tag: &hex!("0e2ce9cac8dfcedb0572ec6cab621efd"), + }, + TestVector { + key: &hex!("42bc841b3b03a807cd366a35ecec8a6aebef7c4cba0ec8cb8da0da41df8ccef1"), + nonce: &hex!("1bd46f85df5f4b3a126ee315"), + plaintext: b"", + aad: &hex!("ede3dcddbdc7d8e5d034c01661332ec349cb4e7a9fbaaf7abe2c647587db86cd427ce66908e070bc49ef838747e06b45ac486dfbea6f8698b4625e21e69db8327ec05cfd74accbe67ab644948cdb554af179a1e264e08fe16641"), + ciphertext: b"", + tag: &hex!("633ab6aaf5b32b53a794f6be6262fc5f"), + }, + TestVector { + key: &hex!("c25b8500be73210596fc4a9fb4d84d1a3379a91e3f0a6cc4177d996046627679"), + nonce: &hex!("b56c48c0c4cd318b20437002"), + plaintext: b"", + aad: &hex!("bcd14dd043fdc8c327957e1c1428698543ec8602521a7c74788d296d37d4828f10f90656883d2531c702ebda2dc0a68dab00154577454455fad986ff8e0973098dbf370ff703ed98222b945726ed9be7909210ddbc672e99fdd9"), + ciphertext: b"", + tag: &hex!("8171d4ff60fe7ef6de0288326aa73223"), + }, + TestVector { + key: &hex!("dd95259bc8eefa3e493cb1a6ba1d8ee2b341d5230d50363094a2cc3433b3d9b9"), + nonce: &hex!("a1a6ced084f4f13990750a9e"), + plaintext: b"", + aad: &hex!("d46db90e13684b26149cb3b7f776e228a0538fa1892c418aaad07aa08d3076f4a52bee8f130ff560db2b8d1009e9260fa6233fc22733e050c9e4f7cc699062765e261dffff1159e9060b26c8065dfab04055b58c82c340d987c9"), + ciphertext: b"", + tag: &hex!("9e120b01899fe2cb3e3a0b0c05045940"), + }, + TestVector { + key: &hex!("31bdadd96698c204aa9ce1448ea94ae1fb4a9a0b3c9d773b51bb1822666b8f22"), + nonce: &hex!("0d18e06c7c725ac9e362e1ce"), + plaintext: &hex!("2db5168e932556f8089a0622981d017d"), + aad: b"", + ciphertext: &hex!("fa4362189661d163fcd6a56d8bf0405a"), + tag: &hex!("d636ac1bbedd5cc3ee727dc2ab4a9489"), + }, + TestVector { + key: &hex!("460fc864972261c2560e1eb88761ff1c992b982497bd2ac36c04071cbb8e5d99"), + nonce: &hex!("8a4a16b9e210eb68bcb6f58d"), + plaintext: &hex!("99e4e926ffe927f691893fb79a96b067"), + aad: b"", + ciphertext: &hex!("133fc15751621b5f325c7ff71ce08324"), + tag: &hex!("ec4e87e0cf74a13618d0b68636ba9fa7"), + }, + TestVector { + key: &hex!("f78a2ba3c5bd164de134a030ca09e99463ea7e967b92c4b0a0870796480297e5"), + nonce: &hex!("2bb92fcb726c278a2fa35a88"), + plaintext: &hex!("f562509ed139a6bbe7ab545ac616250c"), + aad: b"", + ciphertext: &hex!("e2f787996e37d3b47294bf7ebba5ee25"), + tag: &hex!("00f613eee9bdad6c9ee7765db1cb45c0"), + }, + TestVector { + key: &hex!("48e6af212da1386500454c94a201640c2151b28079240e40d72d2a5fd7d54234"), + nonce: &hex!("ef0ff062220eb817dc2ece94"), + plaintext: &hex!("c7afeecec1408ad155b177c2dc7138b0"), + aad: b"", + ciphertext: &hex!("9432a620e6a22307e06a321d66846fd4"), + tag: &hex!("e3ea499192f2cd8d3ab3edfc55897415"), + }, + TestVector { + key: &hex!("79cd8d750fc8ea62a2714edcd9b32867c7c4da906c56e23a644552f5b812e75a"), + nonce: &hex!("9bbfdb81015d2b57dead2de5"), + plaintext: &hex!("f980ad8c55ebd31ee6f98f44e92bff55"), + aad: b"", + ciphertext: &hex!("41a34d1e759c859e91b8cf5d3ded1970"), + tag: &hex!("68cd98406d5b322571e750c30aa49834"), + }, + TestVector { + key: &hex!("130ae450c18efb851057aaa79575a0a090194be8b2c95469a0e8e380a8f48f42"), + nonce: &hex!("b269115396f81b39e0c38f47"), + plaintext: &hex!("036cf36280dee8355c82abc4c1fdb778"), + aad: b"", + ciphertext: &hex!("09f7568fd8181652e556f0dda5a49ed5"), + tag: &hex!("d10b61947cae275b7034f5259ba6fc28"), + }, + TestVector { + key: &hex!("9c7121289aefc67090cabed53ad11658be72a5372761b9d735e81d2bfc0e3267"), + nonce: &hex!("ade1702d2051b8dd203b5419"), + plaintext: &hex!("b95bcaa2b31403d76859a4c301c50b56"), + aad: b"", + ciphertext: &hex!("628285e6489090dde1b9a60674785003"), + tag: &hex!("9f516af3f3b93d610edbc5ba6e2d115f"), + }, + TestVector { + key: &hex!("0400b42897011fc20fd2280a52ef905d6ebf1b055b48c97067bd786d678ec4ea"), + nonce: &hex!("0abfb0a41496b453358409d9"), + plaintext: &hex!("20c8230191e35f4e9b269d59cf5521f6"), + aad: b"", + ciphertext: &hex!("dd8c38087daffbbb3ebb57ebf5ee5f78"), + tag: &hex!("bfb07aa5049ee350ec6fb1397f37087b"), + }, + TestVector { + key: &hex!("56690798978c154ff250ba78e463765f2f0ce69709a4551bd8cb3addeda087b6"), + nonce: &hex!("cf37c286c18ad4ea3d0ba6a0"), + plaintext: &hex!("2d328124a8d58d56d0775eed93de1a88"), + aad: b"", + ciphertext: &hex!("3b0a0267f6ecde3a78b30903ebd4ca6e"), + tag: &hex!("1fd2006409fc636379f3d4067eca0988"), + }, + TestVector { + key: &hex!("8a02a33bdf87e7845d7a8ae3c8727e704f4fd08c1f2083282d8cb3a5d3cedee9"), + nonce: &hex!("599f5896851c968ed808323b"), + plaintext: &hex!("4ade8b32d56723fb8f65ce40825e27c9"), + aad: b"", + ciphertext: &hex!("cb9133796b9075657840421a46022b63"), + tag: &hex!("a79e453c6fad8a5a4c2a8e87821c7f88"), + }, + TestVector { + key: &hex!("23aaa78a5915b14f00cf285f38ee275a2db97cb4ab14d1aac8b9a73ff1e66467"), + nonce: &hex!("4a675ec9be1aab9632dd9f59"), + plaintext: &hex!("56659c06a00a2e8ed1ac60572eee3ef7"), + aad: b"", + ciphertext: &hex!("e6c01723bfbfa398d9c9aac8c683bb12"), + tag: &hex!("4a2f78a9975d4a1b5f503a4a2cb71553"), + }, + TestVector { + key: &hex!("fe647f72e95c469027f4d7778429a2e8e90d090268d4fa7df44f65c0af84190a"), + nonce: &hex!("4f40ae2a83a9b480e4686c90"), + plaintext: &hex!("31fd6cce3f0d2b0d18e0af01c4b5609e"), + aad: b"", + ciphertext: &hex!("54c769fd542f0d3022f1335a7c410b61"), + tag: &hex!("106cb7cbcd967da6cad646039c753474"), + }, + TestVector { + key: &hex!("fce205515f0551b1797128a2132d8e002ea5ab1beb99c5e7e8329398cf478e10"), + nonce: &hex!("20209a0d4a3b9bfddeef39a0"), + plaintext: &hex!("7d663e31a2f6ffef17e536684dae2e87"), + aad: b"", + ciphertext: &hex!("6529712030fb659dc11ab719f6a4c402"), + tag: &hex!("58699464d062aba505508c576c4e07dd"), + }, + TestVector { + key: &hex!("cd33003ff18f6f3369dd9a35381261ba660ce0a769864475152e677066540337"), + nonce: &hex!("20bffe9064ce76d275204138"), + plaintext: &hex!("acaf53d4dd2fe12cd44450b0d9adcc92"), + aad: b"", + ciphertext: &hex!("a669fda0444b180165f90815dc992b33"), + tag: &hex!("6e31f5a56c4790cedcc2368c51d0639b"), + }, + TestVector { + key: &hex!("381873b5f9579d8241f0c61f0d9e327bb9f678691714aaa48ea7d92678d43fe7"), + nonce: &hex!("3fc8bec23603158e012d65e5"), + plaintext: &hex!("7b622e9b408fe91f6fa800ecef838d36"), + aad: b"", + ciphertext: &hex!("8ca4de5b4e2ab22431a009f3ddd01bae"), + tag: &hex!("b3a7f80e3edf322622731550164cd747"), + }, + TestVector { + key: &hex!("92e11dcdaa866f5ce790fd24501f92509aacf4cb8b1339d50c9c1240935dd08b"), + nonce: &hex!("ac93a1a6145299bde902f21a"), + plaintext: &hex!("2d71bcfa914e4ac045b2aa60955fad24"), + aad: &hex!("1e0889016f67601c8ebea4943bc23ad6"), + ciphertext: &hex!("8995ae2e6df3dbf96fac7b7137bae67f"), + tag: &hex!("eca5aa77d51d4a0a14d9c51e1da474ab"), + }, + TestVector { + key: &hex!("7da3bccaffb3464178ca7c722379836db50ce0bfb47640b9572163865332e486"), + nonce: &hex!("c04fd2e701c3dc62b68738b3"), + plaintext: &hex!("fd671cab1ee21f0df6bb610bf94f0e69"), + aad: &hex!("fec0311013202e4ffdc4204926ae0ddf"), + ciphertext: &hex!("6be61b17b7f7d494a7cdf270562f37ba"), + tag: &hex!("5e702a38323fe1160b780d17adad3e96"), + }, + TestVector { + key: &hex!("a359b9584beec189527f8842dda6b6d4c6a5db2f889635715fa3bcd7967c0a71"), + nonce: &hex!("8616c4cde11b34a944caba32"), + plaintext: &hex!("33a46b7539d64c6e1bdb91ba221e3007"), + aad: &hex!("e1796fca20cb3d3ab0ade69b2a18891e"), + ciphertext: &hex!("b0d316e95f3f3390ba10d0274965c62b"), + tag: &hex!("aeaedcf8a012cc32ef25a62790e9334c"), + }, + TestVector { + key: &hex!("8c83238e7b3b58278200b54940d779d0a0750673aab0bf2f5808dd15dc1a8c49"), + nonce: &hex!("70f8f4ebe408f61a35077956"), + plaintext: &hex!("6e57f8572dd5b2247410f0d4c7424186"), + aad: &hex!("e1cbf83924f1b8d1014b97db56c25a15"), + ciphertext: &hex!("4a11acb9611251df01f79f16f8201ffb"), + tag: &hex!("9732be4ad0569586753d90fabb06f62c"), + }, + TestVector { + key: &hex!("fe21919bb320af8744c9e862b5b7cf8b81ad3ad1fb0e7d7d710a688d3eed154b"), + nonce: &hex!("38bc3917aa1925f40850c082"), + plaintext: &hex!("aea53b1ea79a71c3a4b83c92a0c979f1"), + aad: &hex!("f24102fa7e6b819bb3ff47f90844db9c"), + ciphertext: &hex!("2fb8b697bf8f7a2eea25fe702a3ae0a9"), + tag: &hex!("5be77e827737ad7c4f79e0e343fe010d"), + }, + TestVector { + key: &hex!("499e8a3f39ac4abc62dd4e1a6133042e74785972b6b501bfaffefc8bb29fd312"), + nonce: &hex!("5c728dbbef9dcc0ff483e891"), + plaintext: &hex!("b44014c7fc6b3f15d126a881fbe2bd2b"), + aad: &hex!("82300dab592f840ae991efa3623a6203"), + ciphertext: &hex!("578fe5e1aef7619f392c027c838a239e"), + tag: &hex!("49fdc724f05eb56ea9e3fd14b61ad567"), + }, + TestVector { + key: &hex!("2775d3e7a8fc665bb9a59edc22eb136add194824ed8f2adb449177404c739716"), + nonce: &hex!("73f16c054e166696df679a2e"), + plaintext: &hex!("c9f3bce40310b6c0a3fd62742e4f3617"), + aad: &hex!("23199a1c9b7244913952ca4f7e7444f4"), + ciphertext: &hex!("72c85c10756266d00a9a4340b2cb3137"), + tag: &hex!("5881e4565b42394e62d5daf0d1ebc593"), + }, + TestVector { + key: &hex!("425a341c67e6d873870f54e2cc5a2984c734e81729c0dbaaeee050309f1ce674"), + nonce: &hex!("0c09b7b4e9e097317b791433"), + plaintext: &hex!("76dda644b3faca509b37def0319f30cc"), + aad: &hex!("4300a721547846761e4bf8df2b6ec1d6"), + ciphertext: &hex!("1dd80daa0fc9e47e43897c64a6663f5e"), + tag: &hex!("5d69b34d8c3b12f783faaea7e93685db"), + }, + TestVector { + key: &hex!("dd5c48988a6e9f9f60be801ba5c090f224a1b53d6601ec5858eab7b7784a8d5e"), + nonce: &hex!("43562d48cd4110a66d9ca64e"), + plaintext: &hex!("2cda2761fd0be2b03f9714fce8d0e303"), + aad: &hex!("55e568309fc6cb0fb0e0e7d2511d4116"), + ciphertext: &hex!("f2cfb6f5446e7aa172adfcd66b92a98d"), + tag: &hex!("e099c64d2966e780ce7d2eaae97f47d8"), + }, + TestVector { + key: &hex!("2bdad9c3e5de6e4e101b7f16e727c690db95eacf4b0ccbdec7aab6fb9fc80486"), + nonce: &hex!("a5cf3967d244074d2153c576"), + plaintext: &hex!("84c867ec36cc6fe3487f5192fdfd390b"), + aad: &hex!("6bdae72b5ed0e4d1f10064ebd02cf85c"), + ciphertext: &hex!("53c8fa437c1b5fa91abbd6508b3878ce"), + tag: &hex!("7859593d127324be8b9cf1d43ead4d82"), + }, + TestVector { + key: &hex!("01e92afdb5d956be12d38b09252966c5728d26f3c72e54bb62bbc55ae590e716"), + nonce: &hex!("886e55364eeb90e87ac79bbe"), + plaintext: &hex!("6c6570385f3d6d937e54a3a2e95bc9eb"), + aad: &hex!("c76aabb7f44b942a81feb50249d2131a"), + ciphertext: &hex!("423b749a507f437b431114962180d352"), + tag: &hex!("54d859320a49281368297da7d4e37326"), + }, + TestVector { + key: &hex!("46921319217598cb64256fe49abca1f18a9d1dbca360f8630afb5c6137cb42b5"), + nonce: &hex!("290827cf981415760ec3b37a"), + plaintext: &hex!("480d32b191c2e201aed03680f93ea2da"), + aad: &hex!("535ee80b12f581baaf8027e6e3900e31"), + ciphertext: &hex!("89ace4f73583fb1ac260dea99b54055e"), + tag: &hex!("7b8b8358363c175a66e6fb48d1bc2222"), + }, + TestVector { + key: &hex!("e18cd9b01b59bc0de1502efb74c3642997fe7dfb8d80c8a73caffe7726807d33"), + nonce: &hex!("bd087b384c40841b3839ba02"), + plaintext: &hex!("62f7f3a12b8c5f6747fcfe192d850b19"), + aad: &hex!("fe69f837961b1d83f27fbf68e6791a1c"), + ciphertext: &hex!("bacfccf6397424e96caf761e71dd3e3a"), + tag: &hex!("9c9a5b65420f83e766c7c051680e8e58"), + }, + TestVector { + key: &hex!("68ee463b3153d9a042e5e3685def6f90f7659a203441de337fb94831cbeae9b2"), + nonce: &hex!("9c4a9254c485236cf838de7e"), + plaintext: &hex!("73731054514f3fb0102c7a1df809f212"), + aad: &hex!("d55820e7acbb27d23c7df32938cf7d42"), + ciphertext: &hex!("13b7823cac37f40eb811e3c966d16a67"), + tag: &hex!("76288c33a66ff6451e2cec6c4ba4935e"), + }, + TestVector { + key: &hex!("64bd594daf279e3172f9aa713b35b7fce8f43083792bc7d1f10919131f400a7b"), + nonce: &hex!("339a2c40e9d9507c34228649"), + plaintext: &hex!("2b794cb4c98450463a3e225ab33f3f30"), + aad: &hex!("2b9544807b362ebfd88146e2b02c9270"), + ciphertext: &hex!("434d703b8d1069ad8036288b7c2d1ae6"), + tag: &hex!("7d31e397c0c943cbb16cfb9539a6a17d"), + }, + TestVector { + key: &hex!("83688deb4af8007f9b713b47cfa6c73e35ea7a3aa4ecdb414dded03bf7a0fd3a"), + nonce: &hex!("0b459724904e010a46901cf3"), + plaintext: &hex!("33d893a2114ce06fc15d55e454cf90c3"), + aad: &hex!("794a14ccd178c8ebfd1379dc704c5e208f9d8424"), + ciphertext: &hex!("cc66bee423e3fcd4c0865715e9586696"), + tag: &hex!("0fb291bd3dba94a1dfd8b286cfb97ac5"), + }, + TestVector { + key: &hex!("013f549af9ecc2ee0259d5fc2311059cb6f10f6cd6ced3b543babe7438a88251"), + nonce: &hex!("e45e759a3bfe4b652dc66d5b"), + plaintext: &hex!("79490d4d233ba594ece1142e310a9857"), + aad: &hex!("b5fe530a5bafce7ae79b3c15471fa68334ab378e"), + ciphertext: &hex!("619443034e4437b893a45a4c89fad851"), + tag: &hex!("6da8a991b690ff6a442087a356f8e9e3"), + }, + TestVector { + key: &hex!("4b2815c531d2fceab303ec8bca739a97abca9373b7d415ad9d6c6fa9782518cc"), + nonce: &hex!("47d647a72b3b5fe19f5d80f7"), + plaintext: &hex!("d3f6a645779e07517bd0688872e0a49b"), + aad: &hex!("20fd79bd0ee538f42b7264a5d098af9a30959bf5"), + ciphertext: &hex!("00be3b295899c455110a0ae833140c4d"), + tag: &hex!("d054e3997c0085e87055b79829ec3629"), + }, + TestVector { + key: &hex!("2503b909a569f618f7eb186e4c4b81dbfe974c553e2a16a29aea6846293e1a51"), + nonce: &hex!("e4fa3dc131a910c75f61a38b"), + plaintext: &hex!("188d542f8a815695c48c3a882158958c"), + aad: &hex!("f80edf9b51f8fd66f57ce9af5967ec028245eb6e"), + ciphertext: &hex!("4d39b5494ca12b770099a8eb0c178aca"), + tag: &hex!("adda54ad0c7f848c1c72758406b49355"), + }, + TestVector { + key: &hex!("6c8f34f14569f625aad7b232f59fa8b187ab24fadcdbaf7d8eb45da8f914e673"), + nonce: &hex!("6e2f886dd97be0e4c5bd488b"), + plaintext: &hex!("ac8aa71cfbf1e968ef5515531576e314"), + aad: &hex!("772ec23e49dbe1d923b1018fc2bef4b579e46241"), + ciphertext: &hex!("cb0ce70345e950b429e710c47d9c8d9b"), + tag: &hex!("9dceea98c438b1d9c154e5386180966d"), + }, + TestVector { + key: &hex!("182fe560614e1c6adfd1566ac44856df723dcb7e171a7c5796b6d3f83ef3d233"), + nonce: &hex!("8484abca6877a8622bfd2e3c"), + plaintext: &hex!("92ca46b40f2c75755a28943a68a8d81c"), + aad: &hex!("2618c0f7fe97772a0c97638cca238a967987c5e5"), + ciphertext: &hex!("ed1941b330f4275d05899f8677d73637"), + tag: &hex!("3fe93f1f5ffa4844963de1dc964d1996"), + }, + TestVector { + key: &hex!("65a290b2fabe7cd5fb2f6d627e9f1f79c2c714bffb4fb86e9df3e5eab28320ed"), + nonce: &hex!("5a5ed4d5592a189f0737cf47"), + plaintext: &hex!("662dda0f9c8f92bc906e90288100501c"), + aad: &hex!("ad1c7f7a7fb7f8fef4819c1dd1a67e007c99a87b"), + ciphertext: &hex!("8eb7cb5f0418da43f7e051c588776186"), + tag: &hex!("2b15399ee23690bbf5252fb26a01ae34"), + }, + TestVector { + key: &hex!("7b720d31cd62966dd4d002c9ea41bcfc419e6d285dfab0023ba21b34e754cb2f"), + nonce: &hex!("e1fb1f9229b451b72f89c333"), + plaintext: &hex!("1aa2948ed804f24e5d783b1bc959e086"), + aad: &hex!("7fdae42d0cf6a13873d3092c41dd3a19a9ea90f9"), + ciphertext: &hex!("8631d3c6b6647866b868421b6a3a548a"), + tag: &hex!("a31febbe169d8d6f391a5e60ef6243a0"), + }, + TestVector { + key: &hex!("a2aec8f3438ab4d6d9ae566a2cf9101ad3a3cc20f83674c2e208e8ca5abac2bb"), + nonce: &hex!("815c020686c52ae5ddc81680"), + plaintext: &hex!("a5ccf8b4eac22f0e1aac10b8d62cdc69"), + aad: &hex!("86120ce3aa81445a86d971fdb7b3b33c07b25bd6"), + ciphertext: &hex!("364c9ade7097e75f99187e5571ec2e52"), + tag: &hex!("64c322ae7a8dbf3d2407b12601e50942"), + }, + TestVector { + key: &hex!("e5104cfcbfa30e56915d9cf79efcf064a1d4ce1919b8c20de47eab0c106d67c1"), + nonce: &hex!("d1a5ec793597745c7a31b605"), + plaintext: &hex!("7b6b303381441f3fdf9a0cf79ee2e9e0"), + aad: &hex!("9931678430ff3aa765b871b703dfcc43fb1b8594"), + ciphertext: &hex!("425d48a76001bed9da270636be1f770b"), + tag: &hex!("76ff43a157a6748250a3fdee7446ed22"), + }, + TestVector { + key: &hex!("f461d1b75a72d942aa096384dc20cf8514a9ad9a9720660add3f318284ca3014"), + nonce: &hex!("d0495f25874e5714a1149e94"), + plaintext: &hex!("d9e4b967fdca8c8bae838a5da95d7cce"), + aad: &hex!("1133f372e3db22456e7ea92f29dff7f1d92864d3"), + ciphertext: &hex!("1df711e6fbcba22b0564c6e36051a3f7"), + tag: &hex!("f0563b7494d5159289b644afc4e8e397"), + }, + TestVector { + key: &hex!("a9a98ef5076ceb45c4b60a93aeba102507f977bc9b70ded1ad7d422108cdaa65"), + nonce: &hex!("54a1bc67e3a8a3e44deec232"), + plaintext: &hex!("ede93dd1eaa7c9859a0f709f86a48776"), + aad: &hex!("10cfef05e2cd1edd30db5c028bd936a03df03bdc"), + ciphertext: &hex!("3d3b61f553ab59a9f093cac45afa5ac0"), + tag: &hex!("7814cfc873b3398d997d8bb38ead58ef"), + }, + TestVector { + key: &hex!("d9e17c9882600dd4d2edbeae9a224d8588ff5aa210bd902d1080a6911010c5c5"), + nonce: &hex!("817f3501e977a45a9e110fd4"), + plaintext: &hex!("d74d968ea80121aea0d7a2a45cd5388c"), + aad: &hex!("d216284811321b7591528f0af5a3f2768429e4e8"), + ciphertext: &hex!("1587c8b00e2c197f32a21019feeee99a"), + tag: &hex!("63ea43c03d00f8ae5724589cb6f64480"), + }, + TestVector { + key: &hex!("ec251b45cb70259846db530aff11b63be00a951827020e9d746659bef2b1fd6f"), + nonce: &hex!("e41652e57b624abd84fe173a"), + plaintext: &hex!("75023f51ba81b680b44ea352c43f700c"), + aad: &hex!("92dd2b00b9dc6c613011e5dee477e10a6e52389c"), + ciphertext: &hex!("29274599a95d63f054ae0c9b9df3e68d"), + tag: &hex!("eb19983b9f90a0e9f556213d7c4df0f9"), + }, + TestVector { + key: &hex!("61f71fdbe29f56bb0fdf8a9da80cef695c969a2776a88e62cb3d39fca47b18e3"), + nonce: &hex!("77f1d75ab0e3a0ed9bf2b981"), + plaintext: &hex!("110a5c09703482ef1343396d0c3852d3"), + aad: &hex!("c882691811d3de6c927d1c9f2a0f15f782d55c21"), + ciphertext: &hex!("7e9daa4983283facd29a93037eb70bb0"), + tag: &hex!("244930965913ebe0fa7a0eb547b159fb"), + }, + TestVector { + key: &hex!("e4fed339c7b0cd267305d11ab0d5c3273632e8872d35bdc367a1363438239a35"), + nonce: &hex!("0365882cf75432cfd23cbd42"), + plaintext: &hex!("fff39a087de39a03919fbd2f2fa5f513"), + aad: &hex!("8a97d2af5d41160ac2ff7dd8ba098e7aa4d618f0f455957d6a6d0801796747ba57c32dfbaaaf15176528fe3a0e4550c9"), + ciphertext: &hex!("8d9e68f03f7e5f4a0ffaa7650d026d08"), + tag: &hex!("3554542c478c0635285a61d1b51f6afa"), + }, + TestVector { + key: &hex!("bd93c7bfc850b33c86484e04859ed374beaee9d613bdca6f072d1d182aeebd04"), + nonce: &hex!("6414c7749effb9af7e5c4762"), + plaintext: &hex!("b6de1699931f2252efc98d491d22ee12"), + aad: &hex!("76f43d5664c7ac1b4de43f2e2c4bc71f6918e0762f40e5dd5597ef4ff215855a4fd26d3ea6ccbd4e10789948fa692433"), + ciphertext: &hex!("a6c7e52f2018b823506e48064ffe6ee4"), + tag: &hex!("175e653c9036f66835f10cf1c82d1741"), + }, + TestVector { + key: &hex!("df0125a826c7fe49243d89cbdd7562aafd2103fa2783cf901976b5f5d481cdcb"), + nonce: &hex!("f63c1461b2964929d035d9bf"), + plaintext: &hex!("cc27ff68f981e4d6fb1918427c3d6b9e"), + aad: &hex!("0bf602ec47593e44ac1b88244455fa04359e338057b0a0ba057cb506d546d4d6d8538640fe7dd3d5864bd33b5a33d768"), + ciphertext: &hex!("b8fa150af93078574ac7c4615f88647d"), + tag: &hex!("4584553ac3ccdf8b0efae517652d3a18"), + }, + TestVector { + key: &hex!("d33ea320cec0e43dfc1e3d1d8ccca2dd7e30ad3ea18ad7141cc83645d18771ae"), + nonce: &hex!("540009f321f41d00202e473b"), + plaintext: &hex!("e56cdd522d526d8d0cd18131a19ee4fd"), + aad: &hex!("a41162e1fe875a81fbb5667f73c5d4cbbb9c3956002f7867047edec15bdcac1206e519ee9c238c371a38a485c710da60"), + ciphertext: &hex!("8b624b6f5483f42f36c85dc7cf3e9609"), + tag: &hex!("2651e978d9eaa6c5f4db52391ac9bc7c"), + }, + TestVector { + key: &hex!("7f35f5979b23321e6449f0f5ef99f2e7b796d52d560cc77aabfb621dbf3a6530"), + nonce: &hex!("cf0f6f3eed4cf374da714c77"), + plaintext: &hex!("4e9f53affdb5b1e91bf423d29c54401a"), + aad: &hex!("a676d35d93e12bfe0603f6aef2c3dd892a9b1ad22d476c3509d313256d4e98e4dda4e46e93b54cf59c2b90608a8fb3ad"), + ciphertext: &hex!("1714d55ef83df2927ee95ff22f1d90e6"), + tag: &hex!("4962a91d1071dd2c05934968d21eb43c"), + }, + TestVector { + key: &hex!("06ecc134993506cf539b1e797a519fe1d9f34321fe6a0b05f1936285c35c93a4"), + nonce: &hex!("f2190861d1140bd080d79906"), + plaintext: &hex!("519c1fc45a628ec16c515427796711f7"), + aad: &hex!("a04f2723c2521181437ad63f7910481d5de98f3e2561cec3a177bdbcb5048619738852e0fb212a3caa741a353e4e89a8"), + ciphertext: &hex!("b36c793224ce3bb1b54144398fbdedb6"), + tag: &hex!("0030e6e84f6f8eb474ce8e071c2953dd"), + }, + TestVector { + key: &hex!("734fa8b423b91e0ecccc7f554480eef57a82423a9f92b28d464320fba405a71c"), + nonce: &hex!("a6b5c78bb5791f4d121390ce"), + plaintext: &hex!("b496a99b39e0e94bb5829cfc3d7b3856"), + aad: &hex!("9ce25ff9b55dfa04e4271999a47cba8af8e83a390b090d1c4306b40ce8882624b662ff5867896396789295c19ec80d07"), + ciphertext: &hex!("904081a40484bb6454fc52cb6674e737"), + tag: &hex!("6a0787cf3921a71c35b5054954527823"), + }, + TestVector { + key: &hex!("d106280b84f25b294f71c261f66a65c2efd9680e19f50316d237975052796392"), + nonce: &hex!("cfc6aa2aeba468c66bf4553f"), + plaintext: &hex!("57e937f8b9b814e965bb569fcf63aaac"), + aad: &hex!("012a43f9903a3808bf34fd6f77d831d9154205ded589964cae60d2e49c856b7a4100a55c8cd02f5e476f62e988dcbd2b"), + ciphertext: &hex!("c835f5d4fd30fe9b2edb4aff24803c60"), + tag: &hex!("e88426bb4619807f18a9cc9839754777"), + }, + TestVector { + key: &hex!("81eb63bc47aba313d964a5335cfb039051520b3112fa54cab368e5243947d450"), + nonce: &hex!("18cc5dd875753ff51cc6f441"), + plaintext: &hex!("45f51399dff6a0dcd43f35256616d6be"), + aad: &hex!("24f766c56777312494245a4e6c7dbebbae4026e0907eadbc20a488982678161de7b924473c0a81ee59a0fa6905952b33"), + ciphertext: &hex!("a2fc7b0784ec4233142f9cde12ab9e98"), + tag: &hex!("4e60b8561cacfe7133740cd2bddefaa0"), + }, + TestVector { + key: &hex!("0a997863786a4e97332224ed484ffca508b166f0603687200d99fd6accd45d83"), + nonce: &hex!("7a9acabd4b8d3e1036293a07"), + plaintext: &hex!("9d2c9ff39f57c96ecce287c68c5cd6eb"), + aad: &hex!("525fc5ac7fe93c183a3ef7c75e3fbd52dce956855aff385966f4d79966bdb3ec2019c466584d21bfee74511a77d82adb"), + ciphertext: &hex!("238441c65b2a1c41b302da0f52d40770"), + tag: &hex!("c351d93ab9491cdfb7fa15e7a251de22"), + }, + TestVector { + key: &hex!("acbfeb7c595b704960c1097e93d3906534c23444c8acc1f8e969ce6c3fe8a46b"), + nonce: &hex!("28922ecac3013806c11660e6"), + plaintext: &hex!("e0d8c52d60c6ed6980abd4348f3f96f1"), + aad: &hex!("b1fe886107013ebdeb19315a9d096ed81803951a508f56f68202a7df00bebae0742dd1128c200952a049ef0cd7cfe4e6"), + ciphertext: &hex!("56fe1cf2c1d193b9b33badbf846f52cc"), + tag: &hex!("1cb4c14f50a54a64813ffc810f31f9f8"), + }, + TestVector { + key: &hex!("f6e768475c33269596da1f5a5a38547a885006bebb9134e21274d8456e9f5529"), + nonce: &hex!("3579e5ac51d1f1b82ea352ca"), + plaintext: &hex!("0aa481f856f8b96547672e5ae5370f9e"), + aad: &hex!("6929b6053ba148304366164f79b1b9f592c9cb9bce65094cec5cb8b0fc63e20d86b17c8bf5a7b089a63c5eac1824ee93"), + ciphertext: &hex!("b2f4edf5f0b0bfc590fead6239b0f2fb"), + tag: &hex!("2540ceb5ef247c95d63df84c46468533"), + }, + TestVector { + key: &hex!("2ca76112300bed65b87ba6ec887cd514f4633c1c96565fec8e3e69ae2ba88401"), + nonce: &hex!("964864510a8c957dcfb97d2f"), + plaintext: &hex!("0aff24b4c5aa45b81ce08ec2439be446"), + aad: &hex!("5aebdfd153a18763f36ecc9e8e9a01cb7b3f21e435b35b0da937c67e87c9ec058d08060a95e1eda0a5ab6546cca45094"), + ciphertext: &hex!("03da1f5a1403dbdd9f75a26113608ec0"), + tag: &hex!("a1c215d0c552a6061aa2b60afc3667a6"), + }, + TestVector { + key: &hex!("c0ff018b6c337dde685c8279cf6de59d7ce4b288032b819e074b671e72abbc91"), + nonce: &hex!("f12e6b1e85f87ef4c9ccbb7b"), + plaintext: &hex!("f7512bbfa2d40d14be71b70f70701c99"), + aad: &hex!("0577e8d28c0e9e5cde3c8b2a1a2aa8e2fc3ec8e96768405fcfbd623be7fc4e2e395c59b5b3a8ea117ef211320bc1f857"), + ciphertext: &hex!("0187b4c2d52486b4417e5a013d553e5e"), + tag: &hex!("dba451e7339be8ebed3ea9683d1b4552"), + }, + TestVector { + key: &hex!("d90c6948ac2353867e943069196a2c4d0c4d51e34e2505661b1d76f3e5f17ac5"), + nonce: &hex!("07e5623f474e2f0fe9f4c7d2"), + plaintext: &hex!("8a9fb1b384c0d1728099a4f7cb002f07"), + aad: &hex!("0de97574ae1bc6d3ef06c6ce03513ca47dff4728803e0aacc50564ee32b775fd535f5c8c30186550d99bff6f384af2dd"), + ciphertext: &hex!("4234a3a9fb199c3b293357983e8ac30b"), + tag: &hex!("d51e6f071dbab126f5fc9732967108ef"), + }, + TestVector { + key: &hex!("80d755e24d129e68a5259ec2cf618e39317074a83c8961d3768ceb2ed8d5c3d7"), + nonce: &hex!("7598c07ba7b16cd12cf50813"), + plaintext: &hex!("5e7fd1298c4f15aa0f1c1e47217aa7a9"), + aad: &hex!("0e94f4c48fd0c9690c853ad2a5e197c5de262137b69ed0cdfa28d8d12413e4ffff15374e1cccb0423e8ed829a954a335ed705a272ad7f9abd1057c849bb0d54b768e9d79879ec552461cc04adb6ca0040c5dd5bc733d21a93702"), + ciphertext: &hex!("5762a38cf3f2fdf3645d2f6696a7eead"), + tag: &hex!("8a6708e69468915c5367573924fe1ae3"), + }, + TestVector { + key: &hex!("dda7977efa1be95a0e41ed8bcd2aa648621945c95a9e28b63919e1d92d269fc3"), + nonce: &hex!("053f6e1be42af8894a6e86a0"), + plaintext: &hex!("6fa9b08176e9963927afba1e5f969a42"), + aad: &hex!("cb5114a001989339657427eb88329d6ce9c69694dc91a69b7557d62184e57832ec76d162fc9c47490bb3d78e5899445cecf85d36cb1f07fed5a3d82aaf7e9590f3ed74ad13b13c8adbfc7f29d7b151448d6f29d11d0bd3d03b76"), + ciphertext: &hex!("d4adbff3ec8edade29b9a1b748c31b54"), + tag: &hex!("3b331733c753858c22d309ceb0f9488c"), + }, + TestVector { + key: &hex!("d7da934ad057dc06bd1ec234fcc4efdc5119037a440b5827de25915f22dd47e5"), + nonce: &hex!("1b54c4ea37d2395ef70dcc72"), + plaintext: &hex!("86d5567658361198348207ede7a46da6"), + aad: &hex!("735de4596a80e64e38a12ab24ef73881d6ed3b533cb2c101025c3615acd2114150feeca84ade4e563bc4a300eb4a0cd97a184a293f0ac063e4f3c61e7fcdb331bcc6459fafaf0e2dda881f34eb717f4ee8c4b6890d3ef59721f3"), + ciphertext: &hex!("70a1c1d7c200ba5ae1b6f29917bb19f2"), + tag: &hex!("a25d51cccb198bed33de0b98df249c2d"), + }, + TestVector { + key: &hex!("930ebb4b9b9c35094be374cc0b700c437b3c46b45d489a716c30f93cd5f986c9"), + nonce: &hex!("7a21e5febd82ec9b97bfbe83"), + plaintext: &hex!("980086665d08a365f6bbe20ae51116f7"), + aad: &hex!("9f2ed5f6cf9e2d6505d3c99a8f81a7dfc5658dd085eba966c8b3206230973a086ec36fe948573baee108fca941bce53dad73180877cd497976209c1adf8a9861f0215560df064caf0ef2f99445c11816f5b8deeafedd682b5fb2"), + ciphertext: &hex!("05baaefdeb0c33674a8064a2e9951aaf"), + tag: &hex!("2ec7efd2564d4e09a6ab852f3af49939"), + }, + TestVector { + key: &hex!("70213d8949a65f463d13206071fab1b4c6b614fd3cee0d340d2d806de6714a93"), + nonce: &hex!("f8529d3e4f155cbb1ffb3d0a"), + plaintext: &hex!("47d47a5fd32a2a416f921cc7f00c0f81"), + aad: &hex!("112360db39b867dabaaa1d777bd881df2104b69fba15a4f37a832f5da38ad8a8c7c46db93e5b4eadf8b9a5a75508ad1457994c133c5ac85509eedfb13b90a2cf6c56a3c778582939362008608b08f9c4866a0e38744572114598"), + ciphertext: &hex!("b220b69bd851a17fbc5b725fb912f11e"), + tag: &hex!("4c3436943d58501c0826ae5827bc063e"), + }, + TestVector { + key: &hex!("7a5834230ebbbf616630f2edb3ad4320182433c0546ac1e34bc9fd046e4a0ed9"), + nonce: &hex!("d27dd6212b6defdcbbc701bb"), + plaintext: &hex!("b4def1251427ade064a9614e353dda3f"), + aad: &hex!("3bc12f3bb88ea4f8a2184959bb9cd68911a78458b27e9b528ccecafe7f13f303dc714722875f26b136d18a3acfe82b53ad5e13c71f3f6db4b0fd59fffd9cd4422c73f2c31ac97010e5edf5950dc908e8df3d7e1cbf7c34a8521e"), + ciphertext: &hex!("88f94965b4350750e11a2dc139ccaef1"), + tag: &hex!("8a61f0166e70c9bfdd198403e53a68a5"), + }, + TestVector { + key: &hex!("c3f10586f246aacadcce3701441770c03cfec940afe1908c4c537df4e01c50a0"), + nonce: &hex!("4f52faa1fa67a0e5f4196452"), + plaintext: &hex!("79d97ea3a2edd65045821ea745a44742"), + aad: &hex!("46f9a22b4e52e1526513a952dbee3b91f69595501e0177d50ff364638588c08d92fab8c58a969bdcc84c468d8498c4f06392b99ed5e0c484507fc48dc18d87c40e2ed848b43150be9d36f14cf2cef1310ba4a745adcc7bdc41f6"), + ciphertext: &hex!("560cf716e56190e9397c2f103629eb1f"), + tag: &hex!("ff7c9124879644e80555687d273c55d8"), + }, + TestVector { + key: &hex!("ad70ebcf889e88b867ded0e4838ca66d6991499046a5671d99e91ed463ae78b1"), + nonce: &hex!("561e13b335718fcbee364100"), + plaintext: &hex!("82d5568872a4cef12238c0feb14f0fb4"), + aad: &hex!("e037bd7306eec185b9cb4e3bf295232da19005957086d62e6fb342284f05feaa0e81d6c95071e7e4d7b6aad7b00f7e7863dd0fc16303a8304bb8855305f28067f4be71eed95ff90e046382116229f0fd3d2c3ef2e87e0d0e7950"), + ciphertext: &hex!("771c6d091f8190ddbdb8886d9ce2ebd5"), + tag: &hex!("5009abd1ebeb26dab852346ea6d8aee3"), + }, + TestVector { + key: &hex!("a452fa24b381e7165ee90f3371c2b0db2176f848a0354c78e92f2f1f89bbc511"), + nonce: &hex!("4bd904dfe18241eb5455d912"), + plaintext: &hex!("3f43df23ea940f3680a4b679b56db579"), + aad: &hex!("64f1a9d21deb183cff84f1aef5be83dbfc72e275f229eb5d59ace143605e8901dfa8f4724be24c86b5429bc84b629971fe1f9663b7537427b45dfb67d5f04506df4ee2c33d7f15af9f6e86058b131b7e6042b43a55bf6915f048"), + ciphertext: &hex!("c054974c4562f8536aef2734f10e09fc"), + tag: &hex!("2c5cafaf7b1f7581c5ec13080994e33c"), + }, + TestVector { + key: &hex!("209ea3c4dd0420a4d63dbb72099a0202c9b0709f3b1221565f890511eef8005b"), + nonce: &hex!("43775083e4008816129f5d40"), + plaintext: &hex!("b4967f8c4fb1b34b6ff43a22d34fae5c"), + aad: &hex!("9abc653a2347fc6e5a8cb9bdc251dff7c56109797c387494c0ed55570330961eb5b11087603e08ad293d0dd55571008e62d1163f67cf829e28d27beba65553bd11d8838f8a7a5f1fe05500befbaf97839801e99ecf998882c707"), + ciphertext: &hex!("a8d22a6e25232938d3f8600a66be80da"), + tag: &hex!("2ef93cc03c17bbfb6626144697fd2422"), + }, + TestVector { + key: &hex!("dabd63ac5274b26842c2695c9850d7accc1693ee2aeee1e2e1338bbbc5b80f87"), + nonce: &hex!("fd6790d620f12870b1d99b31"), + plaintext: &hex!("4a28048f5683679a557630a661f030e2"), + aad: &hex!("e4a06b9b205a7faadb21dc7fea8a0de0e013d717b61b24ec42f81afc8cdbc055573e971375da2fa5103a091317eab13b6a110ea211af257feabf52abafec23fd5b114b013d5c052199020573f8b7b7ae6958f733e87efa0426c2"), + ciphertext: &hex!("196d0345df259b47665bc233b798ebba"), + tag: &hex!("b0729d8b427ad048a7396cedf2257338"), + }, + TestVector { + key: &hex!("b238df5e52e649d4b0a05e53020ac59e7d5bf49b8d04f8c30c356ed62dba9ed1"), + nonce: &hex!("f153f093c9a3479f999eda04"), + plaintext: &hex!("d48e779766afa73d7e04fc6fc3fa825e"), + aad: &hex!("45b5df0c15140e5ce7a19f4e02834e6027971e3e0e719626c29081a6301e95c71214345afac1908bb75ff2d3281261e6c5f41dc4e4796f054174a64f8e177f3f33321edfbd263e204135699428a09f34eb344211bfb9fac9afba"), + ciphertext: &hex!("b1989eb510843d8f35205dc3f949522f"), + tag: &hex!("616089990729228f673099514824d9b4"), + }, + TestVector { + key: &hex!("f3dc2456d3b8947591a2d82b7319226b0f346cd4361bcc13b56da43e072a2774"), + nonce: &hex!("7a8acb5a84d7d01e3c00499e"), + plaintext: &hex!("ad075da908231ff9aae30daa6b847143"), + aad: &hex!("5e6be069effee27d34a8087c0d193f9f13e6440dc9fabfe24f6c867f831d06789d0dce92b2e3ff3ab9fe14202a8b42f384c25e3f3753dd503ec907a9b877f1707d64e4ac42909a7dee00c87c4a09d04de331515460ed101f5187"), + ciphertext: &hex!("9f224f2a1a1fbaade8b87b748971c0ac"), + tag: &hex!("cb5089d9dfaebf98e4b36ebc5f9a1a50"), + }, + TestVector { + key: &hex!("f5a56b69a1562c77e8edebc327a20295c2eba7d406d899a622c53539626c9d72"), + nonce: &hex!("a395b8aca4508a6a5f3cb4d8"), + plaintext: &hex!("7de4638701bd2b600d7f8d26da7a75bc"), + aad: &hex!("2e4fca2b163e4403971716015386cd81bdd1e57f00f2936da408098341011f2644a38ddad799f70eaa54f6e430d4853ff2b9c44a35123670879a83120bd555c76b95b70de0c8054f9d08539a5795e70a2446d7b9fab3f7887c6b"), + ciphertext: &hex!("6508be2698ba9889b4e445b99190a5c5"), + tag: &hex!("3394106f257c2e15c815430f60bc24ba"), + }, + TestVector { + key: &hex!("376371a780947256c52f07d80bb25a4d7e919ca8bd693b1a0ccbca748d2ce620"), + nonce: &hex!("27d7170f6f70f2fc40dfca78"), + plaintext: &hex!("7a279f9f8568b7c307490549b259226c"), + aad: &hex!("272c3559398ad774fa4b6895afc92870b2b92d310fa0debf0b7960e1fe38bfda64acd2fef26d6b177d8ab11d8afceee77374c6c18ad405d5ae323ad65fb6b04f0c809319133712f47636c5e042f15ed02f37ee7a10c643d7b178"), + ciphertext: &hex!("32284379d8c40ec18ee5774085d7d870"), + tag: &hex!("dcdee1a757f9758c944d296b1dabe7b2"), + }, + TestVector { + key: &hex!("82c4f12eeec3b2d3d157b0f992d292b237478d2cecc1d5f161389b97f999057a"), + nonce: &hex!("7b40b20f5f397177990ef2d1"), + plaintext: &hex!("982a296ee1cd7086afad976945"), + aad: b"", + ciphertext: &hex!("ec8e05a0471d6b43a59ca5335f"), + tag: &hex!("113ddeafc62373cac2f5951bb9165249"), + }, + TestVector { + key: &hex!("db4340af2f835a6c6d7ea0ca9d83ca81ba02c29b7410f221cb6071114e393240"), + nonce: &hex!("40e438357dd80a85cac3349e"), + plaintext: &hex!("8ddb3397bd42853193cb0f80c9"), + aad: b"", + ciphertext: &hex!("b694118c85c41abf69e229cb0f"), + tag: &hex!("c07f1b8aafbd152f697eb67f2a85fe45"), + }, + TestVector { + key: &hex!("acad4a3588a7c5ec67832baee242b007c8f42ed7425d5a7e57b1070b7be2677e"), + nonce: &hex!("b11704ba368abadf8b0c2b98"), + plaintext: &hex!("2656b5fbec8a3666cad5f460b7"), + aad: b"", + ciphertext: &hex!("35c7114cabe39203df19413a99"), + tag: &hex!("16f4c7e5becf00db1223476a14c43ebc"), + }, + TestVector { + key: &hex!("e5a0eb92cc2b064e1bc80891faf1fab5e9a17a9c3a984e25416720e30e6c2b21"), + nonce: &hex!("4742357c335913153ff0eb0f"), + plaintext: &hex!("8499893e16b0ba8b007d54665a"), + aad: b"", + ciphertext: &hex!("eb8e6175f1fe38eb1acf95fd51"), + tag: &hex!("88a8b74bb74fda553e91020a23deed45"), + }, + TestVector { + key: &hex!("e78c477053f5dae5c02941061d397bc38dda5de3c9c8660a19de66c56c57fd22"), + nonce: &hex!("4f52c67c2bb748d192a5a4e2"), + plaintext: &hex!("91593e21e1f883af5c32d9be07"), + aad: b"", + ciphertext: &hex!("e37fbc56b0af200a7aa1bbe34e"), + tag: &hex!("29fe54eaaccf5e382601a15603c9f28c"), + }, + TestVector { + key: &hex!("d0b13482037639aa797471a52b60f353b42e0ed271daa4f38a9293191cb78b72"), + nonce: &hex!("40fb7cae46adf3771bf3756a"), + plaintext: &hex!("938f40ac8e0e3b956aac5e9184"), + aad: b"", + ciphertext: &hex!("7dca05a1abe81928ccfb2164dd"), + tag: &hex!("5ea53ee170d9ab5f6cc047854e47cf60"), + }, + TestVector { + key: &hex!("46da5ec688feead76a1ddcd60befb45074a2ef2254d7be26abdfd84629dbbc32"), + nonce: &hex!("9fb3b2b03925f476fc9a35f3"), + plaintext: &hex!("a41adc9fb4e25a8adef1180ec8"), + aad: b"", + ciphertext: &hex!("f55d4cbe9b14cea051fe7a2477"), + tag: &hex!("824753da0113d21186699dbb366c0589"), + }, + TestVector { + key: &hex!("de3adf89f2fe246c07b0ce035f4af73cf2f65e5034dcfecfe9d7690ae1bdbd96"), + nonce: &hex!("a94aa4df0d8451644a5056c0"), + plaintext: &hex!("96825f6d6301db14a8d78fc2f4"), + aad: b"", + ciphertext: &hex!("784c6c3c24a022637cbc907c48"), + tag: &hex!("1eeaeddcdb4c72c4e8966950a319a4ef"), + }, + TestVector { + key: &hex!("03c362288883327f6289bc1824e1c329ce485e0ce0e8d3405245283cf0f2eae2"), + nonce: &hex!("5de9f882c915c72729b2245c"), + plaintext: &hex!("f5c1c8d41de01d9c08d9f47ece"), + aad: b"", + ciphertext: &hex!("61af621953a126a2d1de559e92"), + tag: &hex!("fbdeb761238f2b70c5fb3dde0a7978f3"), + }, + TestVector { + key: &hex!("e9ead7c59100b768aa6367d80c04a49bcd19fa8cc2e158dc8edeec3ea39b657d"), + nonce: &hex!("e81854665d2e0a97150fbab3"), + plaintext: &hex!("f8ccf69c52a873695367a42940"), + aad: b"", + ciphertext: &hex!("af2a7199602ee9ed2020c7b4cd"), + tag: &hex!("29715945ab1c034ecfcd91a466fc822e"), + }, + TestVector { + key: &hex!("bc3e5b0fe423205904c32f870b9adec9d736a1616624043e819533fa97ed9b79"), + nonce: &hex!("335fe5180135673ce1a75144"), + plaintext: &hex!("295df9665eef999204f92acf24"), + aad: b"", + ciphertext: &hex!("3ac2a8a1b505a84677adfdb396"), + tag: &hex!("21f20aa0bb77d46d7290bc9c97a7a7bd"), + }, + TestVector { + key: &hex!("ce889c73e0d64e272aba4bf9777afc7ee6457ddc9626ad931708ed7530d71b99"), + nonce: &hex!("fe61a6cda62fecd4e3b0c562"), + plaintext: &hex!("e2ae40ba5b4103b1a3066c1b57"), + aad: b"", + ciphertext: &hex!("185aa3508a37e6712b28191ec2"), + tag: &hex!("9ec1d567585aa467730cce92e536728e"), + }, + TestVector { + key: &hex!("41e0cb1aed2fe53e0b688acb042a0c710a3c3ae3205b07c0af5191073abdfba9"), + nonce: &hex!("2f56e35216d88d34d08f6872"), + plaintext: &hex!("6482df0e4150e73dac51dc3220"), + aad: b"", + ciphertext: &hex!("9cb09b9927dfbe0f228e0a4307"), + tag: &hex!("fe7e87a596d63e2ab2aae46b64d466e8"), + }, + TestVector { + key: &hex!("52a7662954d525cb00602b1ff5e937d41065ac4b921e284ffac73c04cfd462a0"), + nonce: &hex!("baffe73856ab1a47fb1feebf"), + plaintext: &hex!("9d0b5ca712f97caa1875d3ad87"), + aad: b"", + ciphertext: &hex!("fd01165380aedd6be226a66af3"), + tag: &hex!("35a492e39952c26456850b0172d723d1"), + }, + TestVector { + key: &hex!("c4badb9766986faeb888b1db33060a9cd1f02e1afe7aaaea072d905750cb7352"), + nonce: &hex!("cc6966e9d81a298a561416d4"), + plaintext: &hex!("de68fb51731b45e7c2c5063923"), + aad: b"", + ciphertext: &hex!("f5be41f2c8c32e01098d433057"), + tag: &hex!("c82b1b012916ab6ed851d59829dad8ab"), + }, + TestVector { + key: &hex!("dad89d9be9bba138cdcf8752c45b579d7e27c3dbb40f53e771dd8cfd500aa2d5"), + nonce: &hex!("cfb2aec82cfa6c7d89ee72ff"), + plaintext: &hex!("b526ba1050177d05b0f72f8d67"), + aad: &hex!("6e43784a91851a77667a02198e28dc32"), + ciphertext: &hex!("8b29e66e924ecae84f6d8f7d68"), + tag: &hex!("1e365805c8f28b2ed8a5cadfd9079158"), + }, + TestVector { + key: &hex!("0d35d3dbd99cd5e088caf686b1cead9defe0c6001463e92e6d9fcdc2b0dcbaf6"), + nonce: &hex!("f9139eb9368d69ac48479d1f"), + plaintext: &hex!("5e2103eb3e739298c9f5c6ba0e"), + aad: &hex!("825cc713bb41c789c1ace0f2d0dd3377"), + ciphertext: &hex!("8ff3870eec0176d9f0c6c1b1a2"), + tag: &hex!("344234475538dc78c01f249f673e0862"), + }, + TestVector { + key: &hex!("d35d64f1872bdcb422228f0d63f8e48977ed68d143f648ae2cd852f944b0e6dd"), + nonce: &hex!("0b2184aadbe8b515924dda5e"), + plaintext: &hex!("c8f999aa1a08871d74db490cf3"), + aad: &hex!("888f328d9e9eebbb9cb2704b5b880d66"), + ciphertext: &hex!("ad0d5e7c1065a34b27a256d144"), + tag: &hex!("8c8e7076950f7f2aeba62e1e761650d5"), + }, + TestVector { + key: &hex!("9484b7ce3c118a8a2d556c2f7ba41fca34f60c9ea1070171459c9e7487c9537e"), + nonce: &hex!("87bc033522ae84d2abe863c5"), + plaintext: &hex!("14d8004793190563825e273dda"), + aad: &hex!("07ee18737b9bf8223979a01c59a90eb4"), + ciphertext: &hex!("43034a2c57ccacc367796d766a"), + tag: &hex!("4c981ca8b6e9e52092f5435e7ef55fbb"), + }, + TestVector { + key: &hex!("4f4539e4a80ec01a14d6bb1bae0010f8a8b3f2cd0ac01adf239a9b2b755f0614"), + nonce: &hex!("2b6f00ce1570432bf52fdcac"), + plaintext: &hex!("820cc9389e7e74ca1cbb5a5fe6"), + aad: &hex!("0d72a13effe40544c57cc18005b998cb"), + ciphertext: &hex!("99553fdf3e777e2a4b3b6a5538"), + tag: &hex!("3cbf51640a3a93c3662c738e98fb36a2"), + }, + TestVector { + key: &hex!("2f5e93ee24a8cd2fc6d3765f12d2179ddb8397783e136af9e0ac75f16fca451e"), + nonce: &hex!("0dc3c70a191f3722641fd701"), + plaintext: &hex!("4e96463793cdeda403668c4aee"), + aad: &hex!("ebab30cbcc99905354e4ee6f07c7db87"), + ciphertext: &hex!("ab03f8ca7b1b150bdc26d4e691"), + tag: &hex!("020546afff4290c4c8ef7fc38035ebfd"), + }, + TestVector { + key: &hex!("a902e15d06ef5ad334d0ec6502e936ee53ef3f3608f7708848b11cefa92983d1"), + nonce: &hex!("b9f3e966efa43ab4aca1f2d8"), + plaintext: &hex!("393ff3dfe51cd43543e4e29fcc"), + aad: &hex!("2eaa35c00bf1cf8a81919bd04b43fd97"), + ciphertext: &hex!("7e8928b450c622ac8efe29d5a0"), + tag: &hex!("5a285de95990aef171629350bbcaf46e"), + }, + TestVector { + key: &hex!("96657976da7692004e271b594e8304f77db9c9e77859246bb30a16239ba76a53"), + nonce: &hex!("79226100afea30644876e79a"), + plaintext: &hex!("2b0833a065c3853ee27c8968d0"), + aad: &hex!("ede7a9072a0086b9a1e55d900747cf76"), + ciphertext: &hex!("19373168f1a4052a57c6b8146f"), + tag: &hex!("debbf044325384b90a0c442d95455fb9"), + }, + TestVector { + key: &hex!("630ea13eb5f52378b976ba2662f824dc622920759a15d2e341c446b03ea7bd5c"), + nonce: &hex!("0f9ebe47682f93d44c4db314"), + plaintext: &hex!("5c734964878a4250a3bf61fdd6"), + aad: &hex!("5ad8e9cffe622e9f35bdb185473868e5"), + ciphertext: &hex!("67cb6d943340d002d3323fcc4e"), + tag: &hex!("f5dc0f88f236560c4e2a6d6c15d3c0de"), + }, + TestVector { + key: &hex!("c64f8a3ac230dce61b53d7b584f2309384274d4b32d404bc0c491f129781e52d"), + nonce: &hex!("7f4b3bcf763f9e2d08516a6d"), + plaintext: &hex!("fe581128ae9832d27ec58bd7ac"), + aad: &hex!("89ed6945547ee5998de1bb2d2f0bef1e"), + ciphertext: &hex!("81d7a8fdaf42b5716b892199c9"), + tag: &hex!("8183aaff4c0973fe56c02c2e0c7e4457"), + }, + TestVector { + key: &hex!("dd73670fb221f7ee185f5818065e22dda3780fc900fc02ef00232c661d7bffce"), + nonce: &hex!("c33de65344cfbf228e1652bd"), + plaintext: &hex!("ada4d98147b30e5a901229952a"), + aad: &hex!("e1a5e52427f1c5b887575a6f2c445429"), + ciphertext: &hex!("6ed4e4bd1f953d47c5288c48f4"), + tag: &hex!("404e3a9b9f5ddab9ee169a7c7c2cf7af"), + }, + TestVector { + key: &hex!("f6c5d9562b7dbdd0bf628ddc9d660c27841b06a638f56601f408f23aa2f66f4e"), + nonce: &hex!("67280bcb945ba6eda1c6c80a"), + plaintext: &hex!("f4caead242d180fbd2e6d32d0c"), + aad: &hex!("5b33716567b6c67b78ea5cd9349bcaaf"), + ciphertext: &hex!("fdfa39517d89ea47e6ccb0f831"), + tag: &hex!("91f9b540ca90e310a1f5c12c03d8c25e"), + }, + TestVector { + key: &hex!("ce1d242f13de7638b870e0aa85843ea43a9255a4fa4d32057347f38e0267daeb"), + nonce: &hex!("86562be4621b4d5eb1983075"), + plaintext: &hex!("d20e59a8ef1a7de9096c3e6746"), + aad: &hex!("d48a9490a0b7deb023460608b7db79ce"), + ciphertext: &hex!("35ce69fb15d01159c52266537c"), + tag: &hex!("dc48f7b8d3feeeb26fcf63c0d2a889ec"), + }, + TestVector { + key: &hex!("512753cea7c8a6165f2ebbd3768cc7b951029bd527b126233cf0841aff7568c7"), + nonce: &hex!("b79221802d8d97978041fe84"), + plaintext: &hex!("c63d6c1006b615275c085730b1"), + aad: &hex!("22fa0605b955a33468f3e60160b907f2"), + ciphertext: &hex!("bdb5d7f24732bdba1d2a429108"), + tag: &hex!("fca923d2941a6fd9d596b86c3afb0ad9"), + }, + TestVector { + key: &hex!("e7b18429e3edded2d992ca27afab99e438b8aff25fc8460201fabe08e7d48ec2"), + nonce: &hex!("9db9b7320aaac68538e37bf7"), + plaintext: &hex!("c4713bc67a59928eee50039901"), + aad: &hex!("283e12a26e1646087b5b9d8c123dde1f"), + ciphertext: &hex!("a5932f92bda107d28f2a8aaa74"), + tag: &hex!("9a1357fd8ed21fe14d1ca2e597c3ef17"), + }, + TestVector { + key: &hex!("69b458f2644af9020463b40ee503cdf083d693815e2659051ae0d039e606a970"), + nonce: &hex!("8d1da8ab5f91ccd09205944b"), + plaintext: &hex!("f3e0e09224256bf21a83a5de8d"), + aad: &hex!("036ad5e5494ef817a8af2f5828784a4bfedd1653"), + ciphertext: &hex!("c0a62d77e6031bfdc6b13ae217"), + tag: &hex!("a794a9aaee48cd92e47761bf1baff0af"), + }, + TestVector { + key: &hex!("97431e565e8370a4879de962746a2fd67eca868b1c8e51eece2c1f94f74af407"), + nonce: &hex!("17fb63066e2726d282ecc610"), + plaintext: &hex!("e21629cc973fbe40176e621d9d"), + aad: &hex!("78e7374da7c77be5938de8dd76cf0308618306a9"), + ciphertext: &hex!("80dbd469de480389ba6c2fca52"), + tag: &hex!("4e284abb8b4f9f13c7497ae56df05fa5"), + }, + TestVector { + key: &hex!("2b14ad68f442f7f92a72c7ba909bcf995c827b439d39a02f77c9bf8f84ab04dc"), + nonce: &hex!("4c847ea59f83d82b0ac0bc37"), + plaintext: &hex!("b3c4b26ebbfc717f51e874587d"), + aad: &hex!("8eb650f662be23191e88f1cd0422e57453090e21"), + ciphertext: &hex!("3e288478688e60178920090814"), + tag: &hex!("a928dc026986823062f37ec825c67b95"), + }, + TestVector { + key: &hex!("11f41bf7d4b9ac7b0035ce54481ed1502ff05cfae02ffba9e502f61bfe785351"), + nonce: &hex!("06f5cf8c12c236e094c32014"), + plaintext: &hex!("bee374a32293cad5e1b28419b3"), + aad: &hex!("d15cbde6290b7723625c99ffa82a9c4c03ed214d"), + ciphertext: &hex!("3f8122deb6dbe0ff596441203d"), + tag: &hex!("60ef7f3723710b9ab744f8eea00267f7"), + }, + TestVector { + key: &hex!("18ca572da055a2ebb479be6d6d7164e78f592b159cdea76e9fe208062d7b3fa1"), + nonce: &hex!("1b041e534ae20748262f3929"), + plaintext: &hex!("cda2fa0015361ecf684c6ba7d1"), + aad: &hex!("e8a925d7ce18dd456b071cb4c46655940efbe991"), + ciphertext: &hex!("740d8d578e2e7522c31019f471"), + tag: &hex!("f2eeb5af1bfedd10570a137fe2566c3f"), + }, + TestVector { + key: &hex!("0de2ac5bfec9e8a859c3b6b86dde0537029cdca2d0844bf3e1d98f370e199be1"), + nonce: &hex!("1778e308e0221288f1eb4c5a"), + plaintext: &hex!("575d93a3416763cbd371b5a671"), + aad: &hex!("1362264f5655f71986aa788efd48f6fc13bb6ab4"), + ciphertext: &hex!("8f8df7ca83bf876b63c78e2c9a"), + tag: &hex!("16c74e315aab97efafbe95c9dcaa2d0c"), + }, + TestVector { + key: &hex!("b381535a085bc4808fa7a139c7204e8a87c7145dfc8f3900df1fa9a9844fab35"), + nonce: &hex!("21ddc54d3c633f4a344a0e42"), + plaintext: &hex!("e4d958cee583010bbfd3a53021"), + aad: &hex!("7ac3ba600e08363ddb57c45a8670bb4abb869db0"), + ciphertext: &hex!("c42c81a312759cdb032aafe852"), + tag: &hex!("0c472591db3df8a7c67164591542dcc9"), + }, + TestVector { + key: &hex!("29f21e5029ea4964b96dc6f4c34b2df4cce02f2fcf0f168ffd470e7858e0a0ad"), + nonce: &hex!("63a1c1ccc328280a90ff96fe"), + plaintext: &hex!("dc12113764c13c21432ca1ba33"), + aad: &hex!("454f447433f0948581956c4be1b19d932e89b492"), + ciphertext: &hex!("1cb45aac5def93daef806b781e"), + tag: &hex!("f4b0723c89607b66c392049ba042db63"), + }, + TestVector { + key: &hex!("2733d3aa52a9d70a9fbd6ce2364bb5f9004902aa5eeb17446e08f2bdcc41db15"), + nonce: &hex!("196c4addb84a58beb3674a7a"), + plaintext: &hex!("cbc50cafda2544bcd291e8a025"), + aad: &hex!("c9826fe31f29b55b9d0f9da9795869a1a98befe5"), + ciphertext: &hex!("7a89cc58ccb97ad3e54ca4a9c8"), + tag: &hex!("3990d9aba210182996fdbd91c2ae4801"), + }, + TestVector { + key: &hex!("0c4b9005b407415c19672bcd0ebe169f66fe404f22529baf55568e0901e94922"), + nonce: &hex!("e51381e959a1f5688c938576"), + plaintext: &hex!("c6179bd3451d9299b727e8bd0a"), + aad: &hex!("0b512faeb4da740dcc1e30d3c7ea61035e8570b7"), + ciphertext: &hex!("4d3fe086c990f16020b4c5eed6"), + tag: &hex!("9ff2297845814719f851ab0943117efb"), + }, + TestVector { + key: &hex!("fee442ba37c351ec094a48794216a51d208c6a5ba0e5bdb8f3c0f0dfc1e4ed63"), + nonce: &hex!("a666f2f0d42214dbaa6a2658"), + plaintext: &hex!("a2cf3ea0e43e435261cb663a3b"), + aad: &hex!("7198c12810345403862c5374092cc79b669baecc"), + ciphertext: &hex!("713d4050f8c7fd63c0c1bf2ad9"), + tag: &hex!("250a35e2b45ba6b0fe24512f8213d8cb"), + }, + TestVector { + key: &hex!("77f754d0cf7dbdaf75cfe965ab131e8cd39087ee6d986dec4ad2ff08ebd7f14b"), + nonce: &hex!("e28a14f3107ca190d824ed5f"), + plaintext: &hex!("54a97a74889e55d8043451c796"), + aad: &hex!("1decf0cbc50a9da6dad4a785a941e4b95ce5aaa8"), + ciphertext: &hex!("eedbf8dd81eb19184589dcb157"), + tag: &hex!("7749edd752fab7e50dbc3b0b47678bf6"), + }, + TestVector { + key: &hex!("0523f232001e68bd65a79837bbaf70ec2e20851301d8e12fddb5926acb2100cb"), + nonce: &hex!("2bb8d5cb3ceb15107582e1fa"), + plaintext: &hex!("6b4cdc9f9c5082d86a1d2e68fe"), + aad: &hex!("1f55bba71cb63df431ef8832c77499ee3c502067"), + ciphertext: &hex!("079fe90ef517ed2f614a3cd8ce"), + tag: &hex!("539c30590a2527f1d52dfae92920794c"), + }, + TestVector { + key: &hex!("54c56ee869ebb112a408717eb40af6937fe51eb061b42277a10537e7db346b6a"), + nonce: &hex!("5bfb63e2f3e5b2e1b4343480"), + plaintext: &hex!("75f9496b8d0ca96ed3af02dcab"), + aad: &hex!("740ab07b9c5de2afa37f0788ae5230535c18203d"), + ciphertext: &hex!("827902e58c4c8b7af976f61842"), + tag: &hex!("036ee6473c2138f2a2c2841438cb0edc"), + }, + TestVector { + key: &hex!("d968ffdbed6ffc259b4310e2e97e42d877ef5d86d2169928c51031983779a485"), + nonce: &hex!("633d0d8d3613c83b40df99dd"), + plaintext: &hex!("08cfc65fea9b07f0c01d29dfdf"), + aad: &hex!("9aadc8d8975ec0a3f5c960ce72aaec8ef0b42034"), + ciphertext: &hex!("7b450f162bdedc301b96a3ac36"), + tag: &hex!("970d97344b1451f3f969aeb972d352e6"), + }, + TestVector { + key: &hex!("5f671466378f470ba5f5160e2209f3d95a48b7e560625d5a08654414de23aee2"), + nonce: &hex!("6b3c08a663d04132243dd96c"), + plaintext: &hex!("c428592d9f8a7f107ec4d0df05"), + aad: &hex!("12965559c31d538f937bda6eee9c93b0387318dc5d9496fb1c3a0b9b978dbfebff2a5823974ee9d679834dbe59f7ec51"), + ciphertext: &hex!("1d8d7fe4357080c817303ce19c"), + tag: &hex!("e88d6b566fdc7b4fd62106bd2eb806ec"), + }, + TestVector { + key: &hex!("fbcc2e7faa4295080e40b141bef829ba9d34e0691231ad6c62b5109009d74b5e"), + nonce: &hex!("7f35d9ec651c5b0966573e2f"), + plaintext: &hex!("cdd251d449551fec080425d565"), + aad: &hex!("6330d16002a8fd51762043f2df06ecc9c535c96ebe33526d8faf767c2c2af3cd01f4e02fa102f15ce0236d9c9cef26de"), + ciphertext: &hex!("514c5523024dd4c7d59bd73b15"), + tag: &hex!("d3a399843e5776aa348e3e5e56482fff"), + }, + TestVector { + key: &hex!("04ef660ec041f5c0c24209f959ccf1a2a7cdb0dba22b134ea9f75e6f1efdae4a"), + nonce: &hex!("0f5f6fbca29358217c8a6b67"), + plaintext: &hex!("0835b312191f30f931e65aa05f"), + aad: &hex!("505e205d13ec945391c7d6516af86255e82f38433f40404d4f1e42d23b33eb9e6dea5820dad60622d3a825fc8f01a5d2"), + ciphertext: &hex!("5ddc0f5963f0290c1a0fb65be7"), + tag: &hex!("106d1f8d26abe4b4b1e590cd5d85e737"), + }, + TestVector { + key: &hex!("42d3ff74284395fb9db9b8c7a444fa400f7fc6b985a7fec2478667c7f17cf3ba"), + nonce: &hex!("89230fbed59d1226a093ad28"), + plaintext: &hex!("d8339e3618ba57a243a27c85d6"), + aad: &hex!("60342f97310446266b2e47b18e008979d07fc181151ac0939b495e7f31de1d0e74042532840ab91686efd7a402d27a94"), + ciphertext: &hex!("9bb6fa36fa167016109d521ac0"), + tag: &hex!("600909ef32ca62951ecbdc811caa7778"), + }, + TestVector { + key: &hex!("e115c6468606a5f9b8e9a7c220d7d7684d686c9210a669770b6e4bf24447cd17"), + nonce: &hex!("029c7c9ee2d3ab26843e8b41"), + plaintext: &hex!("7abf84842f9867cfc5eabc7032"), + aad: &hex!("1befd9f97f99fc096deafde5e158ac86716c0ba32454988fe48ba4737684361849a221c03fc0948cb25b5f29d6a0cb2a"), + ciphertext: &hex!("851c7047fb09646fbddb824531"), + tag: &hex!("d0ac4110c8d768f0a804ecda387cfa30"), + }, + TestVector { + key: &hex!("56552f0cef34673a4c958ff55ad0b32c6ababa06cb3ae90178ab1c9a1f29c0e5"), + nonce: &hex!("b34d24935407e8592247ffff"), + plaintext: &hex!("dbd6cc358b28ab66a69f5238d4"), + aad: &hex!("b199437da189486a8fd1c2fa1fe3ebbb116f0ef41415bb7c8065272fb0b2fe8edca9cd0d4255d467e77f2834be557474"), + ciphertext: &hex!("76dc8d035e5ca4001e4e3fcb18"), + tag: &hex!("49c01f735da1131cd42b01b746fd38de"), + }, + TestVector { + key: &hex!("d4f405ba556e6fe74b7e6dbdd7a8eae36376d1ca7a98d567d108729aeae5c326"), + nonce: &hex!("df6637c98a6592843e0b81ef"), + plaintext: &hex!("abe87641e9a5169f90179d3099"), + aad: &hex!("a5328cbabdfe6c3c1d4f5152189072dade71e2bacd857d3ce37ee9e3161eb0f20de5a29b7999fd9c7c60cdc03751bd1b"), + ciphertext: &hex!("06f9cf9677745e78c6c02bf06b"), + tag: &hex!("5a3a76da0703c24a9588afb2ac1a9e13"), + }, + TestVector { + key: &hex!("4f667f65ea4569264456e25de498579036d6a604c18baf770bb626d8a1c68e4f"), + nonce: &hex!("43e27d275abefdd45137c8ff"), + plaintext: &hex!("eaa2498ce27e5658489381b6ec"), + aad: &hex!("264b807b4631d7c87ee9f1507082f5af9218f531b4630141f3c94939aa7cf81c71ea540783995560bf7e6e02d196227f"), + ciphertext: &hex!("bac018bf2e7090e7f217ab3365"), + tag: &hex!("13e5a16a9ce7a88cda640de2c4fdc07e"), + }, + TestVector { + key: &hex!("f5624a166759ef0b8168af6565649f7797fa92476e008c407458101e75831312"), + nonce: &hex!("521ca79ffc8930349abfc052"), + plaintext: &hex!("1fab3def2ea13e815f8746093b"), + aad: &hex!("6e2771ecd637361cb6b947148910f7d9206d6af176c510bb5dd5bc9b97ac015fb05537affbc1756625715374172fb456"), + ciphertext: &hex!("ca72ff15a7eb62a2839bcf0c43"), + tag: &hex!("475fff6d9e2382583c9614020844b92a"), + }, + TestVector { + key: &hex!("ac1383a3c783d3d0667e944cbe1a6159647b96afa922557eb1cb6407546b98ca"), + nonce: &hex!("70366112dbe1bd905b900e3a"), + plaintext: &hex!("b8dd871f9d866867efbe551c3b"), + aad: &hex!("b7c1865927737bee802415277cf1a25b7380774a9d27b6a3253f077d36e9c4142df2bbbf3c03414ac09161626ce9367c"), + ciphertext: &hex!("ba181874380841791f64881534"), + tag: &hex!("c5641edf42c446873372bbbde1146642"), + }, + TestVector { + key: &hex!("f37499d9b6ad2e7618e30a23082673008f3ae1938b9397c02a4da2453fb7e403"), + nonce: &hex!("18e112ea6a998d6f9705f7e0"), + plaintext: &hex!("31560b2114a248ffe0696fa130"), + aad: &hex!("736f1a71fb259f46c6519bb87451f238f47d80c74a016604499b02568f1c7bedf70f9597d7b62c1698c4f2631f4e9706"), + ciphertext: &hex!("0163f558be0142ebabde29a7bc"), + tag: &hex!("45579ce07ee64cdac3a7a42109ff44e7"), + }, + TestVector { + key: &hex!("50b7f5118ef7ee22b107d93ceab9881ef9658931e80385d1ae92501b95e47d62"), + nonce: &hex!("d5113665039169978b7dc4db"), + plaintext: &hex!("9ba4cd5e600277f4c786ce827e"), + aad: &hex!("68ff6c63e94cb7dd2b8413662a56c88dc130b79b8b2e2388c1089b61fa51ea37819109b5ef64da1250f5d6b5d74cc392"), + ciphertext: &hex!("67842199482b28be56f7570d11"), + tag: &hex!("79e03841843fe32337b7c7409a2153bc"), + }, + TestVector { + key: &hex!("d396941c9c59e6a7bc7d71bd56daf6eabe4bfb943151cdb9895103384b8f38b4"), + nonce: &hex!("f408f8c21f3825d7a87643ed"), + plaintext: &hex!("dc8ad6a50812b25f1b0af70bee"), + aad: &hex!("947bd9a904e03fdd2c91d038d26d48ac6e32afcad908eacd42a25f6240964656d5a493242d3f8a19119a4cd9957d9c42"), + ciphertext: &hex!("57e6d821079bb8a79027f30e25"), + tag: &hex!("de8c26d5a3da6be24b3f6ea1e2a0f0c6"), + }, + TestVector { + key: &hex!("eca22b3a29761fd40031b5c27d60adbcfac3a8e87feb9380c429cfbcda27bd06"), + nonce: &hex!("4e6fe3d1f989d2efb8293168"), + plaintext: &hex!("44d6a6af7d90be17aac02049a4"), + aad: &hex!("29beb1f0bb6b568268b9c7383991a09fd03da7e1639488169e4f58ec6451cad6d4c62086eee59df64e52a36527733d8c"), + ciphertext: &hex!("9aaa295bb3db7f6335a4c8cf2f"), + tag: &hex!("55f7577163a130c0dbcde243ef216885"), + }, + TestVector { + key: &hex!("fa3ce8b099f3a392624bc433b5265235b65c0952cfc54817be2a8003d057903c"), + nonce: &hex!("3168b4e50efe96b3d3aed600"), + plaintext: &hex!("84ed3ccd428d3783ecea180b3b"), + aad: &hex!("d451fa64d73b7d7eee8f8143c40bab8e3f7a58ee018acda23224974f64ac7e1e389f5058ec08664bf56492b932d15f42"), + ciphertext: &hex!("ee2bd527568a4e7537c8f939b6"), + tag: &hex!("f4615f7dfdffec8a2d52c992456210ad"), + }, + TestVector { + key: &hex!("ff9506b4d46ba54128876fadfcc673a4c927c618ea7d95cfcaa508cbc8f7fc66"), + nonce: &hex!("3742ad2208a0484345eee1be"), + plaintext: &hex!("7fd0d6cadc92cad27bb2d7d8c8"), + aad: &hex!("f1360a27fdc244be8739d85af6491c762a693aafe668c449515fdeeedb6a90aeee3891bbc8b69adc6a6426cb12fcdebc32c9f58c5259d128b91efa28620a3a9a0168b0ff5e76951cb41647ba4aa1f87fac0d97ac580e42cffc7e"), + ciphertext: &hex!("bdb8346b28eb4d7226493611a6"), + tag: &hex!("7484d827b767647f44c7f94a39f8175c"), + }, + TestVector { + key: &hex!("b65b7e27d552395f5f444f031d5118fb4fb226deb0ac4e82784b901accd43c51"), + nonce: &hex!("2493026855dd1c1da3af7b7e"), + plaintext: &hex!("8adb36d2c2358e505b5d214ad0"), + aad: &hex!("b78e31b1793c2b758494e9c8ae7d3cee6e3697d40ffba04d3c6cbe25e12eeea365d5a2e7b46c4245771b7b2eb2062a640e6090d9f81caf63207865bb4f2c4cf6af81898560e3aeaa521dcd2c336e0ec57faffef58683a72710b9"), + ciphertext: &hex!("e9f19548d66ef3c16b711b89e2"), + tag: &hex!("e7efc91bbf2026c3519010d65628e85f"), + }, + TestVector { + key: &hex!("8e4f8859bc838f6a2e7deb1849c27b78878285e00caad67507d5e79105669674"), + nonce: &hex!("e71d0ebb691a4c31fdd9879c"), + plaintext: &hex!("bd1713d8d276df4367bf3cbb81"), + aad: &hex!("47ca6cef3ca77997ef1b04e3721469be440ad6812aa3674ae92ca016b391d202e29932edfa83029eccae90bd8dbe4b434e7304b28fe249b380b2c3c49324fd5b3e469e3e135abc1c9fd77828b409c7482e6a63461c0597b14e5c"), + ciphertext: &hex!("eecbfb74e314628b0e3f827881"), + tag: &hex!("c9ea890294d7e10f38b88e7c7493c5f8"), + }, + TestVector { + key: &hex!("2530cdcb2a789000822588a31bdc87c09234838da2d6ae1259c7049186525f11"), + nonce: &hex!("0c509faa257dbb0e743a53ac"), + plaintext: &hex!("a8edc524930ce4c20897c66f75"), + aad: &hex!("92a92cb8c1984ede806028cc45ac95574167ee83f03a707cc4b0fb8ad70907e0016e38b650f4a75bc83a625e3c670701d43bfb0326d1c4fe7c68410733c0c874c920389d164bf67a9032e2e837f5e9e324b97932d1f917ba7dca"), + ciphertext: &hex!("1f658c7a1f41152b22999ed1b7"), + tag: &hex!("cf3e4fef775d9c6ff3695be2602a90d8"), + }, + TestVector { + key: &hex!("54c31fb2fb4aab6a82ce188e6afa71a3354811099d1203fe1f991746f7342f90"), + nonce: &hex!("f0fe974bdbe1694dc3b06cc6"), + plaintext: &hex!("fbb7b3730f0cd7b1052a5298ee"), + aad: &hex!("2879e05e0f8dd4402425eabb0dc184dcd07d46d54d775d7c2b76b0f76b3eed5f7ca93c6ae71bf509c270490269ea869ed6603fdf7113aa625648ab8ed88210f8b30ec9c94bca5757ca3d77491f64109101165636b068e3095cb4"), + ciphertext: &hex!("3a5a2a8aa93c462cfb80f1f728"), + tag: &hex!("59ef9d54ee01fb6cd54bd0e08f74096f"), + }, + TestVector { + key: &hex!("8084061d0f7858a65c3a3557215ed46f1590278ca97a45dcb095d2a0979f2e3f"), + nonce: &hex!("6973898b1a8f72856415675b"), + plaintext: &hex!("200d0445cb09eb52f54d2f74c6"), + aad: &hex!("8b543e294546848c3308ccea302f0238b7dffc1706d03657c190ea745cc75bcd5a437993e787828ea7fe42fea1d5c6f7229a72ea65f0d0c190989a590ab49c54726633282c689eef8cf852af263b5edf63e449fd5440730003ca"), + ciphertext: &hex!("ec242c358193ca6187c89aa7a5"), + tag: &hex!("967428ac6956525ba81d5901ed259407"), + }, + TestVector { + key: &hex!("2aad7db82df4a0d2ec85218da9d61ade98f65feeb8532d8eb728ef8aac220da6"), + nonce: &hex!("029ac2e9f5dc3d76b0d1f9df"), + plaintext: &hex!("ba363912f6207c54aecd26b627"), + aad: &hex!("d6f4b6232d17b1bc307912a15f39ccd185a465ee860279e98eb9551498d7b078271ebabdda7211e6b4ab187043171bc5e4bf9ffcf89a778430e735df29410a45ca354b0003433c6bc8593ee82e7c096a32eac76d11daa7d64150"), + ciphertext: &hex!("bfcad32611da275a0f0821517c"), + tag: &hex!("9ea37bdcaafad69caf06d67fb18dd001"), + }, + TestVector { + key: &hex!("f70bb950ab56f12f1efc2376d32a59d16ef3ef5969e0106ab40cc314c9b0c7e8"), + nonce: &hex!("3b3b29ba422c2bacafeeb8b3"), + plaintext: &hex!("029929277043dc0379f152a484"), + aad: &hex!("464ac0c84b9ff17a0e7c39a65f89682a89b8787553a6275f0d55effaabef2114072c739f9831a5d5a5133ae4de14eb51346b318b255a1bff57e50c433e1e69a00fe1a8b6f6b621d515d670d89e148f6b65d6eb4c54878cb819ce"), + ciphertext: &hex!("c0b97d6d1a95d708d6dc7d2b95"), + tag: &hex!("322eb4395bf4d4dd070b8f9f6195f8ee"), + }, + TestVector { + key: &hex!("f4950f01cb11fdd9afb297f7aa852facfac354ff96557befa5f657678de6cefb"), + nonce: &hex!("aba7d864f29cbc449cd93e33"), + plaintext: &hex!("e6daf59ef54ac7405984fc4c4e"), + aad: &hex!("852f624cea7a8c20e189e0c79f578c0d770c4bf7c4e691649eba992f6de89d7bf2078aff94803a3dc62628e02a80a01957722e2a931fc56283d84ab68ce11ae867835c2d9700df130048ea8eaaca41f1a9059be2acaea6e0f7f2"), + ciphertext: &hex!("d01d36ff8009b4082279abb906"), + tag: &hex!("d9a36c8008493bd95c09049299cbd075"), + }, + TestVector { + key: &hex!("714261ef4f02fb4efb0e6b5aed96d7b3ceac6551a57cf679da179c01aac5ee0e"), + nonce: &hex!("3b7d15c7fd877461a789255a"), + plaintext: &hex!("815de8b0382fe60cb0d3782ee9"), + aad: &hex!("7621e58152336ee415f037f2e11581fe4da545c18d6e80177d5ab5dda89a25e8057d6fccec3757759a6e86e631080c0b17baa8be0b8fe579d3bfa97937ee242b6faacfc09425853df4dc26bc263ed1083a73ffc978c9265f8069"), + ciphertext: &hex!("29c566ea47752a31a380fd0e7c"), + tag: &hex!("b279340a384dbbae721c54e9183b3966"), + }, + TestVector { + key: &hex!("53459ba5a2e49d1a7c2fb6ad9e6961b4dbe5158cb9266eff425d6dcccaaf8073"), + nonce: &hex!("3c97dc635a75fbe2c33c9a41"), + plaintext: &hex!("03fbfe5842ed781990ca8be728"), + aad: &hex!("7fe308afe58a927680bee3368301f4dc7c47811fc09f1b9922a092a497b9c6b67c857fdcc32da1011acb110b3c1475bef303f1a609479485cc400ee8f38381c45d078708ad49f226f95dd9c81478d1ee2b53c3b906d96f8ddd76"), + ciphertext: &hex!("5865e5a1ec711732a4ee871bff"), + tag: &hex!("856a653ec214178096bed423e30a36e9"), + }, + TestVector { + key: &hex!("f0501583c226d2519ed23fcc6f2cffd2f013eb91aa07b3a5a2073d6e2bd10cef"), + nonce: &hex!("29a922ad9bdeddc2e298b99f"), + plaintext: &hex!("035eb6922345c02a81435d9e77"), + aad: &hex!("d84f54bac09ea92afe0a7335cb0bb5f68425490fd2fb6c3b99218f49856ed427ec902e510b899d54951fe84cdbfd112608d1e999f64ecc9cd4be3a0114c1c34875dbf35a1b0be421659f99d69b32e968cebfca6f95837e3edeb4"), + ciphertext: &hex!("095971f99af467805a62bfb882"), + tag: &hex!("d5ff2b7beac260e517ea3eca13ff1e77"), + }, + TestVector { + key: &hex!("78e6789b596c71cb3becc833cf823d2ebb18ca2e26c27e26a55ef95df7353971"), + nonce: &hex!("65da9c7a9f17b11246bcf8db"), + plaintext: &hex!("003e82a147df3c953400f87ab5"), + aad: &hex!("d49aee7ffd31e7c8d831d97ae894a00473adbc5071f6099d567caaef85c295d5143a1316ff82753cc35d3efc60f7e5101ddd811336b404d598f6c439cce6b47fcbebb15d1c342e4151b355025a03b4397260b4a7e6444fa57b5b"), + ciphertext: &hex!("abcceced40209fc30a5590fee8"), + tag: &hex!("0a203973b81375949ebd932597efd495"), + }, + TestVector { + key: &hex!("816b3e6ca31d59688c20bcd1fa4285197735d8734289ca19a4730e56f1631ccf"), + nonce: &hex!("4c191ac994f86985c180ccd4"), + plaintext: &hex!("b2060dd86bc307133b7d365830"), + aad: &hex!("b3dcd643c68ccce186570c63288c8722b8a13dfaf9e71f44f1eeb454a44dddf5f955540cd46c9f3b6f820588f71936d7a8c54c7b7bc43f58bb48e6416149feae7a3f8d8198a970811627489266a871e8cb87878cdb3a48be65f5"), + ciphertext: &hex!("53e65880ad0012a75f1188996f"), + tag: &hex!("9ca8a71a45eb4402a6b03106bae330d1"), + }, + TestVector { + key: &hex!("a07ba57478061bd7abddd762971cf2e47141891f76c3d1c150b53eee5704557d"), + nonce: &hex!("5adfb85b2d9e239c5146501d"), + plaintext: &hex!("67c8824c1837cfdec6edcd719c"), + aad: &hex!("937b3ed73e67ca0b02f9eb736a668362d4d0447c15f6083099a7f90c7c49318dd72f6baa74da22ff53b56c24fb9a1b1d6c4e29f4ac4d917220ebe3c8d760999da7be9e1e8f6a171133640c9196f9ee3cdb76a5a342a95a05c8c4"), + ciphertext: &hex!("1eb85c6682850e849eb37927e5"), + tag: &hex!("8079f705cf551a5484132cd0f0c5297c"), + }, + TestVector { + key: &hex!("268ed1b5d7c9c7304f9cae5fc437b4cd3aebe2ec65f0d85c3918d3d3b5bba89b"), + nonce: &hex!("9ed9d8180564e0e945f5e5d4"), + plaintext: &hex!("fe29a40d8ebf57262bdb87191d01843f4ca4b2de97d88273154a0b7d9e2fdb80"), + aad: b"", + ciphertext: &hex!("791a4a026f16f3a5ea06274bf02baab469860abde5e645f3dd473a5acddeecfc"), + tag: &hex!("05b2b74db0662550435ef1900e136b15"), + }, + TestVector { + key: &hex!("c772a8d5e9f3384f16be2c34bf9afd9ebf86b69e6f610cd195a9db169e9be17e"), + nonce: &hex!("9b8e079f9971d7352e6810a3"), + plaintext: &hex!("7f13fcaf0db79d792823a9271b1213a98d116eff7e8e3c86ddeb6a0a03f13afa"), + aad: b"", + ciphertext: &hex!("d29e2bf3518668a14f17a3e4e76e1b43685734b801118d33a23238f34d18aa40"), + tag: &hex!("8e02b0b7d172cf5e2578f5b30fac2e7a"), + }, + TestVector { + key: &hex!("d5924b31676e2354fe7dafffaf529749598ea1bf5e4c44f5b60240e09d8036aa"), + nonce: &hex!("5d847784f0bcd79cb84fcf1d"), + plaintext: &hex!("6fd80c8f0d4de081a93c16b84dec697a1e4f9d80a6af497c561572645eac0d63"), + aad: b"", + ciphertext: &hex!("282cc9d2308a443019cfdc4d79854accc7731ee36902bafe3ffaca6484327b82"), + tag: &hex!("4dc5e0f2ab91bdfd31f2bdcf06af9667"), + }, + TestVector { + key: &hex!("b328c6d7946221a08c4f0509b52992a139890cdd8eae1956851f110c49602cb5"), + nonce: &hex!("1a433c33ca12ce26cf3dffff"), + plaintext: &hex!("217bdc314a4d335c72b5267b424fc8e31f4bb118e6cfaeacf5548f4ba8f51980"), + aad: b"", + ciphertext: &hex!("a322944e07bf84ab424ffa75fd0309e8691c9036b08f344ba76ce0774f43b351"), + tag: &hex!("14dd6b1c2b224533ccc9fee8d2881358"), + }, + TestVector { + key: &hex!("c2080965d21d229c0d0d6c56cbce83880120c21a48172a64560b90dc4ce1ffbe"), + nonce: &hex!("928d6c0195f5f0974f38730b"), + plaintext: &hex!("864397271e1b242aa1dff38e78aa89353e1554ba907318a0aaad44f26fcd567d"), + aad: b"", + ciphertext: &hex!("7de4f941f44bd0f268b2a47b9c4927cc10537bbed739d52ab099fde4033041d1"), + tag: &hex!("b51a59931817257619e7be1091128c49"), + }, + TestVector { + key: &hex!("dd6b7e2584edf1f1e6c2c0dd1f72161a92d2cba99856554f820de1256d48c099"), + nonce: &hex!("fe9d553c75067e8dbae1ab67"), + plaintext: &hex!("f9f86f7762859f11d6e7ef56178657ddcded532843446f86a23eac35aa2dd3c0"), + aad: b"", + ciphertext: &hex!("f7aaa1711c8092783b05b4e5e6c9c6944e991bd59c94b9d0356df00a66e2db5b"), + tag: &hex!("c61edd176c8322a01d8c5f3df09252e9"), + }, + TestVector { + key: &hex!("37f39137416bafde6f75022a7a527cc593b6000a83ff51ec04871a0ff5360e4e"), + nonce: &hex!("a291484c3de8bec6b47f525f"), + plaintext: &hex!("fafd94cede8b5a0730394bec68a8e77dba288d6ccaa8e1563a81d6e7ccc7fc97"), + aad: b"", + ciphertext: &hex!("44dc868006b21d49284016565ffb3979cc4271d967628bf7cdaf86db888e92e5"), + tag: &hex!("01a2b578aa2f41ec6379a44a31cc019c"), + }, + TestVector { + key: &hex!("a2ef619054164073c06a191b6431c4c0bc2690508dcb6e88a8396a1391291483"), + nonce: &hex!("16c6d20224b556a8ad7e6007"), + plaintext: &hex!("949a9f85966f4a317cf592e70c5fb59c4cacbd08140c8169ba10b2e8791ae57b"), + aad: b"", + ciphertext: &hex!("b5054a392e5f0672e7922ac243b93b432e8c58274ff4a6d3aa8cb654e494e2f2"), + tag: &hex!("cf2bbdb740369c140e93e251e6f5c875"), + }, + TestVector { + key: &hex!("76f386bc8b93831903901b5eda1f7795af8adcecffa8aef004b754a353c62d8e"), + nonce: &hex!("96618b357c41f41a2c48343b"), + plaintext: &hex!("36108edad5de3bfb0258df7709fbbb1a157c36321f8de72eb8320e9aa1794933"), + aad: b"", + ciphertext: &hex!("b2093a4fc8ff0daefc1c786b6b04324a80d77941a88e0a7a6ef0a62beb8ed283"), + tag: &hex!("e55ea0456af9cdff2cad4eebbf00da1b"), + }, + TestVector { + key: &hex!("6fb2d130bbad1924cab37d071553b12169e978a805bf74cb4c23d5ccd393d7bb"), + nonce: &hex!("76826741225a391fdce4d3b6"), + plaintext: &hex!("c49b80080e2efeb5724b9e5b53ba0c302e97bd16f1a6bbec01e1ca6c35a42a3c"), + aad: b"", + ciphertext: &hex!("62fbe5466a7ff83ff719f4927e00e9319e1bb7e835c5d6b4e9d4bc5a8d6e2beb"), + tag: &hex!("df72da7a66cb5257836f3c19ecadcd55"), + }, + TestVector { + key: &hex!("402e8113970257d9437807620098370243536a105cca4fbc81a1ff2d48874f48"), + nonce: &hex!("c924c19c4d14905a2bdf63bf"), + plaintext: &hex!("917b9585f65e59bf4d242bb0802966045dd29fbc66911277baecdfcc818c3c35"), + aad: b"", + ciphertext: &hex!("5b6594edcddbb338f4e813687f4f23a75a64c21e3cf5d2e7c9af0f7e3ee3e616"), + tag: &hex!("f1cccd93a4411247c8b6830addd72c6f"), + }, + TestVector { + key: &hex!("2aac499cb0eb72b4598acff4330df6cd764978997d5ace51da88e0c18671bde9"), + nonce: &hex!("fd16cdc39d7f0b92e1f95c97"), + plaintext: &hex!("e7b75bfa35c9a004d0b68265623a9b06b6d4493ea0ad4f6c777ba5add8c7bbbb"), + aad: b"", + ciphertext: &hex!("c3d0a0f7ce9720c95aac86151aad634884ddfa62df58f18394537f6504d9a8aa"), + tag: &hex!("76749a1ec70236b267fc340d5fbb6da3"), + }, + TestVector { + key: &hex!("a2a502d6bb19089351e228d5cbff203e54fc31f2772253df08557875d964c231"), + nonce: &hex!("0ebb5af4a462a1e6ded7164a"), + plaintext: &hex!("bbecc89450c07b8de631155e5d7cc7a9d26376bb57d7458d49b4c36e140490f3"), + aad: b"", + ciphertext: &hex!("fd09c950890441fcaaa8809a8998079abb88741c6672abae12383ffd724f8299"), + tag: &hex!("22fac246058bf142c5f26812a635b480"), + }, + TestVector { + key: &hex!("ce2d289e20c76f75c135c8118d5cbf5f2828026f0b639588a3eb4ad752cea548"), + nonce: &hex!("bb08526dd8bd1c3bb58d0999"), + plaintext: &hex!("56f5db1e796a0c4633a8d570182c39e3c8451e7ba485b98d38a2c926a1b92a46"), + aad: b"", + ciphertext: &hex!("a41005df18734d4f3f99f19ef8fc43b16ef431207cb0466341bf164b58e23533"), + tag: &hex!("a45c2a1ef6aec75cc22d71807dab3c27"), + }, + TestVector { + key: &hex!("66e418d0ec97b420b1b5365d1b6d5cd7c5ac1a5653739120d4aec3c94c93c287"), + nonce: &hex!("989f94480266e3652488184e"), + plaintext: &hex!("e5052b19d7f827fd60f45c8925809fd2217ec4d16aa89bbf95c86a1c1e42bd36"), + aad: b"", + ciphertext: &hex!("f341630574ee92942cf4c5ecd3721ae74b32c557379dfe8351bd1c6661a240da"), + tag: &hex!("e85fb655ef432e19580e0426dd405a3e"), + }, + TestVector { + key: &hex!("37ccdba1d929d6436c16bba5b5ff34deec88ed7df3d15d0f4ddf80c0c731ee1f"), + nonce: &hex!("5c1b21c8998ed6299006d3f9"), + plaintext: &hex!("ad4260e3cdc76bcc10c7b2c06b80b3be948258e5ef20c508a81f51e96a518388"), + aad: &hex!("22ed235946235a85a45bc5fad7140bfa"), + ciphertext: &hex!("3b335f8b08d33ccdcad228a74700f1007542a4d1e7fc1ebe3f447fe71af29816"), + tag: &hex!("1fbf49cc46f458bf6e88f6370975e6d4"), + }, + TestVector { + key: &hex!("2c11470e6f136bec73351619288f819fb2bbba451857aadfb78384074612778a"), + nonce: &hex!("4e6cc2bcc15a46d51e88958d"), + plaintext: &hex!("3b3186a02475f536d80d8bd326ecc8b33dd04f66f8ba1d20917952410b05c2ed"), + aad: &hex!("05d29369922fdac1a7b37f07953fe175"), + ciphertext: &hex!("6380945a08977e87b294b9e412a26aebeeb8960c512439bac36636763cd91c0c"), + tag: &hex!("1029a3c4be1d90123c1b404513efde53"), + }, + TestVector { + key: &hex!("df25ea377c784d743846555a10cfaa044936535649e94da21811bad9cea957b5"), + nonce: &hex!("35f5f8e950c1f57ad3dfb1fa"), + plaintext: &hex!("98941a807ac8f16eef0b3d3c7bbdfd55d01736c5b3360d92b4358a5a8919380b"), + aad: &hex!("28eb4677110ccb6edc8d2013dc8f46ec"), + ciphertext: &hex!("24a07532e981aaf3106eab8dfbb2d2078342e2eaee027e148f06aca68f6a1c50"), + tag: &hex!("131373ed4a0e3f584ae978d42daa6f3a"), + }, + TestVector { + key: &hex!("106168ea651f22c54196a06f1a10bcf4e620d93e4dc0824d798f44f9219c6177"), + nonce: &hex!("4064dcbd631cf20b05ae22de"), + plaintext: &hex!("b0d3da2b96b8889c92e445abbea4c6d0d5d44d7fbcc7dade4c92f6bcddbf06e1"), + aad: &hex!("a36e2fb9cd96a8ca9ae2b193aa498efd"), + ciphertext: &hex!("f55a6d8a6965ea451637bec7548cfb1ffe59fc0ce6ea6a937cb5dd32b3d45d5f"), + tag: &hex!("8d1bf2715041f817f11631fc9910c629"), + }, + TestVector { + key: &hex!("272d1649a3dd804de0962d3e07064a7054c00a6234ab1b0cdcf685ab394837e5"), + nonce: &hex!("955b5897f6b9806bbec5c33e"), + plaintext: &hex!("36e57c29c08c51ad7fa91c0416f976cfd011780eb44cc5abd34c7b431b093b8d"), + aad: &hex!("33e618ecbbe5eb0566df21c3c34b7e25"), + ciphertext: &hex!("cd6aeb345081dc0bb2c8b4d19b280658fb87c0f2bd0f4c9da694dc1feeb32f4e"), + tag: &hex!("dd37eac6bd6a4d3618241738779735d7"), + }, + TestVector { + key: &hex!("3dab6a51bb7af334dd4b79a7d139550c88f0778d43c21fc4ad33f983a13515cb"), + nonce: &hex!("362eaa67cab3d1ed48e9f388"), + plaintext: &hex!("3eb7f5f0a4ca9aa7000497602c6124433a60a8fcd91b20175b4ee87e6b10a2d7"), + aad: &hex!("52852150786e6547a2618e15c77110b6"), + ciphertext: &hex!("cc3316041b88733839249b756ffa00bbec6211942f604f26c4a35ed32e6eeaff"), + tag: &hex!("5936c5500240d50c0da0fcdc248f176e"), + }, + TestVector { + key: &hex!("0ea606521b935d5b4b66df89fb372d35c4d6d2c03767367e38de0d4c27761d56"), + nonce: &hex!("0d3168318a4f76392699640b"), + plaintext: &hex!("f450b36d6c49411897bce39001d73ff01b5e8566179e36dacac7064cab5c6270"), + aad: &hex!("3bd8849070cf034c4298f40f33b0b839"), + ciphertext: &hex!("3b15fad18726c4eaa70502b3f3b32c5092d1d92835e6460665fc50dda953a191"), + tag: &hex!("11fd3fddf61e010c17fbedd4bd5fb012"), + }, + TestVector { + key: &hex!("c8c4f9e0bd289ef1bd16104a8074fb073dd9035ab937ab076fb5801e2295aa2f"), + nonce: &hex!("be699d9d98ec1f724da8bd0f"), + plaintext: &hex!("49fe9407a719d41e658587809cfed7a5b49941c2d6378f3c0afe612f54f058a1"), + aad: &hex!("a985c7489732038c3190cb52be23737c"), + ciphertext: &hex!("17a9aaa6a3c68ba1f6cb26fdd6536c207e3c9ce58f43e4ecfd38d3387a798a0f"), + tag: &hex!("d832cb4814142562fedfe45b36126cb8"), + }, + TestVector { + key: &hex!("52d0f20b0ca7a6f9e5c5b8549d5910f1b5b344fc6852392f983558e3c593be24"), + nonce: &hex!("d5c618a940a5a5d9cc813f27"), + plaintext: &hex!("a9fed8a29355685321f978e59c40135309306cd41b25349fe671dc7990951c68"), + aad: &hex!("61823f7e39ed76143ca7249d149bdf57"), + ciphertext: &hex!("509c540e558d0bf0a3b776cddfbfddc15486748a7f9952b17c1cbd6869c263f4"), + tag: &hex!("42e35ee3f7119f87fb52b5d75b8ab8ec"), + }, + TestVector { + key: &hex!("5d291a8f1a6433a41076702d9d8a8c196e464550ed900ce8c2a36f4d10483954"), + nonce: &hex!("c4ba743ee692e5d00b5ae2c6"), + plaintext: &hex!("605d519b26182458fea68dddd86033390fc545f843ae817850a2a4574add015d"), + aad: &hex!("878fa6720ab30e0287f6903acd2dca19"), + ciphertext: &hex!("1c2f153f2374d3945cca9757dc18d9a15a93276526285a6e316ee32a72092c34"), + tag: &hex!("e7905e856c88c6ece4bb47781becf923"), + }, + TestVector { + key: &hex!("09e2724d4017cd57e967000e4da2cd5c5c18ccfb06c33b7ce62a7641e4bb0b73"), + nonce: &hex!("9ea18b420a10177289ab370b"), + plaintext: &hex!("6f5dfa86d5df4febd752265c56390049e7cda60c2644c84ab413932faad15b15"), + aad: &hex!("a8e77939423d5894d307fd60278d162a"), + ciphertext: &hex!("35e37a9b913eb58b72262e92d7584d44bf9a8442f1b2f3da3a5d05ec6a2a31e2"), + tag: &hex!("1a95023b1a4a3e885520ec79e1a3aef9"), + }, + TestVector { + key: &hex!("8544a9f4f6c0efdff3da90cfa3ee53fbe1f8de159d29537c803e1651da153718"), + nonce: &hex!("be406029a1d0c25d09af94cf"), + plaintext: &hex!("7e88a65646ed138b7c749366d16e41dbafd9987ad2373bb9d0b6ce0c1a4d6661"), + aad: &hex!("599dbb73897d045a1bd87385e60323a2"), + ciphertext: &hex!("38ffbf9ffff8d6a92090584e6dace1c6a47d3d5709a25e470557d5c8f5dd1851"), + tag: &hex!("d5b2e83c47df404de9a7cd95d3cbe7ab"), + }, + TestVector { + key: &hex!("35b9d2a5db3b06e7720cec794dae615029a491c417f235498e0496cd8183d1bf"), + nonce: &hex!("b382987916e19752dd9ecc0c"), + plaintext: &hex!("76b290496901c5824ad167433dbb6d6b5856d41913ee97ec81e70cf6a170e35c"), + aad: &hex!("e0aa3a1f1df601366c59a390f4f06c3b"), + ciphertext: &hex!("78347400d6799e77e11e76c0ecfd311becf31f74f14b3a71e6d526ce57015c8b"), + tag: &hex!("bf8dec2feac7cfe9f330bdfc92737b33"), + }, + TestVector { + key: &hex!("d707eab3c167b73efeb08c50e12b1569a275487ea136f52736c0f3ce66b69fa3"), + nonce: &hex!("11116f34182e52428642e747"), + plaintext: &hex!("a0c4818362035b16b50de445d558ea5cf8844bf5c84b96232999a2279806cc45"), + aad: &hex!("ae9f90331800c358716c92667f79f748"), + ciphertext: &hex!("91c77404b20028ef0fd4dd7f8b65b6594af94a1e7fc79cfbdb108265354fc71b"), + tag: &hex!("6c3410d4b915dbad745715202c04e9a4"), + }, + TestVector { + key: &hex!("405d13ee48d3b9fc26bcfca776b2af6c745d8fc34171622f8c6c4be5a54b8b65"), + nonce: &hex!("add1524abb1b846f0f6577da"), + plaintext: &hex!("e06475990d6e3990266de1bd025c3b1910c0736c81050885f2bfc13ec78e9d96"), + aad: &hex!("0b1c4c3ba877bca5846b2c1f2b0e2105"), + ciphertext: &hex!("6399f7e6d6c680fc41bac8bee3836b9a4241403d5a19e4919f396ce37b238d38"), + tag: &hex!("e754f400d76c76e03c63ea88cf64ccba"), + }, + TestVector { + key: &hex!("5853c020946b35f2c58ec427152b840420c40029636adcbb027471378cfdde0f"), + nonce: &hex!("eec313dd07cc1b3e6b068a47"), + plaintext: &hex!("ce7458e56aef9061cb0c42ec2315565e6168f5a6249ffd31610b6d17ab64935e"), + aad: &hex!("1389b522c24a774181700553f0246bbabdd38d6f"), + ciphertext: &hex!("eadc3b8766a77ded1a58cb727eca2a9790496c298654cda78febf0da16b6903b"), + tag: &hex!("3d49a5b32fde7eafcce90079217ffb57"), + }, + TestVector { + key: &hex!("5019ac0617fea10517a2a2714e6cd369c681be340c2a24611306edcd9d5c3928"), + nonce: &hex!("fd1fa6b5cab9aa8d56418abb"), + plaintext: &hex!("4349221f6647a906a47e64b5a7a1deb2f7caf5c3fef16f0b968d625bca363dca"), + aad: &hex!("953bcbd731a139c5de3a2b75e9ffa4f48018266a"), + ciphertext: &hex!("dbce650508dab5f499767651ee734692f7b157341977692d2ca879799e8f54aa"), + tag: &hex!("20239e97e2db4985f07e271ba545bbbf"), + }, + TestVector { + key: &hex!("c8cee90a8b9ad6094d469e5d1edc30d667608e89b26200cac77efd7e52af36fd"), + nonce: &hex!("5a1aa9c8e635281ee1fb9df7"), + plaintext: &hex!("728d9221891bd75c8e60b7dd6f53edcfd1ab1cebc63a6ce54be220b5b362233b"), + aad: &hex!("0538b3b64da72aac591bc59991a140eff206b3f7"), + ciphertext: &hex!("b753eb6b87f0c8778c3ea3a74fba3b31ced6d2da94d43d482ab0431806a80d75"), + tag: &hex!("b21d29cf6fd04571ffcaf317d384df11"), + }, + TestVector { + key: &hex!("b4b77710f86ffd463fc14bb9eaa4424b2b3a581778e5511a094a08fb204cab59"), + nonce: &hex!("3e4b12bf55633bf48d104620"), + plaintext: &hex!("6f44a8df11dce27df075ea10ddeb7566ca6c988a334cf56e8540f71166d7c0d1"), + aad: &hex!("3e3b4c9369266266098326217b5677a40297cb87"), + ciphertext: &hex!("31f82f5cb1cd5c4b4819b61aa9377abebe8fca76978b1199178462c7c1c4e2b2"), + tag: &hex!("1b3a535768e8480d75ec91b2e7b55efd"), + }, + TestVector { + key: &hex!("0a8fb75498a139223c763d52bbe3d42f813de370fa36b81edc4553d4219d2d5d"), + nonce: &hex!("7d6cb675fded3efef908a11a"), + plaintext: &hex!("81b69ca354de3b04d76ee62334cb981e55f0210f1174d391655d0f6712921a0e"), + aad: &hex!("2314ad86b248f1ed2878e7c562b533bf2dda5a29"), + ciphertext: &hex!("6a23d30737f4a72b1e07ba23d17fde43a4498e2e60d3e1b0c8e6ea26a2bb331a"), + tag: &hex!("7fcac442fb657910c62a74b1d0638902"), + }, + TestVector { + key: &hex!("a84315058849690c2b88062aef81134d338526baa7090e865fcaad94bbf51ca5"), + nonce: &hex!("a487cfa701447b495aab41e0"), + plaintext: &hex!("18074e14dc0a14d4439f1d710927ed8c200154c8492f77f10f653e0bf6070ca6"), + aad: &hex!("7c4416b0cf13ac76bec6687a6840dc703e91bb86"), + ciphertext: &hex!("80f40b7e335d40fc5859e87f385e14798a253818e8ad73b1799c1419638246a4"), + tag: &hex!("b4c7c76d8863e784eb6029cd160ef6de"), + }, + TestVector { + key: &hex!("82833bcaaec56f6abbb3378f7d65daf6e6f6f2a0d1e858c7219f53a7840f4e00"), + nonce: &hex!("4bc9b028a00be8feb5232978"), + plaintext: &hex!("d9b2383123a27a93bce85add8392b938093b40e82f182e484bf4f84fa3bfb3f0"), + aad: &hex!("76fc8ed57154cd8a9b3d02c87061edd2a8157811"), + ciphertext: &hex!("383efe971438cd2b2cbb399d74a3fb3eedd394f1862addc58e9fdd4c421402d2"), + tag: &hex!("fd803c4fa917f7ff649a6aac013a96b1"), + }, + TestVector { + key: &hex!("ee4634c49c5672c660968a42862698f6c1b2c7b79efd1605c24af8ff9ff8366c"), + nonce: &hex!("877912b2f35888d2810612cc"), + plaintext: &hex!("9512a5268a0cb3fbd916ddb820dce77f1e0dbb52c8ffc7a74be077119e9245e4"), + aad: &hex!("93bd669db4f1354ef6c8addb0cf729e46d5c3846"), + ciphertext: &hex!("69af0ac954e0d69043851d89f1538ebcb42769857eba27dbe4ad4fd60fd75537"), + tag: &hex!("3ee443873e2f7f7ea601fe3d7e5211e2"), + }, + TestVector { + key: &hex!("442f4bbc468433411e49486a15c5eed577f5007380ff126d9974f3bd3fe4e3c4"), + nonce: &hex!("1e7133aaa8af826dc646ec62"), + plaintext: &hex!("7f8069e5c356ece135d98bb563c8b411ea90ea3b673dfd92e1ba9c459efae61f"), + aad: &hex!("577662f611446b5b31814930029edb949a30dcb9"), + ciphertext: &hex!("b962952750eb2bce313e1a85a72e3c9cc2ea7e58c353ea37df2c9f0723995ca7"), + tag: &hex!("e633fe9f10cedf0f0d02aa2ddcf47d86"), + }, + TestVector { + key: &hex!("3a29aec009f44fdd2b1bc07cb7836f29d8589774bd0d74089a68d9e67827d6d8"), + nonce: &hex!("a42c5fb61573c72688ac31d8"), + plaintext: &hex!("d36eb81506c0a0e4ebcac9b4b1acebb38b94b8f2ce3d6f85a8f705fa40cb987a"), + aad: &hex!("2ee2582d544e1663f1d7a0b5033bcb0fce13b3e5"), + ciphertext: &hex!("179ef449daaacb961f88c39b4457d6638f304762bd695924ca9ebd01a3e99b9f"), + tag: &hex!("1fee176c7a5d214748e1d47b77f4bcc8"), + }, + TestVector { + key: &hex!("ed47660054294f3c913c97b869317cbddc395d757bef7d29b8ccbdd2c54e99d3"), + nonce: &hex!("770a00642c67eff93c9f1f56"), + plaintext: &hex!("034193397cbd0eb414459273a88808db2d0711e46f80d7883212c443d9e31b54"), + aad: &hex!("06210fca2018d2357256c09197730e9777caea96"), + ciphertext: &hex!("6a250ebd3390229d46b691142743dba1c432c0feaa0f0dd19d0ce4e6a8918d80"), + tag: &hex!("a5f6e975592b472907c34b93bfc69dde"), + }, + TestVector { + key: &hex!("9539844493362dc3f913308f7e12a2a0e02afdbd8869877b30ce0397fb0349dc"), + nonce: &hex!("eadda3132079195a54fde2c1"), + plaintext: &hex!("62349a0b1e40a9f31eadf27073682da15f0a05cf4566ee718b28325f7d8eaba0"), + aad: &hex!("0ae4a90cb292c4e519b525755af6c720b3145a1e"), + ciphertext: &hex!("ad6c9521bf78d1d95673edd150f2b8dd28f10625d67fa25f1fb42d132ba7fcfa"), + tag: &hex!("916242a9cb80dffcb6d3ae05c278819a"), + }, + TestVector { + key: &hex!("3b4eb08d27ae0b77605ae628a1b54a5402026550679fab0a20752bee510d3d92"), + nonce: &hex!("28a20c40f49a00493da3488a"), + plaintext: &hex!("c8a47edcf84872f53f96ef41ce05ca37cbc3854b556d6e606f0a8a32d0861907"), + aad: &hex!("0591390e2d14ebe62aeb1741c26448ce55b28cab"), + ciphertext: &hex!("a3e8cbf84df8529838f79315c7f1a0b7bb3ad4c4d036ec317b1810b274ee3080"), + tag: &hex!("0a8f66daeb7f0a88756909c4e93fcd36"), + }, + TestVector { + key: &hex!("0cccea8f1f6ce141690e246cf4cb9f35b66baf6e6986b8e0b4cfdd13fcdbc8c3"), + nonce: &hex!("929f07be5aa7bae7607bae3c"), + plaintext: &hex!("9fa5214c599523c695d37937b02f78837f6406960b2a03bf9a6db34bd35e3dc7"), + aad: &hex!("b851e610be70a994808b34ca73f45f1ea973de65"), + ciphertext: &hex!("917ecc8b00b53f7fb0732d66848a106e91f60acf2dcf180832a74d5993c658da"), + tag: &hex!("2959e20746bbb6ab66dfd29b9477799a"), + }, + TestVector { + key: &hex!("ecbfaef2345b34f31fbf6d68efb385e5833df8b6e6ae621ede02baf9735d2dba"), + nonce: &hex!("50c3527b1a35ccb318b446de"), + plaintext: &hex!("634f6dd60783d1f952353fd1d359b9ee4f4afa53cc13e81c5adfe24b46baf08f"), + aad: &hex!("f8981548bde6ee6c1745f947de191bf29997fadf"), + ciphertext: &hex!("705e5f67ab889ba238118e3fd9b90b68be801995ae307378d93b50977cf90588"), + tag: &hex!("12d14468ac18cc9936bd565f8ad42d0d"), + }, + TestVector { + key: &hex!("dc776f0156c15d032623854b625c61868e5db84b7b6f9fbd3672f12f0025e0f6"), + nonce: &hex!("67130951c4a57f6ae7f13241"), + plaintext: &hex!("9378a727a5119595ad631b12a5a6bc8a91756ef09c8d6eaa2b718fe86876da20"), + aad: &hex!("fd0920faeb7b212932280a009bac969145e5c316cf3922622c3705c3457c4e9f124b2076994323fbcfb523f8ed16d241"), + ciphertext: &hex!("6d958c20870d401a3c1f7a0ac092c97774d451c09f7aae992a8841ff0ab9d60d"), + tag: &hex!("b876831b4ecd7242963b040aa45c4114"), + }, + TestVector { + key: &hex!("07b3b8735d67a05632c557076ac41293f52540bac0521573e8c0414ec36f7220"), + nonce: &hex!("0046420eee8d56de35e2f7d5"), + plaintext: &hex!("4835d489828325a0cb38a59fc29cfeedccae25f2e9c399281d9b7641fb609765"), + aad: &hex!("d51cedf9a30e476de37c90b2f60882193630c7497a921ab01590a26bce8cb247e3b5590e7b07b955956ca89c7a041988"), + ciphertext: &hex!("46eb31cd98b6cc3ecafe1cd1fc2d45fa693667cbd3a7d2c5f8c10296827ea83c"), + tag: &hex!("36cd4e76dd0679887477bfb96cf1c5f6"), + }, + TestVector { + key: &hex!("0219f14b9ca6506c1388177c4ae6ee64ad2ac0256ebbf8c219b40df6e8571d70"), + nonce: &hex!("3420a87c4b9b23ba81eb221e"), + plaintext: &hex!("348f7a4ca944f252e4562c66dacf01fb10d70a3c8f5b280a2829567a2a94e47e"), + aad: &hex!("54dc2277b8d1aae660ffcc326e2c5d9e16b8ca17288601aacd02b3eea8bc5cc60718639aa189506b7b333b87da86e940"), + ciphertext: &hex!("58c92119bfb6ad53e387cac6728ce73b82e18f6e5bfbfca5f5acc370cd8c76a4"), + tag: &hex!("e7f9e3e3dae6d0a3470d8f597291180c"), + }, + TestVector { + key: &hex!("87440ee7f6febf3e14ef0a917a87c5d61260fefc979eeaeac0a64662c98cb4f7"), + nonce: &hex!("7c48bc75e58f21cc9989d691"), + plaintext: &hex!("f8e40a6a985f424898a7996307a077c487406c5312eefe055ea5b17a4b22087b"), + aad: &hex!("e0c66e5db1c7665a015ba7e21e08ff3de5b4a5fcd5d35e41db7e97ccd0c3df657ae803c3529d375420ad75ac9621cea0"), + ciphertext: &hex!("5a118fc3dbdaf6bc9490d372b7623af76da7841bf9820a9c6624a15eff6a69c2"), + tag: &hex!("0ddc2ae087d9b8ca2249ea5aa3dbd4c7"), + }, + TestVector { + key: &hex!("b12425796f63bf5435740f9039fa66367fc7702d675c61b2dec4435feeea07f8"), + nonce: &hex!("f26727053e6d67c2d2bf1e69"), + plaintext: &hex!("9df079d98a6e4dbe277a8545f4f6c19fe130f4a84bdd6b760a049fba21d4e99a"), + aad: &hex!("e50fca2e5a81ae56ca07f34c4b5da140d368cceab08494f5e28f746cbfefdc285b79b33cf4969fe618b77ab7baafe271"), + ciphertext: &hex!("845f00202e2e894516d8f4a4021430e531967098c9a94024c7113c9a1b91c8cd"), + tag: &hex!("3566c75967ae00198e39ebe9f0ac697f"), + }, + TestVector { + key: &hex!("674dfb625b8b0ce1dadbbbcbf7e151c5b2cecf0a1bc4e07f4734f3a6792350cd"), + nonce: &hex!("99e7b76e6686449616ad36c7"), + plaintext: &hex!("0a744a72e536a0484db47091609228d803bcfa9a8daf579e3039e3645f7688e2"), + aad: &hex!("2ab1573e5a94ca2997590840bd9c62e6add55e4d3eac12c895d2ec637791caa41d46ed91e6064db627e1fbef71d31d01"), + ciphertext: &hex!("e550ee77069709f5199be3c618f2a4178e4d719ab73df41cbfe32c52777138ff"), + tag: &hex!("134ac3fa8bd4af7ee836f4a3421d9e99"), + }, + TestVector { + key: &hex!("10c1de5f741560dae5be23e15649f0114db52949560bb6cdf2d4883247392ee1"), + nonce: &hex!("7cf73c1472cd60d8d35fde51"), + plaintext: &hex!("05becd366aebaa2e609f507dd2dd4433b2aba0634b0eb9a5bf7ded4cc8fbed72"), + aad: &hex!("d3fa8b6f607a20a18dd7eac85eabef69d4fb5a074d8e7d1bf15d07732ed80e020163b475f209c4b0cbfa00d65d1e82ef"), + ciphertext: &hex!("280f0c306e1a3aab8ff9ab3e4a9adc2e9ae4e4e1a06f190d11b3b4dc4280e4f3"), + tag: &hex!("3bc8be845bf5ff844c07337c2cfd5f80"), + }, + TestVector { + key: &hex!("e8d6ab5e514645dd7e051b028f5bfe624c72f44f30279577365aea65d4a8a819"), + nonce: &hex!("30b0d654ee5b79c2cfb24100"), + plaintext: &hex!("19be7e0feedd402bf4b05995a38e5f423c033de016e3ae83ea8c3c1cba658e1e"), + aad: &hex!("082e534bf860d0061ec2dad34d6b0db8cba1c651f2c705356ff271e47365b0b18f8ddb3a3c2269b437fb0703c9ad367a"), + ciphertext: &hex!("8573800c737d2480b2885ce714ac6a15f23287b1d12949a3d76effbe82b593bd"), + tag: &hex!("50110884292151f51213ccb2fe934d88"), + }, + TestVector { + key: &hex!("2d1eaf5e62ca80fd1515a811c0e4c045aba8c769df03d57f7493eb623ed8b941"), + nonce: &hex!("abf190b05df2e6556cb34b47"), + plaintext: &hex!("9c7cd522ed5c0af3e57da08d2653ef77eb973734f360572bbcb15a2a6cbd60b9"), + aad: &hex!("75ab9bd39c24e498a54d85a8b76a4126dc1879f2a30270a42609763e045a4021785b6134f283fd81c195c3188e78752d"), + ciphertext: &hex!("5fdfdaccb105e5408c375af8ca63a67afaba7ccbcd591acca9a86d92f92fd0f7"), + tag: &hex!("49940b7610618b3a5cb3912339e06b3c"), + }, + TestVector { + key: &hex!("b6020677e098c59e19eacf26732473d843aafd6bf999c707bb08ab896406918d"), + nonce: &hex!("807167ef2b84b32d1df4a94c"), + plaintext: &hex!("3199d6b95d133ba5b7eadc420080a0b249c84f4960bd369d6bf9e313627cf670"), + aad: &hex!("06225d410ada3e04157da7e5481d7d9f2285845824aac0c0e033244ed4c1b19615354c224ba8b7093c5651d10ef952fe"), + ciphertext: &hex!("4618adbfa5ea4ee260e310140b385232b7c3ad46887aa2107f7dafffd85cda22"), + tag: &hex!("2d76307bf55826dfeb58a171b6fa80e4"), + }, + TestVector { + key: &hex!("f75456c4918d0bea72f546a9a1e2db0b6ab9bcd9782b5eb1c2700e729921d666"), + nonce: &hex!("c75b83134e7b9188e5800ffe"), + plaintext: &hex!("f9a23abbd0f2b367ce16c2a0613cd293ac7e66cbe020eaeb5deb09d5031fd992"), + aad: &hex!("5ef46c9eb5865cab2c8a35f9c4c434614a6c9f1b5c479739f7434d3326cff1e70b0d2877c084a71c7a9d33d258d304bb"), + ciphertext: &hex!("56e4efe6c0944153b65ed4909845219842b9b88f54d8d8394051132afb95d391"), + tag: &hex!("255e2c8c43f8979c440c3581bff6cf65"), + }, + TestVector { + key: &hex!("9831c5c12e53e8a961642e93ddb2e13a38506acd0cf422e6ad9fbaeabce7b3f2"), + nonce: &hex!("bff29de3d6869e5fa75b96f9"), + plaintext: &hex!("b1edbed58ed34e99f718db0608e54dd31883baec1c8a0799c4ff8a5dad468de4"), + aad: &hex!("67ebeecb74cc81fdfee8065f8b1c1f5012bf788953bec9525e896611b827084a8e6baa0ce40ee70bc699b152bc6ed903"), + ciphertext: &hex!("13845db7e33bab1f5766a7fadfb942748e779753d97f143e645ccfcbd7c23b23"), + tag: &hex!("10dbe8a3e1901c8b88b0ab1441664d32"), + }, + TestVector { + key: &hex!("a02c2d4a43f0f7f1db57c07f13f07f588edfe069a9d83c9b76e9511946c4fc48"), + nonce: &hex!("84677438592dcaf683d08a67"), + plaintext: &hex!("ad5a884dad20ffa88794c4fca39f2ca01c6f67657ab38e5cf86ac5597318ef07"), + aad: &hex!("d5dea0cd6080af49a1c6b4d69ace674a622f84f9f190b2db8a22e084a66500b52ff20a8d04f62a7aeaedb67e2258598c"), + ciphertext: &hex!("83da16ae07ee0e885484c1330a6255a6e7ac22915c63cbefaabc6f9f059dd69d"), + tag: &hex!("42c4a270705493d85ad7bbcfda86dffb"), + }, + TestVector { + key: &hex!("feba412b641bc762bfa79ef17c3ea16e5630605470db096e36ffd33813641ace"), + nonce: &hex!("e3633f21e7c63a459d5d1670"), + plaintext: &hex!("9326572bd33551322ca42fcfb7cef8be41d78725f392c34907ecd1fe5572bff1"), + aad: &hex!("b7ee0233863b0e185b2f46181eb5fc0718832e1e76e7d4115a4c1f7e998c41319ccef44f5db89e8c5f077bd553d7bf42"), + ciphertext: &hex!("5019ea98cc9dc9368432c6d58f9e144f55446e763c0a8b4d8a6ce26f3dd95260"), + tag: &hex!("1010beb9cd6e9b611280a5395f08bca9"), + }, + TestVector { + key: &hex!("21bd5691f7af1ce765f099e3c5c09786936982834efd81dd5527c7c322f90e83"), + nonce: &hex!("36a59e523df04bc7feb74944"), + plaintext: &hex!("77e539dfdab4cfb9309a75c2ee9f9e9aa1b4651568b05390d73da19f12ccbe78"), + aad: &hex!("48aef5872f67f524b54598781c3b28f9cbcf353066c3670370fca44e132761203100b5e6c7352a930f7e9cbf28a8e1ce"), + ciphertext: &hex!("c21483731f7fe1b8a17d6e133eda16db7d73ddd7e34b47eec2f99b3bbc9669aa"), + tag: &hex!("15f9265bc523298cefb20337f878b283"), + }, + TestVector { + key: &hex!("26bf255bee60ef0f653769e7034db95b8c791752754e575c761059e9ee8dcf78"), + nonce: &hex!("cecd97ab07ce57c1612744f5"), + plaintext: &hex!("96983917a036650763aca2b4e927d95ffc74339519ed40c4336dba91edfbf9ad"), + aad: &hex!("afebbe9f260f8c118e52b84d8880a34622675faef334cdb41be9385b7d059b79c0f8a432d25f8b71e781b177fce4d4c57ac5734543e85d7513f96382ff4b2d4b95b2f1fdbaf9e78bbd1db13a7dd26e8a4ac83a3e8ab42d1d545f"), + ciphertext: &hex!("e34b1540a769f7913331d66796e00bdc3ee0f258cf244eb7663375cc5ad6c658"), + tag: &hex!("3841f02beb7a7fca7e578922d0a2f80c"), + }, + TestVector { + key: &hex!("74ce3121c18bbff4756ad10d0f293bb1ea3f93490daad0249cd3b05e223c9747"), + nonce: &hex!("81107afb4c264f65ae0002b1"), + plaintext: &hex!("7a133385ead593c3907806bec12240943f00a8c3c1b0ac73b8b81af2d3192c6f"), + aad: &hex!("f00847f848d758494afd90b6c49375e0e76e26dcba284e9a608eae33b87ad2deac28ccf40d2db154bbe10dc0fd69b09c9b8920f0f74ea62dd68df275074e288e76a290336b3bf6b485c0159525c362092408f51167c8e59e218f"), + ciphertext: &hex!("64bd17f3e8f71a4844b970d4ebc119961812efb9015b818e8d88b906d5efbd76"), + tag: &hex!("46d0e42aa046237efee17eab6d9cfb75"), + }, + TestVector { + key: &hex!("4c669a1969c97d56da30a46236c15407e06aada686205eed3bd7796b02c97a4b"), + nonce: &hex!("0a07758d5ad44766e051da6c"), + plaintext: &hex!("cd59bb307be76f11304f69ac8b151e1628ac61dec81086e7f24fd5bd83df8856"), + aad: &hex!("0b8277114cbf7ee16c9bbda1ab40419a02e469ebb295883f0a833c3cb755ded44a3c410034a201f7d91b43519fbabb55b974834be5d5afc7aea7c84b44a14e8e16dd68a3e8cc79ad2bf76d0ceb33d58ddb6378b45681ceaa0f2f"), + ciphertext: &hex!("bc62ce0b23cf4aa8e16b4450c8ab8c629a53949f01e68b875ecc5c45ff6d3ab0"), + tag: &hex!("5ffeda728914031006f271c3d9986f2d"), + }, + TestVector { + key: &hex!("a23296632913051e438114deb782fb955b75acc35e86e7e9fdaf4e9025b87f12"), + nonce: &hex!("ad50db40f80f15214e43ffd7"), + plaintext: &hex!("b71116cc27b5a5844d9b51a4a720cb3f06d55d6aaeaeaf921236424db8617204"), + aad: &hex!("a6f96f5a89bfd8c8f34cd07045270d80e58ea62f1f0b10f2506a954f272af0bc71df96ad3fa8eed52c45e0b868091dc4f75d9e0eaf15a0a858a71bf7036c5607110cbfe47ad9b6d02e942fcfae88d4c792a1f824e60e3cf98a37"), + ciphertext: &hex!("8e9e4b0ac93ab8e73688d6b4723d8c5ef399ead72246c7aa7a0783a8bfe29936"), + tag: &hex!("b7dea91e4b357ce805edeea3f91392d2"), + }, + TestVector { + key: &hex!("4036a07bdd4e10eb545f3d9124c9f766d2d0c8c59fc0d5835ac55dcfaebfc3a1"), + nonce: &hex!("815828fbb964497cdadccaad"), + plaintext: &hex!("717f22faff8066182e46d32dbac7831ec24272871c45c7c12ca779f868e7739a"), + aad: &hex!("0bc0e3931388bcb091463bae2989a93bde103bc14fc5d39f9448ca90367e86336b188f73218b2b0ab72a9a564ad5ff32544c5afeacecadfa55d2fb66925a88299dbf58f425cf49e31f42ac4edace743fdf9680d20ec845afc278"), + ciphertext: &hex!("e8c3b0342964c7a71f084d44ba2f93742bccd9821b30087d11b53bbe8b085808"), + tag: &hex!("86ddd9c469849cb6b100c339ca62717d"), + }, + TestVector { + key: &hex!("714bc3ba3839ac6707863a40aa3db5a2eebcb38dc6ec6d22b083cef244fb09f7"), + nonce: &hex!("2cfe1c51d894e5ef2f5a2c3c"), + plaintext: &hex!("0cc4a18bbfea87de0ac3446c777be38ca843d16f93be2c12c790fda4de94c9bf"), + aad: &hex!("84e3d46af2ecb717a39024d62bbc24d119f5aff57569dfef94e7db71ad5aff864abacdc5f8554e18ed5129cfb3366d349c52b3d1a111b867e8772140749e7f33e2e64259968486e32f047d21120da73c77757c4595ccac1b5713"), + ciphertext: &hex!("0857c8fb93412fde69bad287b43deea36506d7ee061d6844d00a7e77418f702f"), + tag: &hex!("24a9e5290957074807d55ad705adaa89"), + }, + TestVector { + key: &hex!("2f93b5a37be1a43853bf1fd578061d0744e6bd89337cde20177d1e95a2b642c4"), + nonce: &hex!("52b6d91557ae15aa792ce4b7"), + plaintext: &hex!("0fcaa316a135d81052509dd85f688aed2e5fd4261e174f435cf1c4115aa6f354"), + aad: &hex!("992ba9efa287a5c3e5177bd4931af498982a1728b56b3d7c4b28476905e29f83326c4f3223a28844fc9b9d84d4f6cd859074aff647a35dde28e1ee889faab3bb9c09a4c3fbf2a16460d48a40dc53378d4673f4325e6aa3992a71"), + ciphertext: &hex!("f99774cef3c15af33cda3cb449cd335ffe4f27435edf83aff4a4f4c2d2df6647"), + tag: &hex!("c5e09b83b1c2cc81e48a1f7c62b7bb35"), + }, + TestVector { + key: &hex!("531ca845af7bf731c49c3136407322b1c0f6b32b8eaebf03744b2edc1202d096"), + nonce: &hex!("baf13b85202bbfc899fc73f7"), + plaintext: &hex!("d4e9783f537c738200e7ba7526605f359a98c9f10cafaa2f433c40f3e5081a36"), + aad: &hex!("e2ba9cf548b4f6fb206f224250d85af327fde8d08916686ae770203dc29c694f8902b02222fd287f28ce6091006368c3949bea2937ff0bdedb7dbbd013ccf0a15ee0af8c56fe211b7c311e182f27707f59e09492b3604e80c6c5"), + ciphertext: &hex!("642f544929202128a783b985d36f60964c7d78e1d41f5d1bfe27de3ae0180df3"), + tag: &hex!("e333528c59ee1909750ed72fd1309ee1"), + }, + TestVector { + key: &hex!("3add17568daa9d441aa7a89bf88fa4e6998a921d57e494a254080445bc9b6f35"), + nonce: &hex!("b290f4a52496380218c3dcf5"), + plaintext: &hex!("2c6908cb34215f89a3f3a3c892e8887f2efa496a15ab913fc7d34cc70c0dff79"), + aad: &hex!("0bc9cc13eb2890aa60515c2297a99f092f6e516236c0dec9f986ea98b8a180680f2c6c20bd4354c33433a4c6f6a25e632f90ebef3a383c3592268b483eebf5f5db006929e7987edbcac4755d3afd1cdf9b02954ebd4fef53d5f6"), + ciphertext: &hex!("2cf3beae94fd5e6a4126a8ec8a7166b0aacb8b8bbce45d6106b78d3456d05149"), + tag: &hex!("ce1509b1bd5c47a593702618b0d79f6c"), + }, + TestVector { + key: &hex!("1c1dcfd4c4cc4beb71d6e368f739d8e681dfe48fbae39728386c9dfc08825743"), + nonce: &hex!("0deceb69ce0dc776a3a71b4c"), + plaintext: &hex!("b12700258ace7b16e40f4e86886892837168b256a170937a3b89063a9a0d68f7"), + aad: &hex!("a3af2db672292431fa8ee1fa5b197593b13e58a68c4129401d0942474d5f4cbe62093aaa5453f6d355d2f4b6dc8abde58ce863d1be5f9ecf39730a49565b3b6882a0a641c0b5d156a4107309dd150fd1f1634ea4e5100b3d4f88"), + ciphertext: &hex!("3ea7f1c0d613323e095558ddde53247420fa0eef17997a1e9c5ba93d5f24c46f"), + tag: &hex!("70534a87c258905d35806f4439f6906e"), + }, + TestVector { + key: &hex!("f2724153aac9d50f350878d3c498bc3dd782d90cce5cce4ae14126c0e1fbb3cf"), + nonce: &hex!("1c07b61c5316659bad65cca9"), + plaintext: &hex!("067ccbd0206f1f05d2872210dc5717a0585e8195d72afd0c77da11b9b3710e44"), + aad: &hex!("e69db7fcd3b590a6d32052612034036d5c8bffa5e5e9b742ffe75a9fbba89dd576dec08154cf4e6d36f0fdd4419bdf50adc1974a80ea313421c926dffa87565b4bd0c1e84f2ff305af91877f830f145bb13dfa7efa5e3aa682e6"), + ciphertext: &hex!("9aba433eef383466a1291bd486c3ce5e0ed126010e0a77bf037c5eaed2c72460"), + tag: &hex!("f30a155e35400bb0540883e8e09b4afd"), + }, + TestVector { + key: &hex!("a2544eb2047c97cfcaf0ec1427c5df395472285233a93ffccda8fee660aced56"), + nonce: &hex!("a751bea3c769bb5db25ab109"), + plaintext: &hex!("b9514cc01a357605918f9cc19123dcc8db328c605ca0eb9d69d871afeea1dcfb"), + aad: &hex!("eb9e09884de1454d6aeb0d6c82375f2428992031ea6cabf6a29aa6a4de49a353e4ffae043dad18ae651b20b7bca13f5c327ca9f132014bfa86e716d4724e05a1ef675521a6607a536756e6a8c16bb885b64815f1eb5ec282ce8e"), + ciphertext: &hex!("cb442b17088f6ac5f24c7a04f0050559386f3a57131b92a54142c7a556fdb935"), + tag: &hex!("5f80c5c0cdf0c7890bfd1fbd58c33081"), + }, + TestVector { + key: &hex!("ceb057782efb1e85d805448af946a9b4d4128bf09a12473cce1e8ef8bfd2869d"), + nonce: &hex!("406f9730e9b1e421e428439b"), + plaintext: &hex!("0815723d5367b1328cac632fa26e23f2b814a1d59a2971d94d02ebd7ecf5c14a"), + aad: &hex!("0772ae00e1ca05d096cf533fd3de2818ac783edfca0eee7686a6290f3357481e883fb2f895b9a4f4004c56b8a1265242cfdf1fb4af7edc41ed78c5f4ffe9c4080d4a17318f9c56ecdb3a06f3c748535387d56a096943a76d46f6"), + ciphertext: &hex!("9d82355d8e460896201be15fd95fed48a8524666d987ab078550883034d0253c"), + tag: &hex!("a0bee8ac0e636d64d3b1eb33fd6f21d4"), + }, + TestVector { + key: &hex!("7dbdbdfe36d4936940ad6d6f76c67c2851a0477f0aa7d6797bfdf2b7878ef7e0"), + nonce: &hex!("bc672b224b4b6b91fc3fd697"), + plaintext: &hex!("dfea463d35f0fa20487b606d6ccfd422a5b707f16527b422bf1d68a77db67e9c"), + aad: &hex!("faacb84ec7cfadd731de2f7c0892d7e38cbfb782b48412331af0b3eab602a722cad1069dea0052beb5ca70e2ee476c340c6193bcc60f939aabe446bf3ce958fe11a2ffc90241f0a7e4e274f0c1441def795893895bd848bf0f0e"), + ciphertext: &hex!("0ddc2281b1fcb904864a43657bc72357cf73fc1f16520caad7cddde10f846bd9"), + tag: &hex!("9d96699450aa9707695e5de56597101b"), + }, + TestVector { + key: &hex!("187214df6e2d80ee8e9aae1fc569acd41589e952ddcbe8da018550d103767122"), + nonce: &hex!("56db334422b6c5e93460d013"), + plaintext: &hex!("53355283186719a9146c7305e3d1959a11ccf197570b855a43cbc7563a053c73"), + aad: &hex!("cbedb7ccfbf56dfd72e530bfe16b4f5aac48a90204bcb7a8cae1046010882cfc8b526e7562a7880914e61b60cbd605165242737d85eeed583c98cab3443874e5989ec9cde001adf7de9c9967de5178f75b8412b0c4d6fec5af72"), + ciphertext: &hex!("c2262585966bc9c23dc7cc1059d060211e86f3b3161d38b153635fbea4a28c05"), + tag: &hex!("a94297c584dfcd10ee5df19a2ee5c3d2"), + }, + TestVector { + key: &hex!("1fded32d5999de4a76e0f8082108823aef60417e1896cf4218a2fa90f632ec8a"), + nonce: &hex!("1f3afa4711e9474f32e70462"), + plaintext: &hex!("06b2c75853df9aeb17befd33cea81c630b0fc53667ff45199c629c8e15dce41e530aa792f796b8138eeab2e86c7b7bee1d40b0"), + aad: b"", + ciphertext: &hex!("91fbd061ddc5a7fcc9513fcdfdc9c3a7c5d4d64cedf6a9c24ab8a77c36eefbf1c5dc00bc50121b96456c8cd8b6ff1f8b3e480f"), + tag: &hex!("30096d340f3d5c42d82a6f475def23eb"), + }, + TestVector { + key: &hex!("b405ac89724f8b555bfee1eaa369cd854003e9fae415f28c5a199d4d6efc83d6"), + nonce: &hex!("cec71a13b14c4d9bd024ef29"), + plaintext: &hex!("ab4fd35bef66addfd2856b3881ff2c74fdc09c82abe339f49736d69b2bd0a71a6b4fe8fc53f50f8b7d6d6d6138ab442c7f653f"), + aad: b"", + ciphertext: &hex!("69a079bca9a6a26707bbfa7fd83d5d091edc88a7f7ff08bd8656d8f2c92144ff23400fcb5c370b596ad6711f386e18f2629e76"), + tag: &hex!("6d2b7861a3c59ba5a3e3a11c92bb2b14"), + }, + TestVector { + key: &hex!("fad40c82264dc9b8d9a42c10a234138344b0133a708d8899da934bfee2bdd6b8"), + nonce: &hex!("0dade2c95a9b85a8d2bc13ef"), + plaintext: &hex!("664ea95d511b2cfdb9e5fb87efdd41cbfb88f3ff47a7d2b8830967e39071a89b948754ffb0ed34c357ed6d4b4b2f8a76615c03"), + aad: b"", + ciphertext: &hex!("ea94dcbf52b22226dda91d9bfc96fb382730b213b66e30960b0d20d2417036cbaa9e359984eea947232526e175f49739095e69"), + tag: &hex!("5ca8905d469fffec6fba7435ebdffdaf"), + }, + TestVector { + key: &hex!("aa5fca688cc83283ecf39454679948f4d30aa8cb43db7cc4da4eff1669d6c52f"), + nonce: &hex!("4b2d7b699a5259f9b541fa49"), + plaintext: &hex!("c691f3b8f3917efb76825108c0e37dc33e7a8342764ce68a62a2dc1a5c940594961fcd5c0df05394a5c0fff66c254c6b26a549"), + aad: b"", + ciphertext: &hex!("2cd380ebd6b2cf1b80831cff3d6dc2b6770778ad0d0a91d03eb8553696800f84311d337302519d1036feaab8c8eb845882c5f0"), + tag: &hex!("5de4ef67bf8896fbe82c01dca041d590"), + }, + TestVector { + key: &hex!("1c7690d5d845fceabba227b11ca221f4d6d302233641016d9cd3a158c3e36017"), + nonce: &hex!("93bca8de6b11a4830c5f5f64"), + plaintext: &hex!("3c79a39878a605f3ac63a256f68c8a66369cc3cd7af680d19692b485a7ba58ce1d536707c55eda5b256c8b29bbf0b4cbeb4fc4"), + aad: b"", + ciphertext: &hex!("c9e48684df13afccdb1d9ceaa483759022e59c3111188c1eceb02eaf308035b0428db826de862d925a3c55af0b61fd8f09a74d"), + tag: &hex!("8f577e8730c19858cad8e0124f311dd9"), + }, + TestVector { + key: &hex!("dbdb5132f126e62ce5b74bf85a2ac33b276588a3fc91d1bb5c7405a1bf68418b"), + nonce: &hex!("64f9e16489995e1a99568118"), + plaintext: &hex!("b2740a3d5647aa5aaeb98a2e7bbf31edaea1ebacd63ad96b4e2688f1ff08af8ee4071bf26941c517d74523668ca1f9dfdbcaab"), + aad: b"", + ciphertext: &hex!("e5fec362d26a1286b7fd2ec0fa876017437c7bce242293ff03d72c2f321d9e39316a6aa7404a65ccd84890c2f527c1232b58d5"), + tag: &hex!("dfa591ee2372699758d2cc43bfcbd2ba"), + }, + TestVector { + key: &hex!("8433a85f16c7c921476c83d042cb713eb11a83fc0cffe31dde97907f060b4ee9"), + nonce: &hex!("55ffc85ffd1cdea8b8c48382"), + plaintext: &hex!("23bc3983ba5b3be91c8a6aa148a99995241ee9e82ce44e1184beb742affbe48f545c9a980480cf1fab758a46e4711ea9267466"), + aad: b"", + ciphertext: &hex!("2f4bdc7b8b8cec1863e3145871554778c43963b527f8413bb9779935c138a34d86d7c76a9e6af689902f316191e12f34126a42"), + tag: &hex!("7dc63156b12c9868e6b9a5843df2d79e"), + }, + TestVector { + key: &hex!("5d7bf55457929c65e4f2a97cbdcc9b432405b1352451ccc958bceebce557491d"), + nonce: &hex!("f45ae70c264ed6e1cc132978"), + plaintext: &hex!("ba5ac2a16d84b0df5a6e40f097d9d44bf21de1fcec06e4c7857463963e5c65c936d37d78867f253ce25690811bf39463e5702a"), + aad: b"", + ciphertext: &hex!("47c16f87ebf00ba3e50416b44b99976c2db579423c3a3420479c477cd5ef57621c9c0cee7520acb55e739cc5435bc8665a2a0c"), + tag: &hex!("456054ecb55cf7e75f9543def2c6e98c"), + }, + TestVector { + key: &hex!("595f259c55abe00ae07535ca5d9b09d6efb9f7e9abb64605c337acbd6b14fc7e"), + nonce: &hex!("92f258071d79af3e63672285"), + plaintext: &hex!("a6fee33eb110a2d769bbc52b0f36969c287874f665681477a25fc4c48015c541fbe2394133ba490a34ee2dd67b898177849a91"), + aad: b"", + ciphertext: &hex!("bbca4a9e09ae9690c0f6f8d405e53dccd666aa9c5fa13c8758bc30abe1ddd1bcce0d36a1eaaaaffef20cd3c5970b9673f8a65c"), + tag: &hex!("26ccecb9976fd6ac9c2c0f372c52c821"), + }, + TestVector { + key: &hex!("251227f72c481a7e064cbbaa5489bc85d740c1e6edea2282154507877ed56819"), + nonce: &hex!("db7193d9cd7aeced99062a1c"), + plaintext: &hex!("cccffd58fded7e589481da18beec51562481f4b28c2944819c37f7125d56dceca0ef0bb6f7d7eeb5b7a2bd6b551254e9edff3a"), + aad: b"", + ciphertext: &hex!("1cc08d75a03d32ee9a7ae88e0071406dbee1c306383cf41731f3c547f3377b92f7cc28b3c1066601f54753fbd689af5dbc5448"), + tag: &hex!("a0c7b7444229a8cfef24a31ee2de9961"), + }, + TestVector { + key: &hex!("f256504fc78fff7139c42ed1510edf9ac5de27da706401aa9c67fd982d435911"), + nonce: &hex!("8adcf2d678abcef9dd45e8f9"), + plaintext: &hex!("d1b6db2b2c81751170d9e1a39997539e3e926ca4a43298cdd3eb6fe8678b508cdb90a8a94171abe2673894405eda5977694d7a"), + aad: b"", + ciphertext: &hex!("76205d63b9c5144e5daa8ac7e51f19fa96e71a3106ab779b67a8358ab5d60ef77197706266e2c214138334a3ed66ceccb5a6cd"), + tag: &hex!("c1fe53cf85fbcbff932c6e1d026ea1d5"), + }, + TestVector { + key: &hex!("21d296335f58515a90537a6ca3a38536eba1f899a2927447a3be3f0add70bea5"), + nonce: &hex!("2be3ad164fcbcf8ee6708535"), + plaintext: &hex!("ad278650092883d348be63e991231ef857641e5efc0cab9bb28f360becc3c103d2794785024f187beaf9665b986380c92946a7"), + aad: b"", + ciphertext: &hex!("b852aeba704e9d89448ba180a0bfde9e975a21cc073d0c02701215872ed7469f00fe349294ba2d72bf3c7780b72c76101ba148"), + tag: &hex!("bdd6d708b45ae54cd8482e4c5480a3c1"), + }, + TestVector { + key: &hex!("d42380580e3491ddfbc0ec32424e3a281cbe71aa7505ff5ab8d24e64fbe47518"), + nonce: &hex!("fbed88de61d605a7137ffeb2"), + plaintext: &hex!("4887a6ef947888bf80e4c40d9769650506eb4f4a5fd241b42c9046e3a2cf119db002f89a9eba1d11b7a378be6b27d6f8fc86c9"), + aad: b"", + ciphertext: &hex!("87aa27f96187ce27e26caf71ba5ba4e37705fd86ca9291ea68d6c6f9030291cdbff58bff1e6741590b268367e1f1b8c4b94cd4"), + tag: &hex!("d1690a6fe403c4754fd3773d89395ecd"), + }, + TestVector { + key: &hex!("5511727ecd92acec510d5d8c0c49b3caacd2140431cf51e09437ebd8ca82e2ce"), + nonce: &hex!("ae80d03696e23464c881ccff"), + plaintext: &hex!("184b086646ef95111ccb3d319f3124f4d4d241f9d731ce26662ea39e43457e30b0bd739b5d5dbceb353ce0c3647a3a4c87e3b0"), + aad: b"", + ciphertext: &hex!("aa28cb257698963dfc3e3fe86368d881ac066eb8ee215a7c0ed72e4d081db0b940071e2e64ff6204960da8e3464daf4cb7f37b"), + tag: &hex!("c1578aa6e3325ee4b5e9fb9ee62a7028"), + }, + TestVector { + key: &hex!("d48f3072bbd535a2df0a2864feb33b488596cd523ad1623b1cefe7b8cbefcf4a"), + nonce: &hex!("bbf2a537d285444d94f5e944"), + plaintext: &hex!("060c585bd51539afdd8ff871440db36bfdce33b7f039321b0a63273a318bd25375a2d9615b236cfe63d627c6c561535ddfb6bd"), + aad: b"", + ciphertext: &hex!("993d5d692c218570d294ab90d5f7aa683dc0e470efac279a776040f3b49386813f68b0db6a7aef59025cc38520fb318a1eac55"), + tag: &hex!("8cd808438a8f5b6a69ff3ae255bf2cb2"), + }, + TestVector { + key: &hex!("5fe01c4baf01cbe07796d5aaef6ec1f45193a98a223594ae4f0ef4952e82e330"), + nonce: &hex!("bd587321566c7f1a5dd8652d"), + plaintext: &hex!("881dc6c7a5d4509f3c4bd2daab08f165ddc204489aa8134562a4eac3d0bcad7965847b102733bb63d1e5c598ece0c3e5dadddd"), + aad: &hex!("9013617817dda947e135ee6dd3653382"), + ciphertext: &hex!("16e375b4973b339d3f746c1c5a568bc7526e909ddff1e19c95c94a6ccff210c9a4a40679de5760c396ac0e2ceb1234f9f5fe26"), + tag: &hex!("abd3d26d65a6275f7a4f56b422acab49"), + }, + TestVector { + key: &hex!("885a9b124137e40bd0f697771317e401ce36327e61a8f9d0b80f4798f30a731d"), + nonce: &hex!("beebc2f5a26fd2cab1e9c395"), + plaintext: &hex!("427ec568ad8367c202f5d9999240f9994cc113500154f7f49e9ca27cc8154143b855238bca5c7bd6d9852b4eebd41e4eb98f16"), + aad: &hex!("2e8bdde32258a5fcd8cd21037d0545eb"), + ciphertext: &hex!("a1d83aab6864db463d9d7c22419462bde0740355c1147c62b4c4f23ceeaf65b16b873b1cc7e698dff6e3d19cf9da33e8cbcba7"), + tag: &hex!("4fdbfd5210afa3556ec0fdc48b98e1eb"), + }, + TestVector { + key: &hex!("21c190e2b52e27b107f7a24b913a34bd5b7022060c5a4dec9ab289ff8ae67e2d"), + nonce: &hex!("b28a61e6c1dfa7f76d086063"), + plaintext: &hex!("4e1b9528cf46b1dd889858d3904d41d3174dcb225923f923d80adbfe6eec144b1d4eb3690d0b8519c99beaee25bb50fd2d148f"), + aad: &hex!("d80657377ddbbed1f9b8d824b3c4d876"), + ciphertext: &hex!("7126fa807aa6b61a60958fe4cc8682bb256e5bbdc499d04a6caa81b23f9e67d3da4cf1994b5a8ecc7bce641864d0519a6509cd"), + tag: &hex!("d3e96568f2cd1a48771ee4f67ad042c1"), + }, + TestVector { + key: &hex!("11c33ae37680130c51ed11bfaf0fcb6ed4fc7d903ff432b811763d2c7ef83a33"), + nonce: &hex!("0f224d26dbf632cebdce3b8b"), + plaintext: &hex!("f8a2affe5a7e67f2c62622e4a56804b48e529d1faf9096f94409224129921ce46aed898dd5391746e8170e05f91e0524166625"), + aad: &hex!("dee803732ff662cba9f861227f8b67cf"), + ciphertext: &hex!("3856558375c363b25e8f9e9e2eb63cf0e76a1c6e228893c7b22da4a69b682528b4a4ca2b99e7a537390e2d1e05a68f3e39c4e9"), + tag: &hex!("9b12691b2002ca9227035c68ea941ef3"), + }, + TestVector { + key: &hex!("3b291794fbb9152c3e4f4de4608a9137d277bd651f97e738afaa548d97b4ec60"), + nonce: &hex!("4d1c69c6da96c085d31422ba"), + plaintext: &hex!("21b3ca1f47a0c7f6ebd097eda69d9e5b5fbf5c24d781658003cfd443ae7096be19e1cd3c14fe9738efb00847697fccb466ae1b"), + aad: &hex!("f3a5fa61a4e987413a8fab4aa51d895d"), + ciphertext: &hex!("6c1439cd2cb564e7944fd52f316e84aeffc3fd8024df5a7d95a87c4d31a0f8ea17f21442c709a83b326d067d5f8e3005ebe22a"), + tag: &hex!("e58048f2c1f806e09552c2e5cdf1b9d9"), + }, + TestVector { + key: &hex!("8e7a8e7b129326e5410c8ae67fbd318de1909caba1d2b79210793c6b2c6e61c7"), + nonce: &hex!("8e48513fdd971861ef7b5dc3"), + plaintext: &hex!("ef6b4145910139293631db87a0d7782a1d95db568e857598128582e8914b4fa7c03c1b83e5624a2eb4c340c8ad7e6736a3e700"), + aad: &hex!("80bb66a4727095b6c201fb3d82b0fcf5"), + ciphertext: &hex!("e302687c0548973897a27c31911fc87ee93d8758c4ded68d6bd6415eaaf86bcc45fa6a1ef8a6ae068820549b170405b3fc0925"), + tag: &hex!("ff5c193952558e5a120e672f566be411"), + }, + TestVector { + key: &hex!("d687e0262f7af2768570df90b698094e03b668ce6183b6c6b6ca385dcd622729"), + nonce: &hex!("50f6904f2d8466daa33c2461"), + plaintext: &hex!("79e3067d94464e019a7c8af10b53adf5b09426d35f2257c3cbaffe1ff720565c07e77aeef06f9d03a2353053992073a4ed1fc8"), + aad: &hex!("e8fa99432929d66f10205ad3e9592151"), + ciphertext: &hex!("18f6e6aeecc8dc5a3d0b63a2a8b7bfaf695bd9c49a7392dbfa8ed44771eebe27f94589d8a430da4cf03a8693bc7525e1fcac82"), + tag: &hex!("3c864eaa1b0ae44a7f0ad9ba287ba800"), + }, + TestVector { + key: &hex!("26dc5ce74b4d64d1dc2221cdd6a63d7a9226134708299cd719a68f636b6b5ebd"), + nonce: &hex!("0294c54ff4ed30782222c834"), + plaintext: &hex!("ae4c7f040d3a5ff108e29381e7a0830221d5378b13b87ef0703c327686d30af004902d4ddb59d5787fecea4731eaa8042443d5"), + aad: &hex!("2a9fb326f98bbe2d2cf57bae9ecbeff7"), + ciphertext: &hex!("9601aec6bc6e8a09d054a01e500a4e4cdcc7c2cf83122656be7c26fc7dc1a773a40be7e8a049a6cdf059e93a23ca441ef1ca96"), + tag: &hex!("b620a8a0c8fe6117f22735c0ca29434c"), + }, + TestVector { + key: &hex!("7fa0644efc7f2e8df4b311f54ba8b8c975b2c2aa97962f8ca8a322541bedaa9d"), + nonce: &hex!("5e774e45a07eeb9721734412"), + plaintext: &hex!("84d1c75455e4c57419a9d78a90efc232c179517fe94aff53a4b8f7575db5af627f3d008006f216ecfc49ab8da8927ff5dc3959"), + aad: &hex!("6ad673daa8c412bf280ea39ba0d9b6d4"), + ciphertext: &hex!("e2f00b5a86b3dec2b77e54db328c8d954d4b716f9735e5798b05d65c512674d56e88bda0d486685a45d5c249719884329e3297"), + tag: &hex!("0ce8eb54d5ad35dd2cb3fa75e7b70e33"), + }, + TestVector { + key: &hex!("91d0429f2c45cf8ab01d50b9f04daaaccbe0503c9f115f9457c83a043dc83b23"), + nonce: &hex!("34401d8d922eebac1829f22e"), + plaintext: &hex!("d600d82a3c20c94792362959de440c93119a718ac749fa88aa606fc99cb02b4ca9ba958d28dc85f0523c99d82f43f58c5f979b"), + aad: &hex!("1b29de9321aebc3ff9d1c2507aee80e9"), + ciphertext: &hex!("84cbc9936eb7270080bb7024780113d064eccb63d3da0bd6bce4f8737d28304bfb6102f3ae9c394cc6452633fc551582bbfe1d"), + tag: &hex!("e132dc8a31d21f24ea0e69dfb6b26557"), + }, + TestVector { + key: &hex!("44e6411b9fbfcef387d0ca07b719181c7567e27dba59e8e1c3cc1763cfeaca04"), + nonce: &hex!("25a1cfd97bd8e63de5d65974"), + plaintext: &hex!("db28a592b1f3603c287991a69cc64eacdd62046445a8ba4067575f12553de155d06a9b40ddf58fec56c8171687b9cb54b1f346"), + aad: &hex!("4b1751b074ab649d27fd3f2c4d7ee33a"), + ciphertext: &hex!("36bf6bb761b2248fe71a620e34e9d18e12a74ca42c9a9a21d30345995a83eb44bcae3c67c020730cd8d5e51a741694cc396469"), + tag: &hex!("e69ebf80a88d6eca41ae87cdcab4e1f2"), + }, + TestVector { + key: &hex!("a94bfcefae90f9078860db80ccc50819eadf7cce29df3279f94f5eea97009ef2"), + nonce: &hex!("f481bcb7f5da296e9454ff78"), + plaintext: &hex!("97d0c7dfcab32a386f51d92e89333ec84eecd552e68d14cf48b75067bf0e1946ad03a5d063b852ca053c929088af45d0884a88"), + aad: &hex!("9f80d845577818df9ba984ee552ae203"), + ciphertext: &hex!("18a1c9bfe1b1dfdd06e465df347c1e942b37b3e48cb0c905841a593b5b0d0330feb3b8970dbc9429252a897f0f8e12860ea39a"), + tag: &hex!("10cf4d335b8d8e7e8bbaf49222a1cd66"), + }, + TestVector { + key: &hex!("a50a60e568ff35a610ef9479c08bbc7bb64c373fc853f37fa6b350250a26f232"), + nonce: &hex!("5ada1d4aca883d7bd6fa869f"), + plaintext: &hex!("9ea44e72a1d21395cd81d20db05816441010efd8f811b75bb143ab47f55eefce4eec5f606fa5d98b260d7e5df4a7474cbd8599"), + aad: &hex!("cc7a7a541be7a6d1b846354cb6a571e6"), + ciphertext: &hex!("4165b135187faeb395d4531c062738e0d47df8bed91982eb32e391a6b3711f117b6fae0afde791de3e72fcf96d2b53ff1a621a"), + tag: &hex!("e2cbfea2100585b2cbe5107da17ff77a"), + }, + TestVector { + key: &hex!("5ff3311461d247ceb1eaf591292fcba54308dd3484fd1851e09a12b8f6663fc1"), + nonce: &hex!("61af2e6aec183129cf053c2b"), + plaintext: &hex!("920df8b2888a74022ede6919ed0bf48ccf51e395fe5bfa69a6209ff9a46674024eaa4f43ae2c933730b9fdc8ad216130447cc8"), + aad: &hex!("5eafed6674f2ae83397df923e059db49"), + ciphertext: &hex!("0e35e1208168b639e012df398bc8bf2b19b08d46af0353cd78f6d1b7ae14e6224c1da6fdc9433b171f1cd2b512d5f1acd84f03"), + tag: &hex!("5bc77eb02e4d51e2019446b468498d0e"), + }, + TestVector { + key: &hex!("42e93547eee7e18ec9620dd3dc0e2b1cf3e5d448198a902ded3f935da9d35b33"), + nonce: &hex!("e02e12ba92a6046af11adf0e"), + plaintext: &hex!("6c3704b32527ace3d5236687c4a98a1ad5a4f83c04af2f62c9e87e7f3d0469327919d810bb6c44fd3c9b146852583a44ed2f3c"), + aad: &hex!("ac3d536981e3cabc81211646e14f2f92"), + ciphertext: &hex!("8b6506af703ae3158eb61e2f9c2b63de403b2ebc6b1e6759ceb99c08aa66cb07d1d913ac4acd7af9b9e03b3af602bcaf2bb65e"), + tag: &hex!("a6ce2ccb236fc99e87b76cc412a79031"), + }, + TestVector { + key: &hex!("24501ad384e473963d476edcfe08205237acfd49b5b8f33857f8114e863fec7f"), + nonce: &hex!("9ff18563b978ec281b3f2794"), + plaintext: &hex!("27f348f9cdc0c5bd5e66b1ccb63ad920ff2219d14e8d631b3872265cf117ee86757accb158bd9abb3868fdc0d0b074b5f01b2c"), + aad: &hex!("adb5ec720ccf9898500028bf34afccbcaca126ef"), + ciphertext: &hex!("eb7cb754c824e8d96f7c6d9b76c7d26fb874ffbf1d65c6f64a698d839b0b06145dae82057ad55994cf59ad7f67c0fa5e85fab8"), + tag: &hex!("bc95c532fecc594c36d1550286a7a3f0"), + }, + TestVector { + key: &hex!("fb43f5ab4a1738a30c1e053d484a94254125d55dccee1ad67c368bc1a985d235"), + nonce: &hex!("9fbb5f8252db0bca21f1c230"), + plaintext: &hex!("34b797bb82250e23c5e796db2c37e488b3b99d1b981cea5e5b0c61a0b39adb6bd6ef1f50722e2e4f81115cfcf53f842e2a6c08"), + aad: &hex!("98f8ae1735c39f732e2cbee1156dabeb854ec7a2"), + ciphertext: &hex!("871cd53d95a8b806bd4821e6c4456204d27fd704ba3d07ce25872dc604ea5c5ea13322186b7489db4fa060c1fd4159692612c8"), + tag: &hex!("07b48e4a32fac47e115d7ac7445d8330"), + }, + TestVector { + key: &hex!("9f953b9f2f3bb4103a4b34d8ca2ec3720df7fedf8c69cac900bd75338beababe"), + nonce: &hex!("eb731ae04e39f3eb88cc77fa"), + plaintext: &hex!("3b80d5ac12ba9dad9d9ff30a73732674e11c9edf9bb057fd1c6adc97cf6c5fa3ee8690ad4c51b10b3bd5da9a28e6275cbe28cb"), + aad: &hex!("d44a07d869ac0d89b15262a1e8e1aa74f09bcb82"), + ciphertext: &hex!("1533ce8e2fc6ab485aef6fcfb08ded83ae549a7111fce2a1d8a3f691f35182ce46fce6204d7dafb8d3206c4e4b645bc3f5afd1"), + tag: &hex!("f09265c21f90ef79b309a93db73d9290"), + }, + TestVector { + key: &hex!("2426e2d1cd9545ec2fb7ab9137ad852734333925bfc5674763d6ee906e81c091"), + nonce: &hex!("49a094a71d393b36daa4a591"), + plaintext: &hex!("7cbe7982d365a55d147c954583f9760a09948ab73ebbe1b2c1d69ed58e092a347392192cfe8bce18ca43ee19af7652331bd92c"), + aad: &hex!("177309cfc913e3f5c093e8b1319ba81826d43ce5"), + ciphertext: &hex!("cab992e17cf6ec69fd3c67ea0424bcd67475a7f1f16e6733c4419d1b5a755f78d6eda8e368360d403800a08f0d52b4bc0aa0ab"), + tag: &hex!("b125f8caee9e54b9f9414b1c09021ed8"), + }, + TestVector { + key: &hex!("8dc1b24bcbbee3cb8e14b344166d461d00c7490041edc9fa07e19cc82a3ed9c4"), + nonce: &hex!("31768ad18c971b188d947019"), + plaintext: &hex!("84e4f79dbb7209cbaf70e4fefe137c494786c899602783e9c034296978d7f0c571f7ea9d80ed0cc4723124872d7326890300c1"), + aad: &hex!("eb3673b64560cca7bda76a1de7ae1014ee1acaee"), + ciphertext: &hex!("2402acd865d4b731bc9395eae0e57d38fdf5ce847ac7aef75791a52c7573ea9b3a296e62cb1ed97c4bd34be50ee7f3d75747cf"), + tag: &hex!("665abb725498ede2b0df655fc1765a2b"), + }, + TestVector { + key: &hex!("bc898f643a5f2cd864c10b507b4b803b4ff4ace61fadcc7bcd98af394731b791"), + nonce: &hex!("cc447d83c0a6734a79778c64"), + plaintext: &hex!("124eb963cdb56fa49c70a9b1aa682445c55065f26859f1d16eef7cfe491587533eedd7e23deabddfc5550c2fa6a08b17822699"), + aad: &hex!("e932bd2e0e6c550d136f725e14c53d27ffb20f6a"), + ciphertext: &hex!("45d8908ef9eef369e78b7ea0b7d023a92c63648271927efe9b0220eb09ed96f3b635c6ec8bfc68b4c228b712494bb37f4c7f1a"), + tag: &hex!("47899857494bac28d2176a9c923026b2"), + }, + TestVector { + key: &hex!("8e82a85466ee024eb1ae10c4982d6a95e6dbe5582299ab37fe89a9db80ab51a6"), + nonce: &hex!("04cfd489e18eeb7a4a8ab36b"), + plaintext: &hex!("3aa2e4eaed18c4602715ae77379e9083708af9f9b49031324d41abca61440319c8c8e6dbcc20006a825b12ced00b2286848a94"), + aad: &hex!("7bb54b1a6ed0ca387268a146430c0bfa2602a8fd"), + ciphertext: &hex!("674b1391937074642408eeae9b748ca629da9fd00281824f5a108f6078ee78f98749392bb6e29b53e53e4b11739ac53a8e653b"), + tag: &hex!("e320a873a9c2e8ef455698c37ea59a6d"), + }, + TestVector { + key: &hex!("f1f2c5503ebf35ac1373c29e2305e963f89f6ed015a181b70fb549429805d5d9"), + nonce: &hex!("2fb5c6a24f406872755db05c"), + plaintext: &hex!("b4a2809198035c277637bb1c2927fb5c60b49ef9087c800012d8663d997983fcb78d51a054114a24e1e1b5214b58e7dee47195"), + aad: &hex!("92c1f3489aed90aedafb55562a34b3f4be29e101"), + ciphertext: &hex!("f051a3a968278a46630b2894a0d386c18fa034960d8ddd14e88e1071afbbca5baf02967c2270117b4fb2bd4cfd032174505f99"), + tag: &hex!("6f1db5293660b6904f7f008e409bdc06"), + }, + TestVector { + key: &hex!("f0338d26d74bd1768da5bb79c59fab2b4abe1966324048790c44bc98a6b34b6c"), + nonce: &hex!("c8269e4406fa0be1cf057b2f"), + plaintext: &hex!("323c373e4d85a1fd21f387fdd8c7e6aeebd5aae893d7af286cb214600cba8b9eb06df085a2dc5aed870259f7f3cc81d3eb53bd"), + aad: &hex!("13fb0edcba095cef9c4343a0629fd5020f03729d"), + ciphertext: &hex!("08572b9cf9bcfd21d4403a1218d94476b9ee8c3b94c56625c21ccaf4c0efa34cf22a532389210793699c9de1ab14f8c4c52928"), + tag: &hex!("29968c9fb610940cee9fd5b2f7c8ba21"), + }, + TestVector { + key: &hex!("a67648285b65b9196060aaa02af279170164353e38fb77c3968c403cfa9acdc8"), + nonce: &hex!("0822d6b3e91eccb7e14245fd"), + plaintext: &hex!("b5d271768c12ccabf89eb2d58cbde840c26d1c9b3692581f90c8b0d7b2cff31ae9192d284f5448de7d924a7b08f115edae75aa"), + aad: &hex!("0d9a5af7ac27438d92534d97ff4378274790e59f"), + ciphertext: &hex!("b59041eed7abc2ff507d1932b5c55ac52728e5ac6648dcc74b38870db6181b1989f95a0144f0db368ec50414cfda0b977141e3"), + tag: &hex!("1d12ce89e1261d73470f3ae36ab87288"), + }, + TestVector { + key: &hex!("51162b2435f3cf43471f4cc0ffac98b438501ee9b887843a66e9951ca35b8767"), + nonce: &hex!("dcb902eaa837ed22bf5fa636"), + plaintext: &hex!("3edf43358f5109a4dfb4a02987170a67cdd170f6028f7708bdd7726f476b882b9640270f2270f7babfa384181c8e58c15d04c4"), + aad: &hex!("4d459905ff89aed07dcda43a3d191a3da9309faa"), + ciphertext: &hex!("046a2313d36cbc43b6d0787e5ef37d153090a31d0f6656004034be72b9b07ace3a8abe8614362282d87da40c29c60a1a9f5c40"), + tag: &hex!("c7410b5cb94d2877c189983791cee82e"), + }, + TestVector { + key: &hex!("2fa2beb1cde2226f28fb42a5fb0af3fc58fbb76bf14aa436e6535d466456a0f4"), + nonce: &hex!("50190514a3740b3c0b1df576"), + plaintext: &hex!("a5e0b4837dfca263ba286abf7940b6e70fabb55d8dee5028617c1190fbd327f79b79d2f34db6076ab07cecff7114b15ca02a33"), + aad: &hex!("25142928c1ae9c7b850309e07df359389db539fc"), + ciphertext: &hex!("850fd22bd0897b98ce40bc6c1345a9d59abf796b1b8c34ee8b377e54ee7d59dec05c022ecae96ffdfa1311bdd4e7a9d35aac47"), + tag: &hex!("4b5ab89b4f627ca32d12a1791c286870"), + }, + TestVector { + key: &hex!("a92a797ce2b2f382030b77a1abe94c8076eee88de2dc4929350b244dbdaddd30"), + nonce: &hex!("716f577401a7893c42c91710"), + plaintext: &hex!("9d26ff79a89720fab6e4cda85887e3c0c3f86a4670d065c8ea68042b6f9f16dd2c5b31acb36331f5b1e50f08c492dc12eebd9e"), + aad: &hex!("8642681f1839b88990c2a939f00c9b90766dadac"), + ciphertext: &hex!("3080bcf3604cf81f5f2c6edc80dfe5d877168a9903598a700a0bbae188fadc7a8b76a04b40400f9252d7f9437fa8f024a3bdeb"), + tag: &hex!("8fc56f6bf48efb00476886b2a03ecb89"), + }, + TestVector { + key: &hex!("89d0723e5a087456b7b709b8b21be380b463ba3dc9b79170e9947526798fe91c"), + nonce: &hex!("68e2f307b7d49d4d9c041755"), + plaintext: &hex!("7fe2afb710e8fd49cca1c2ba8fd0814594fba4d667017630e170a8a379fa5837bf370ca1cd4c98bd8c4f13eb7068ffa71ab07c"), + aad: &hex!("b34805b30703a62b6d37c93f2443e1a33154b5fb"), + ciphertext: &hex!("b841012752bbf1dfa7b59366dbf353bf98b61ff2e6e7a13d64d9dcb58b771003c8842ac002aac1fa8ca00a21eaf101ab44f380"), + tag: &hex!("73a93e2722db63c2bbf470d5193b2230"), + }, + TestVector { + key: &hex!("329a6e94b1cce693e445694650d62b8c2c9ab03a09e6d4eca05c48291e576b89"), + nonce: &hex!("78f471bc32f8637a213e87ac"), + plaintext: &hex!("65264d75e1a176a7e966e59109cd074ac5d54740eb0c58084af023e5599eb611846199579d95ba94b6d25ee4d9074b9714f231"), + aad: &hex!("c00c465524e2e2f8a55c0793ed9af851be45a70e"), + ciphertext: &hex!("964d665d1e3c1018dfd883e217cfe4c856cc844f7644b53bb68fbe66f8541fa43ac54e92a2b194d6d8929fe031e94b3e70eca0"), + tag: &hex!("fd511385711236f2e99e6da5042007b7"), + }, + TestVector { + key: &hex!("463b412911767d57a0b33969e674ffe7845d313b88c6fe312f3d724be68e1fca"), + nonce: &hex!("611ce6f9a6880750de7da6cb"), + plaintext: &hex!("e7d1dcf668e2876861940e012fe52a98dacbd78ab63c08842cc9801ea581682ad54af0c34d0d7f6f59e8ee0bf4900e0fd85042"), + aad: &hex!("0a682fbc6192e1b47a5e0868787ffdafe5a50cead3575849990cdd2ea9b3597749403efb4a56684f0c6bde352d4aeec5"), + ciphertext: &hex!("8886e196010cb3849d9c1a182abe1eeab0a5f3ca423c3669a4a8703c0f146e8e956fb122e0d721b869d2b6fcd4216d7d4d3758"), + tag: &hex!("2469cecd70fd98fec9264f71df1aee9a"), + }, + TestVector { + key: &hex!("55f9171a03c21e09e3a5fd771e56bffb775ebb190319f3dc214c4b19f72e5482"), + nonce: &hex!("14f3bf95a08e8f52eb46fbf9"), + plaintext: &hex!("af6b17fd67bc1173b063fc6f0941483cee9cbbbbed3a4dcff55a74b0c9535b977efa640e5b1a30faa859fd3daa8dd780cc94a0"), + aad: &hex!("bac1ddefd111d471e75f0efb0f8127b4da923ecc788a5c91e3e2f65e2943e4caf42f54896604af19ed0b4d8697d45ab9"), + ciphertext: &hex!("3ae8678089522371fe4bd4da99ffd83a32988e0728aa3a4970ded1fe73bc30c2eb1fe24c0ff5ab549ac7e567d7036628fd718d"), + tag: &hex!("cf59603e05f4ed1d2da04e19399b8512"), + }, + TestVector { + key: &hex!("54601d1538e5f04dc3fe95e483e40dec0aaa58375dc868da167c9a599ed345d9"), + nonce: &hex!("c5150872e45c341c2b99c69a"), + plaintext: &hex!("ae87c08c7610a125e7aa6f93fac0f80472530b2ce4d7194f5f4cb8ac025323c6c43a806788ef50c5028764ec32f2839005c813"), + aad: &hex!("93cd7ee8648a64c59d54cdac455b05ffdfc2effe8b19b50babd8c1a8c21f5dc8dc6050e2347f4cd28701594b9f8d4de5"), + ciphertext: &hex!("d5f005dc67bdc9738407ce2401977f59c9c83520e262d0c8db7fe47ae0eada30d674694f008e222f9733a6e63d81499e247567"), + tag: &hex!("3470155144c74929980134db6995dd88"), + }, + TestVector { + key: &hex!("e966c470cbecc819260640d5404c84382e6e649da96d29cad2d4412e671ed802"), + nonce: &hex!("b3a92d6f49fe2cb9c144d339"), + plaintext: &hex!("7adf6fcb41d59b8d2b663010c3d4cf5f5f0b95cf754f76f8626c4428467e5c6684e77e7857b1cc755762e9ea9117e3bb077040"), + aad: &hex!("dfa62a3a4b5b3af6770cfd3cef3bbb4cce3f64925782a9a8a6e15fe3744d8f9310400dd04e8d7966c03850539e440aa5"), + ciphertext: &hex!("5f5b09486e6cd2a854e5622b4988e2408fddaca42c21d946c5cd789fe5a1306ef33c8cd44467ad7aa4c8152bce656a20367284"), + tag: &hex!("2b388109afdada6473435230d747b4eb"), + }, + TestVector { + key: &hex!("4a8a12c0575ec65ae1c5784d2829bc7b04818eb00bd4c90a0d032ea281076e27"), + nonce: &hex!("959f113b705397fb738018b0"), + plaintext: &hex!("0c5571195586e4fc7096fb86cfcd6684081446f3d7adc33a897f03ac4ff6c3cc2019b67bd3184c86070764f6deaa8a10d0d81f"), + aad: &hex!("adb8bc96142a1025122dc22f826957197af33dcdcf6b7ab56bc1a5e17e8534e48b8daf685faf9543bb343614bdf6737f"), + ciphertext: &hex!("84212d5991231d35c4e8621163e5b370a0105a05856866e74df72c0808c062981570d32d274ea732fa4d29f9cfa7839cadbe6a"), + tag: &hex!("39cee3b8fa0bf92605666ccd9eb19840"), + }, + TestVector { + key: &hex!("6197a4fa7cfcedeff223f69ea68b4ddf54b683350c20875be353077e9bbce346"), + nonce: &hex!("1a69ecabd42c53c0ec64fcd0"), + plaintext: &hex!("40a487b4daf866c20f3c4911a0586709c3344aa988dc9c464bcf36cc4e3d92701e611e60cf69f3edbf76cd27ff6ba935026d7f"), + aad: &hex!("b20a7ca5b5b603f661587e01f7ef171823ef463c187ded77a3d616400cc1d2b0b688ac9e927498341560cbc8eb9a4198"), + ciphertext: &hex!("06420fa038ee62db30cc05bfe34c8d2c39a9d439653907c512ed606511921fe76110913a5bfb6b6c7b23d7f8883f5ab65f4b14"), + tag: &hex!("4d3097c9919002cd1da83f29820312ed"), + }, + TestVector { + key: &hex!("c9dbe185023ecaa78be9bfac1b91b9da6bd7c11349feb69e6b0be83a838e77b2"), + nonce: &hex!("8940fa7c6afd3f7a09ec93b6"), + plaintext: &hex!("075be0d61273e6975978d0b88b3fa38fc398d4d0f22a342a8afa5562af0e7c8fa548f0d8faec898a20c97e851754992c1ed4a3"), + aad: &hex!("f17bd357608365e66b98e49191cdc2a3813bba5a1b7988aa8aaaaad4b86d0ef4e2698cad799d63fcd2a5e87c0e3e929a"), + ciphertext: &hex!("615c1097d577363a77bfc7dd57179acb68166e78021b3397d7029ce33cbc848f036b9c07989eeb9f42aeaeebe8542f103b1d32"), + tag: &hex!("a22ab25fd8a6127469e8ce9ff686d575"), + }, + TestVector { + key: &hex!("e6cdcf497a6e119009bf43ac183d2dd4d4e967964ef92811f69eb18d92923305"), + nonce: &hex!("3e88459a76e1dcc890788297"), + plaintext: &hex!("72a3dfb555ba0029fc3d1c85b836f76135bd1858189efdde2db29045f2c26e6a65627d81a0b85ca42e8269d432a41154e929ac"), + aad: &hex!("a359f86ec918537d80a84da7b66bca700c1ff9ec7f8695a30808d484da218d15ae89c5f943e71778445130191f779001"), + ciphertext: &hex!("9ae3f8ccae0bb5789b1105118760c406e41175a76612435cb0c8be225ea6b368c9d08c9d9a24b512d1458e94af79e3060ab69e"), + tag: &hex!("ac3bbc8fd6a7097df6f298411c23e385"), + }, + TestVector { + key: &hex!("de5531b50888b61d63af2210ee23f46d91a5e60312bd578584af586bf22ea756"), + nonce: &hex!("0fde8689b0348bbcfaa89fec"), + plaintext: &hex!("80621e54eef1c92afb1f64ed860e39311eea7e2cca6f5624008c1d2e581d7112b7ee0b559fc3db575b7b7c42ee4f2a20442dc0"), + aad: &hex!("22db97cd5f359f12aec66c51c7da79ba629db4c8c7e5501be2ec1e4cc3f3944b6e3057d093bc68b735b5156950f91804"), + ciphertext: &hex!("933018419a32b7bf65f9777c44889a44b32d61ceddbb46839366ce2ca2ffeb1833f46559e59c93bb07f622d9633f13932cf7f1"), + tag: &hex!("25023a4ee9bdbf525cfef888e2480f86"), + }, + TestVector { + key: &hex!("bc0c6368a9bb2622f6d5ba12de581f003336c298adac34499bf26b11e630f891"), + nonce: &hex!("2aa8f30b567cf1edd818e42d"), + plaintext: &hex!("1dcc1a3167fba55c00d3383e26d386eaa0449154599992da7f7f6598f41b3eb8e4d0a9143dfcab963f5c390a6ae2010fbcf6ec"), + aad: &hex!("0e28ebf87eb757e83031fb836f7b049a46bd740b0a39c9b798d2407e1150da86dfe84121c7c98449559453ad7558e779"), + ciphertext: &hex!("78d00a6e3302369817b9cf1f24ea13c41751382e3fea74403d094737e32fb507184cfebce48d10b4ce8db12ef961e4df2c8e95"), + tag: &hex!("c0aff3594f86b58e229c7ad05c2b84f0"), + }, + TestVector { + key: &hex!("5d98a0c7ad6f9c0b116613ca5082250356a6a9bca55fe1a4a2962b733214dac4"), + nonce: &hex!("8b2d8e8d83bdd6a3125dd997"), + plaintext: &hex!("4f3685c2cfbc856379d1fd00f9611fe4c0a4b9c4013fe1bee144449709a6a7e31ff6fb0da74ed464b066b03b50f19cd7f5f9bc"), + aad: &hex!("2f20636d46ce37e9bb0ca0c41d819e3eabcedacbd1ca3ced112d3ad620bbd3b2effe80d3ec8760706e8f14db83139a70"), + ciphertext: &hex!("8e178c0e3e5d22b3be897e0b8879b0d53fef2efb9946ccff6d717b001e3033f2cc22d01d9551e9c0749de704fbe3189328cbb0"), + tag: &hex!("541b7db823e37b5ed323626b9c6748f6"), + }, + TestVector { + key: &hex!("d80a2703e982de1a2fe706ffe6e389f351ab356ccf056df045e2941b42ef21a4"), + nonce: &hex!("1521ab8f7242cba05427f429"), + plaintext: &hex!("6f9fde28e85776a49cfbad1459d94611757a3cd996aa6e2d702d0483a4d88d532131ebd405b351226b16d19d30d32807a1d511"), + aad: &hex!("5395de90d6bec7c159ab9d6cfa663bdc6295d025e1fcc8b760b9ba42d785eda218dabc6fa7c0f733ad77f61682bff2db"), + ciphertext: &hex!("1e72a8495ceadaf0d31b28ba7cb7c37ccb117761d38fe7dd98eb230ff4ea0b400401e9b5311a7be9b2a533523ad469e2fdb233"), + tag: &hex!("bb174b7624c935ff75b3b77ff7068a98"), + }, + TestVector { + key: &hex!("6d5c69d7135c0b5b7fef512c127fa788092f1a908358ab658b8f23e463409aa5"), + nonce: &hex!("b36cccad38cd6148a384a026"), + plaintext: &hex!("b4e74f5c56f2ea056d9ff931525944dfad207e063ba226c354e0320a50449967e964580d9b57028c14005aba6865f8bc6a3ef8"), + aad: &hex!("b19f4616bb1452251a2a7dbf78f920194f139e0424d27683621d1ee1e865737c2466e058439c8e122e582a7b63607ce9"), + ciphertext: &hex!("1ce12cd5502efa9ea259584ae9b3c7dbd9444380d4b77a2c787f9b2257019b23ee183dffebb3106a26b18d8a23445626a578e2"), + tag: &hex!("62945e31bae3181855b69c37898ac5bf"), + }, + TestVector { + key: &hex!("e6afe3c4db2c1d13edb1c5931b2b4b515ec0fd6201139ee1ea55cec92263830e"), + nonce: &hex!("358bd9ea64177d1e23a41726"), + plaintext: &hex!("710bb3394b094ee7d053bc6599b26dafd337e8a61c580d0446c3bf195e77ca5132c8ec3a47a61579dce38360bba7c65e4d5634"), + aad: &hex!("7e0f841cddd7eeebd1ec7b7b8d0e2f71656e5e9ff3cfa739c0b9d0ec4941a0b3f3b396690dbe5f5082d6fb6dd701c68d"), + ciphertext: &hex!("4574a8db515b41c14c2a962dff34e2161a7195c491b11b79889aff93c5b79a6455df9fe8ef5c5b9edb5da1aa9fe66058b9065f"), + tag: &hex!("7c928d7f5cbac9bb4b5928fe727899eb"), + }, + TestVector { + key: &hex!("5cb962278d79417b7795499e8b92befe4228f3ba5f31992201aa356a6d139a67"), + nonce: &hex!("76f7e7608f09a05f336994cf"), + plaintext: &hex!("2e12cbd468086aa70e2ecd1ddef561e85c225dd083e5956f5c67503344b0ea982bb5044dafbcc02a5b9be1e9b988902d80172b"), + aad: &hex!("032de3fdec273fc8446c2bf767e201f2c7c190acf9d6d321a24a0462cbc3356e798fe23d6c1b4fe83be9c95d71c05504"), + ciphertext: &hex!("c959344a46aa5216d2b37c832436eb72a4a363a6df5642cfbbfd640dea1d64c80bd97eabc1aab192969ee0b799e592a13d2351"), + tag: &hex!("51b227eaf7228a4419f2f3b79b53463a"), + }, + TestVector { + key: &hex!("148579a3cbca86d5520d66c0ec71ca5f7e41ba78e56dc6eebd566fed547fe691"), + nonce: &hex!("b08a5ea1927499c6ecbfd4e0"), + plaintext: &hex!("9d0b15fdf1bd595f91f8b3abc0f7dec927dfd4799935a1795d9ce00c9b879434420fe42c275a7cd7b39d638fb81ca52b49dc41"), + aad: &hex!("e4f963f015ffbb99ee3349bbaf7e8e8e6c2a71c230a48f9d59860a29091d2747e01a5ca572347e247d25f56ba7ae8e05cde2be3c97931292c02370208ecd097ef692687fecf2f419d3200162a6480a57dad408a0dfeb492e2c5d"), + ciphertext: &hex!("2097e372950a5e9383c675e89eea1c314f999159f5611344b298cda45e62843716f215f82ee663919c64002a5c198d7878fd3f"), + tag: &hex!("adbecdb0d5c2224d804d2886ff9a5760"), + }, + TestVector { + key: &hex!("e49af19182faef0ebeeba9f2d3be044e77b1212358366e4ef59e008aebcd9788"), + nonce: &hex!("e7f37d79a6a487a5a703edbb"), + plaintext: &hex!("461cd0caf7427a3d44408d825ed719237272ecd503b9094d1f62c97d63ed83a0b50bdc804ffdd7991da7a5b6dcf48d4bcd2cbc"), + aad: &hex!("19a9a1cfc647346781bef51ed9070d05f99a0e0192a223c5cd2522dbdf97d9739dd39fb178ade3339e68774b058aa03e9a20a9a205bc05f32381df4d63396ef691fefd5a71b49a2ad82d5ea428778ca47ee1398792762413cff4"), + ciphertext: &hex!("32ca3588e3e56eb4c8301b009d8b84b8a900b2b88ca3c21944205e9dd7311757b51394ae90d8bb3807b471677614f4198af909"), + tag: &hex!("3e403d035c71d88f1be1a256c89ba6ad"), + }, + TestVector { + key: &hex!("c277df045d0a1a3956958f271055c229d2634427b1d73e99d54920da69f72e01"), + nonce: &hex!("79e24f84bc77a21a6cb14ee2"), + plaintext: &hex!("5ca68d858cc30b1cb0514c4e9de98e1a1a835df401f69e9ec6f1bcb1158f09114dff551683b3827457f77e17a7097b1ea69eac"), + aad: &hex!("ca09282238d492029afbd30ea9b4aa9d448d77b4b41a791c35ebe3f8e5034ac71210117a843fae647cea020712c27e5c8f85acf933d5e28430c7770862d8dbb197cbbcfe49dd63f6aa05fbd13e32c459342698dfee5935c7c321"), + ciphertext: &hex!("5c5223c8eda59a8dc28b08e6c21482a46e5d84d32c7050bf144fc57f4e8094de133198da7b4b8398b167204aff837da15d9ab2"), + tag: &hex!("378885950a4491bee3cd681d3c957b9a"), + }, + TestVector { + key: &hex!("4d07f78d19e6d8bb32bf209f138307890f0f1ae39362779ff2bf1f9b734fe653"), + nonce: &hex!("d983a5d5af78a3b1cd5fbd58"), + plaintext: &hex!("94f0bbc4340d97d854e25cc7ce85ea1e781e68bf6f639e0a981bb03e3c209cbf5127171cb0fff65bc3ecac92774d10146d1ac5"), + aad: &hex!("a3dc9ff9210bc4b3276909883db2c2aa0762cd22b46901a248c0372d073e7778b9c1d8469b26bb42406e484ef7747f71dea785fc0020a2eac17e0ac3fbe0453629efd68d5678fbecc10af8ffbe7828f826defb638763f4ecfe82"), + ciphertext: &hex!("6543b4d97fccd273b36436fef719ac31bf0e5c4c058ea71aea2a0e5b60e329be6ea81ce386e6e9fe4480e58363c3b2036865ac"), + tag: &hex!("924cf7c0770f228a4b92e9b2a11fc70b"), + }, + TestVector { + key: &hex!("9572b9c57abdf1caae3bebc0e4bbf9e556b5cbacca2c4756050fefd10a666155"), + nonce: &hex!("de292a9858caaccdcab6a433"), + plaintext: &hex!("6f420a32708ccd4df0d3149e8c1d88dceba66ee4546f38db07046ebf30f47627f7fdda1dd79783adabe5f6b6853857b99b864c"), + aad: &hex!("a042d97a9b8f6caf51c5f24522d7ed83e2c5d8ec6b37ef2598134a30e57319300c3fdf92fb1d9797f5ef00971f662aae768f69f9ca0455bd6d1059d5f85b8ecb977006b833f90ac2d5bbf4498c83f4d1a42584c0dfc4a2e2453c"), + ciphertext: &hex!("a9af961d61ab578cc1348eb6f729603f481c5d9bf9bee3a13eda022bd09c03a4f207c21c45c0232a9742ae8f0c54b4278a3a63"), + tag: &hex!("eff9bb26156ec76f0060cd93a959e055"), + }, + TestVector { + key: &hex!("3cc8671c4d25c3cbc887f4dcbd64e531e91cf6252f6ee9c29d9988d20ab6747f"), + nonce: &hex!("f960a09c0b5067280926a9c3"), + plaintext: &hex!("5b58717b0b32076566b58bf37c6133e61468b2be67715fb0007fe390c4b5578decf55502a4e3c12e7bdf0ba98784d126e4753a"), + aad: &hex!("79d73a7ff86698e6114a0f465373fbee029e042424c439b22e3ad37b36b9e02bab82e16844114e99e39c169f462fe61b87c4627c394384acc9531680706e4e56491a304c6075cca37c64db24468c1fb9519605c83f0ee3e0316a"), + ciphertext: &hex!("1d0be097470c1ac30619f63c3961152ab27db88ce694b7bba4db185cb31803cc7bab890e931c90766621bfe5d887eb0cd6995d"), + tag: &hex!("dbd57ea091ff16fc7dbc5435030cc74e"), + }, + TestVector { + key: &hex!("882068be4552d7ad224fc8fa2af00d6abf76ccf1a7689d75f6f0e9bd82c1215e"), + nonce: &hex!("890a5315992f12674d1c8018"), + plaintext: &hex!("8464c03e0280cb1f63c054a24a050e980f60cc7313f09f2092c45d77bbe9ad2a8c1f6cdca2acd8c57c87e887edadb66bcb66c4"), + aad: &hex!("916721df816b1cad531dee8e4a8e634d43ed87db99609bcc986d16bfac2cff577d536d749a5c3625de53c5351825c228911f0a64be1fc9738a26394efe5332c0762bf59b65d3f1c5aafa9ca2e63eccd59568e6c0269950911a71"), + ciphertext: &hex!("020e297d907177dba12dde4bfe1b0ff9b6a9d9db0695193e4181449e157137b59b488616ba151b06d889f8498ce373d2396ab9"), + tag: &hex!("e48537ecb27460b477a6e7c3463dbcb0"), + }, + TestVector { + key: &hex!("4deadcf0f7e19231f8afcb6fb902b105bef23f2fa9323a51833ff8368ccb4f91"), + nonce: &hex!("6d4d01abd587ed110e512ed2"), + plaintext: &hex!("75686e0fdd3fd96f3e6dfafd7a2a907f9f375d93943cb2229bd72b032bf624af4fc72071289386e3dccc45959e47ab42b261a2"), + aad: &hex!("31a2797318104b2dc9977e599435b041c56bafe5e7d901a58614c2d3fb9d220e3fd3e2828cef69e0604ed73340cb1e21967294dcd874893942442200b2a5b860ee8cf91e1d8eb3d364d0e43e84f6379f434a1ae17c236b216842"), + ciphertext: &hex!("8feaf9a089599812117a67aed2f4bf3431ff1f6cfd64ea5ff475287abb4ff1ab6b3e4f8a55d1c6b3f08594f403e771ec7e9956"), + tag: &hex!("5040407621712e053591179e1689698e"), + }, + TestVector { + key: &hex!("80f1c515f10d79cdbee275213aa9ac0845e2cf42874f7e695081cb103abf1a27"), + nonce: &hex!("399d5f9b218b62ff60c267bd"), + plaintext: &hex!("9e95221873f65282dd1ec75494d2500e62a2b6edda5a6f33b3d4dd7516ef25cf4154472e61c6aed2749c5a7d86637052b00f54"), + aad: &hex!("d2a8fff8ae24a6a5efc75764549a765222df317e323a798cbb8a23d1af8fdf8a3b767f55703b1c0feba3912d4234441978191262f1999c69caa4e9a3e0454c143af0022cd6e44cec14149f9e9964a1f2c5e5a6e3e768bd870060"), + ciphertext: &hex!("4f996562e23ebbfd4fe26523aee9525b13d6e134e72d21bdc7f195c6403501fd8300b6e597b668f199f93591ba742a91b54454"), + tag: &hex!("2da1c7325f58575d275abf96c7fa9e51"), + }, + TestVector { + key: &hex!("c2c6e9be5a480a4a56bfcd0e268faa2276093bd1f7e8ce61e746d003decc761e"), + nonce: &hex!("c1541eb25721d4856df8f928"), + plaintext: &hex!("87d22e0318fbbb420b86b0585bd12c14645ff2c742e5639b3a114cc96c5f738edfbe2055116f259e3d6c14cb6d8fca45708289"), + aad: &hex!("f34e79e5fe437eda03ccfef2f1d6319df51a71c9891863e4b98a7298bd64490460354db5a28b0fadcb815024ea17f3b84810e27954afb1fdf44f0defb930b1793684a781310b9af95b4bcf0a727a2cb0ac529b805811b3721d98"), + ciphertext: &hex!("b5d6e57c7aa0240e0b6e332d3b3323b525a3d8a553ad041ba599e909188da537c3293d1687fb967882d16a5615b84e95f9dd77"), + tag: &hex!("1cce334cec4b51216cac0fc620cdadf9"), + }, + TestVector { + key: &hex!("ea0d6184a71456e27f9ac82dfc7f6694c898f7c0d19d1cb0db4e575dd0094bb6"), + nonce: &hex!("5018fb816d515511bfb939d5"), + plaintext: &hex!("083147d0c80f134f7393855c8a95bf6e6abd6f9a7b1fca584e8bfc6b5dc13a8edbfd473e232c041d9be9ee7709dc86b3aa320a"), + aad: &hex!("8bc6bd0a263212bd7281fd1a45e512fca104f859358eae9293a297c529a0abaffd8a77507b9069040f2b3141a7620691e110a8b593b956d8e3e71694506b89018a03861c1ba6082687adce15a874c73477430cef075eba077a93"), + ciphertext: &hex!("f0a5c4941782e2f2941dd05acee29b65341773f2e8d51935a3f4fa6f268ff030c880976cf1ee858f6571abd8411b695a2fadf0"), + tag: &hex!("067d8cc2d38c30697272daa00c7f70cf"), + }, + TestVector { + key: &hex!("c624feb6cb0d78d634b627134c692f0bf5debf84d8639e22ff27ce2ace49d438"), + nonce: &hex!("a54f4f1204255f6b312222cd"), + plaintext: &hex!("ec34f45c1b70fd56518cc5c404cc13330ab7d51c10f4d2cfeb26b097ae76897191ec1b3953b0086e425c7da221d29f65d5ccf3"), + aad: &hex!("d9099ba6be50dca77e0b9803766ad993132479fbab43b8f4126a7f9ef673ac0caf2de235e1e84ad9fe505c43d1ac779f5072c025c14ea0d930ce39db8c5930baada23b3e4654470e559fcb6eb1c133a77318b87cc7913e12d404"), + ciphertext: &hex!("713d28a5123d65e82cca6e7fd919e1e5e3bdaab12ae715cf8b7c974eb5f62be8c3b42637074c6b891f6c6033eb4b7e61db9f0b"), + tag: &hex!("01ededff6e4d1dce4ac790218e208ebe"), + }, + TestVector { + key: &hex!("1afc68b32596198ae0f3a8612751c2413322e8054ff2ac6bede3d4a1ee20ee62"), + nonce: &hex!("356860e76e794492de6a68f3"), + plaintext: &hex!("293041038f9e8edee23d2f18bce87b522380f1fa18b3021830a54ab891da8548095228ed9860176152e27945d66254f0db8590"), + aad: &hex!("205e44009e0ef963838aff615b35c9f1271d487cf719677d956718bce8ab676cceb636ad381432c5c790c26b07051b661a2fec4e607f9644f84993c8335db21ae36b6008bab2883ad7541809bf5f49272295c1c1f1cf8c678553"), + ciphertext: &hex!("e06109680d5fefd345665ec9a5b2e7bf3ece3af1b62841a95c453e7753b5a1d6d8a10b3c6c42df1f23832b74e74871821f1c0b"), + tag: &hex!("953d8d04f70e2af055ac902a455235b2"), + }, + TestVector { + key: &hex!("f61b723359e798fefecc26b10b168dc331c639079598f1f651166cc58c671ee1"), + nonce: &hex!("b07e9407b592d4fd95509343"), + plaintext: &hex!("2724f1ad6b5b409a59c7f2ff649eb24b4a33a03d7a0426e29a6ea3aa91b4f00699fbed75bb7189964303e2e9fe3a7e5f74b7a1"), + aad: &hex!("1429c6f27828cb94ad5e62451da10fd574660cec2b8f279a19bbb8a167a630d3ac60db04e8faa02204792e49aed4501844a419d3ecdff0d03799866fee81a91187b08a44d5bb617ff3b2cef79cd48750ea20903e1d3627a17730"), + ciphertext: &hex!("362bad8de943dce8f53edf682d02e1d893c23c5272b13fd35b492f8477083a8c34027db32b6131931f03555ac5fbc6dbb13801"), + tag: &hex!("a51775606343755691f125019b44fdfc"), + }, + TestVector { + key: &hex!("6be7f4d18ff0fbdd9b3b3cacaba4629a0c617387079add62f6ce1584b33faad1"), + nonce: &hex!("fda568c9cb13d9c176bcef03"), + plaintext: &hex!("4df668e99d5068604a48bcca5baa8245435928558a83d68d7b0b081861224e9bd39ea8f2d55a635949e66c6f6a7ff5cc34dd94"), + aad: &hex!("11ebeb97dd4a9925c1fbe2b9af77392058d2d971e42db15da39f090d7bc132573c34bf7d92a2d72dc66ee6840c3ff07985b8976ee8d8f36bf47ae330b899fdc60652dd5a23c45f3680f11951f019e0697c8acfcaa95f01b9c7dd"), + ciphertext: &hex!("488b40ad594e1845ccdd9e9467fc5e1afbbfde34e57d45bfcd30b61cc326d57fe8e3f31a39cdebf00f60bbd2c3cdf69f756eff"), + tag: &hex!("3bf3fbab9b48486fd08a5552604df639"), + }, +]; + +tests!(Aes256Gcm, TEST_VECTORS); + +// Test vectors from Wycheproof +aead::new_test!(wycheproof, "wycheproof-256", Aes256Gcm); diff --git a/tests/common/mod.rs b/tests/common/mod.rs new file mode 100644 index 0000000..d8f2eb5 --- /dev/null +++ b/tests/common/mod.rs @@ -0,0 +1,78 @@ +//! Common functionality shared by tests + +/// Test vectors +#[derive(Debug)] +pub struct TestVector { + pub key: &'static K, + pub nonce: &'static [u8; 12], + pub aad: &'static [u8], + pub plaintext: &'static [u8], + pub ciphertext: &'static [u8], + pub tag: &'static [u8; 16], +} + +#[macro_export] +macro_rules! tests { + ($aead:ty, $vectors:expr) => { + #[test] + fn encrypt() { + for vector in $vectors { + let key = GenericArray::from_slice(vector.key); + let nonce = GenericArray::from_slice(vector.nonce); + let payload = Payload { + msg: vector.plaintext, + aad: vector.aad, + }; + + let cipher = <$aead>::new(key); + let ciphertext = cipher.encrypt(nonce, payload).unwrap(); + let (ct, tag) = ciphertext.split_at(ciphertext.len() - 16); + assert_eq!(vector.ciphertext, ct); + assert_eq!(vector.tag, tag); + } + } + + #[test] + fn decrypt() { + for vector in $vectors { + let key = GenericArray::from_slice(vector.key); + let nonce = GenericArray::from_slice(vector.nonce); + let mut ciphertext = Vec::from(vector.ciphertext); + ciphertext.extend_from_slice(vector.tag); + + let payload = Payload { + msg: &ciphertext, + aad: vector.aad, + }; + + let cipher = <$aead>::new(key); + let plaintext = cipher.decrypt(nonce, payload).unwrap(); + + assert_eq!(vector.plaintext, plaintext.as_slice()); + } + } + + #[test] + fn decrypt_modified() { + let vector = &$vectors[0]; + let key = GenericArray::from_slice(vector.key); + let nonce = GenericArray::from_slice(vector.nonce); + + let mut ciphertext = Vec::from(vector.ciphertext); + ciphertext.extend_from_slice(vector.tag); + + // Tweak the first byte + ciphertext[0] ^= 0xaa; + + let payload = Payload { + msg: &ciphertext, + aad: vector.aad, + }; + + let cipher = <$aead>::new(key); + assert!(cipher.decrypt(nonce, payload).is_err()); + + // TODO(tarcieri): test ciphertext is unmodified in in-place API + } + }; +} diff --git a/tests/data/wycheproof-128.blb b/tests/data/wycheproof-128.blb new file mode 100644 index 0000000..5e4ea3f Binary files /dev/null and b/tests/data/wycheproof-128.blb differ diff --git a/tests/data/wycheproof-256.blb b/tests/data/wycheproof-256.blb new file mode 100644 index 0000000..1a37b69 Binary files /dev/null and b/tests/data/wycheproof-256.blb differ diff --git a/tests/other_ivlen.rs b/tests/other_ivlen.rs new file mode 100644 index 0000000..72fdd26 --- /dev/null +++ b/tests/other_ivlen.rs @@ -0,0 +1,81 @@ +//! Tests for AES-GCM when used with non-96-bit IVs. +//! +//! Vectors taken from NIST CAVS vectors' `gcmEncryptExtIV128.rsp` file +/// + +#[macro_use] +extern crate hex_literal; + +use aes_gcm::{ + aead::{ + generic_array::{typenum, GenericArray}, + Aead, NewAead, + }, + aes::Aes128, + AesGcm, +}; + +/// Based on the following `gcmEncryptExtIV128.rsp` test vector: +/// +/// [Keylen = 128] +/// [IVlen = 8] +/// [PTlen = 128] +/// [AADlen = 0] +/// [Taglen = 128] +/// +/// Count = 0 +mod ivlen8 { + use super::*; + + type Aes128GcmWith8BitNonce = AesGcm; + + #[test] + fn encrypt() { + let key = hex!("15b2d414826453f9e1c7dd0b69d8d1eb"); + let nonce = hex!("b6"); + let plaintext = hex!("8cfa255530c6fbc19d51bd4aeb39c91b"); + + let ciphertext = Aes128GcmWith8BitNonce::new(&key.into()) + .encrypt(GenericArray::from_slice(&nonce), &plaintext[..]) + .unwrap(); + + let (ct, tag) = ciphertext.split_at(ciphertext.len() - 16); + assert_eq!(hex!("4822cb98bd5f5d921ee19285c9032375"), ct); + assert_eq!(hex!("8a40670ebac98cf4e9cc1bf8f803167d"), tag); + } +} + +/// Based on the following `gcmEncryptExtIV128.rsp` test vector: +/// +/// [Keylen = 128] +/// [IVlen = 1024] +/// [PTlen = 128] +/// [AADlen = 0] +/// [Taglen = 128] +/// +/// Count = 0 +mod ivlen1024 { + use super::*; + + type Aes128GcmWith1024BitNonce = AesGcm; + + #[test] + fn encrypt() { + let key = hex!("71eebc49c8fb773b2224eaff3ad68714"); + let nonce = hex!( + "07e961e67784011f72faafd95b0eb64089c8de15ad685ec57e63d56e679d3e20 + 2b18b75fcbbec3185ffc41653bc2ac4ae6ae8be8c85636f353a9d19a86100d0b + d035cc6bdefcab4318ac7b1a08b819427ad8f6abc782466c6ebd4d6a0dd76e78 + 389b0a2a66506bb85f038ffc1da220c24f3817c7b2d02c5e8fc5e7e3be5074bc" + ); + let plaintext = hex!("705da82292143d2c949dc4ba014f6396"); + + let ciphertext = Aes128GcmWith1024BitNonce::new(&key.into()) + .encrypt(GenericArray::from_slice(&nonce), &plaintext[..]) + .unwrap(); + + let (ct, tag) = ciphertext.split_at(ciphertext.len() - 16); + assert_eq!(hex!("032363cf0828a03553478bec0f51f372"), ct); + assert_eq!(hex!("c681b2c568feaa21900bc44b86aeb946"), tag); + } +}