summaryrefslogtreecommitdiffstats
path: root/rust/vendor/aes-gcm
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--rust/vendor/aes-gcm/.cargo-checksum.json1
-rw-r--r--rust/vendor/aes-gcm/CHANGELOG.md141
-rw-r--r--rust/vendor/aes-gcm/Cargo.toml69
-rw-r--r--rust/vendor/aes-gcm/LICENSE-APACHE201
-rw-r--r--rust/vendor/aes-gcm/LICENSE-MIT25
-rw-r--r--rust/vendor/aes-gcm/README.md63
-rw-r--r--rust/vendor/aes-gcm/src/lib.rs343
-rw-r--r--rust/vendor/aes-gcm/tests/aes128gcm.rs3024
-rw-r--r--rust/vendor/aes-gcm/tests/aes256gcm.rs3024
-rw-r--r--rust/vendor/aes-gcm/tests/common/mod.rs78
-rw-r--r--rust/vendor/aes-gcm/tests/data/wycheproof-128.blbbin0 -> 4148 bytes
-rw-r--r--rust/vendor/aes-gcm/tests/data/wycheproof-256.blbbin0 -> 4383 bytes
-rw-r--r--rust/vendor/aes-gcm/tests/other_ivlen.rs81
13 files changed, 7050 insertions, 0 deletions
diff --git a/rust/vendor/aes-gcm/.cargo-checksum.json b/rust/vendor/aes-gcm/.cargo-checksum.json
new file mode 100644
index 0000000..ee48fe5
--- /dev/null
+++ b/rust/vendor/aes-gcm/.cargo-checksum.json
@@ -0,0 +1 @@
+{"files":{"CHANGELOG.md":"96c655e4ec9f5d9666f244e32e23945bb12424968d9b4b98f41b4d05cbadf169","Cargo.toml":"8c7c826ed3a62b72cf7889634f3ca34664eb04db2858412703239a25b718e35a","LICENSE-APACHE":"a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5","LICENSE-MIT":"3c0dfa33fd2e6976038555b52095699452653b1fcabe113074f14e0848a6b11e","README.md":"e0512531b6f157fcfb2d6362aadd1c16c0a31340a7fdbfffadc7b1e84a5ca40f","src/lib.rs":"d68651258fa8d618725b13be917d04a5507fcd3c089961e5d2b827be7a73fa6f","tests/aes128gcm.rs":"c074e1c1b8bdb4d963e472d8796e473ad33e6a681cfb140378783695b16de591","tests/aes256gcm.rs":"ea02e8ad5d2dca50817a860cb80b84b840fb15a6b21c0198f65a76895f8459ee","tests/common/mod.rs":"86201c4d9df6b1b6455010a8df781631509cc4b9dcf7863d47d038dd608f8859","tests/data/wycheproof-128.blb":"50031c7935b9c0608955601ca0aa573de58517aaa4986fc16550a91fa286ff8b","tests/data/wycheproof-256.blb":"d301c0cc24dccb3cdcb9db71b55e694d7dc31b166bf830ce2b3fc896567e1e1c","tests/other_ivlen.rs":"5509982e2df4fd09481dd6fcbe7489aa52cf52f4407a8bb58fc58710ae4b3fc7"},"package":"df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6"} \ No newline at end of file
diff --git a/rust/vendor/aes-gcm/CHANGELOG.md b/rust/vendor/aes-gcm/CHANGELOG.md
new file mode 100644
index 0000000..3f6ed68
--- /dev/null
+++ b/rust/vendor/aes-gcm/CHANGELOG.md
@@ -0,0 +1,141 @@
+# 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.4 (2021-08-28)
+### Changed
+- Relax `subtle` and `zeroize` requirements ([#360])
+
+[#360]: https://github.com/RustCrypto/AEADs/pull/360
+
+## 0.9.3 (2021-07-20)
+### Changed
+- Pin `zeroize` dependency to v1.3 and `subtle` to v2.4 ([#349])
+
+[#349]: https://github.com/RustCrypto/AEADs/pull/349
+
+## 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/rust/vendor/aes-gcm/Cargo.toml b/rust/vendor/aes-gcm/Cargo.toml
new file mode 100644
index 0000000..dc5a4c3
--- /dev/null
+++ b/rust/vendor/aes-gcm/Cargo.toml
@@ -0,0 +1,69 @@
+# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
+#
+# When uploading crates to the registry Cargo will automatically
+# "normalize" Cargo.toml files for maximal compatibility
+# with all versions of Cargo and also rewrite `path` dependencies
+# to registry (e.g., crates.io) dependencies
+#
+# If you believe there's an error in this file please file an
+# issue against the rust-lang/cargo repository. If you're
+# editing this file be aware that the upstream Cargo.toml
+# will likely look very different (and much more reasonable)
+
+[package]
+edition = "2018"
+name = "aes-gcm"
+version = "0.9.4"
+authors = ["RustCrypto Developers"]
+description = "Pure Rust implementation of the AES-GCM (Galois/Counter Mode)\nAuthenticated Encryption with Associated Data (AEAD) Cipher\nwith optional architecture-specific hardware acceleration\n"
+documentation = "https://docs.rs/aes-gcm"
+readme = "README.md"
+keywords = ["aead", "aes", "encryption", "gcm", "ghash"]
+categories = ["cryptography", "no-std"]
+license = "Apache-2.0 OR MIT"
+repository = "https://github.com/RustCrypto/AEADs"
+[package.metadata.docs.rs]
+all-features = true
+rustdoc-args = ["--cfg", "docsrs"]
+[dependencies.aead]
+version = "0.4"
+default-features = false
+
+[dependencies.aes]
+version = "0.7.5"
+optional = true
+
+[dependencies.cipher]
+version = "0.3"
+
+[dependencies.ctr]
+version = "0.8"
+
+[dependencies.ghash]
+version = "0.4.2"
+default-features = false
+
+[dependencies.subtle]
+version = ">=2, <2.5"
+default-features = false
+
+[dependencies.zeroize]
+version = ">=1, <1.4"
+optional = true
+default-features = false
+[dev-dependencies.aead]
+version = "0.4"
+features = ["dev"]
+default-features = false
+
+[dev-dependencies.hex-literal]
+version = "0.3"
+
+[features]
+alloc = ["aead/alloc"]
+armv8 = ["aes/armv8", "ghash/armv8"]
+default = ["aes", "alloc"]
+force-soft = ["aes/force-soft", "ghash/force-soft"]
+heapless = ["aead/heapless"]
+std = ["aead/std", "alloc"]
+stream = ["aead/stream"]
diff --git a/rust/vendor/aes-gcm/LICENSE-APACHE b/rust/vendor/aes-gcm/LICENSE-APACHE
new file mode 100644
index 0000000..78173fa
--- /dev/null
+++ b/rust/vendor/aes-gcm/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/rust/vendor/aes-gcm/LICENSE-MIT b/rust/vendor/aes-gcm/LICENSE-MIT
new file mode 100644
index 0000000..b7f5711
--- /dev/null
+++ b/rust/vendor/aes-gcm/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/rust/vendor/aes-gcm/README.md b/rust/vendor/aes-gcm/README.md
new file mode 100644
index 0000000..19f92ac
--- /dev/null
+++ b/rust/vendor/aes-gcm/README.md
@@ -0,0 +1,63 @@
+# RustCrypto: AES-GCM
+
+[![crate][crate-image]][crate-link]
+[![Docs][docs-image]][docs-link]
+![Apache2/MIT licensed][license-image]
+![Rust Version][rustc-image]
+[![Project Chat][chat-image]][chat-link]
+[![Crates.io Downloads][downloads-image]][crate-link]
+[![Build Status][build-image]][build-link]
+
+Pure Rust implementation of the AES-GCM
+[Authenticated Encryption with Associated Data (AEAD)][1] cipher.
+
+[Documentation][docs-link]
+
+## Security Notes
+
+This crate has received one [security audit by NCC Group][2], with no significant
+findings. We would like to thank [MobileCoin][3] 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).
+
+## License
+
+Licensed under either of:
+
+ * [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
+ * [MIT license](http://opensource.org/licenses/MIT)
+
+at your option.
+
+### Contribution
+
+Unless you explicitly state otherwise, any contribution intentionally submitted
+for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
+dual licensed as above, without any additional terms or conditions.
+
+[//]: # (badges)
+
+[crate-image]: https://img.shields.io/crates/v/aes-gcm.svg
+[crate-link]: https://crates.io/crates/aes-gcm
+[docs-image]: https://docs.rs/aes-gcm/badge.svg
+[docs-link]: https://docs.rs/aes-gcm/
+[license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg
+[rustc-image]: https://img.shields.io/badge/rustc-1.49+-blue.svg
+[chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg
+[chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260038-AEADs
+[downloads-image]: https://img.shields.io/crates/d/aes-gcm.svg
+[build-image]: https://github.com/RustCrypto/AEADs/workflows/aes-gcm/badge.svg?branch=master&event=push
+[build-link]: https://github.com/RustCrypto/AEADs/actions
+
+[//]: # (general links)
+
+[1]: https://en.wikipedia.org/wiki/Authenticated_encryption
+[2]: https://research.nccgroup.com/2020/02/26/public-report-rustcrypto-aes-gcm-and-chacha20poly1305-implementation-review/
+[3]: https://www.mobilecoin.com/
diff --git a/rust/vendor/aes-gcm/src/lib.rs b/rust/vendor/aes-gcm/src/lib.rs
new file mode 100644
index 0000000..1a03cf6
--- /dev/null
+++ b/rust/vendor/aes-gcm/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<u8, 128> = 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<KeySize> = GenericArray<u8, KeySize>;
+
+/// AES-GCM nonces
+pub type Nonce<NonceSize> = GenericArray<u8, NonceSize>;
+
+/// AES-GCM tags
+pub type Tag = GenericArray<u8, U16>;
+
+/// 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<Aes128, U12>;
+
+/// 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<Aes256, U12>;
+
+/// 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<Aes, NonceSize>
+where
+ Aes: BlockCipher<BlockSize = U16> + BlockEncrypt,
+ Aes::ParBlocks: ArrayLength<Block<Aes>>,
+ NonceSize: ArrayLength<u8>,
+{
+ /// Encryption cipher
+ cipher: Aes,
+
+ /// GHASH authenticator
+ ghash: GHash,
+
+ /// Length of the nonce
+ nonce_size: PhantomData<NonceSize>,
+}
+
+impl<Aes, NonceSize> NewAead for AesGcm<Aes, NonceSize>
+where
+ Aes: NewBlockCipher + BlockCipher<BlockSize = U16> + BlockEncrypt,
+ Aes::ParBlocks: ArrayLength<Block<Aes>>,
+ NonceSize: ArrayLength<u8>,
+{
+ type KeySize = Aes::KeySize;
+
+ fn new(key: &BlockCipherKey<Aes>) -> Self {
+ Aes::new(key).into()
+ }
+}
+
+impl<Aes, NonceSize> From<Aes> for AesGcm<Aes, NonceSize>
+where
+ Aes: NewBlockCipher + BlockCipher<BlockSize = U16> + BlockEncrypt,
+ Aes::ParBlocks: ArrayLength<Block<Aes>>,
+ NonceSize: ArrayLength<u8>,
+{
+ 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<Aes, NonceSize> AeadCore for AesGcm<Aes, NonceSize>
+where
+ Aes: NewBlockCipher + BlockCipher<BlockSize = U16> + BlockEncrypt,
+ Aes::ParBlocks: ArrayLength<Block<Aes>>,
+ NonceSize: ArrayLength<u8>,
+{
+ type NonceSize = NonceSize;
+ type TagSize = U16;
+ type CiphertextOverhead = U0;
+}
+
+impl<Aes, NonceSize> AeadInPlace for AesGcm<Aes, NonceSize>
+where
+ Aes: NewBlockCipher + BlockCipher<BlockSize = U16> + BlockEncrypt,
+ Aes::ParBlocks: ArrayLength<Block<Aes>>,
+ NonceSize: ArrayLength<u8>,
+{
+ fn encrypt_in_place_detached(
+ &self,
+ nonce: &Nonce<Self::NonceSize>,
+ associated_data: &[u8],
+ buffer: &mut [u8],
+ ) -> Result<Tag, Error> {
+ if buffer.len() as u64 > P_MAX || associated_data.len() as u64 > A_MAX {
+ return Err(Error);
+ }
+
+ // TODO(tarcieri): interleave encryption with GHASH
+ // See: <https://github.com/RustCrypto/AEADs/issues/74>
+ 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<Self::NonceSize>,
+ 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: <https://github.com/RustCrypto/AEADs/issues/74>
+ 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<Aes, NonceSize> AesGcm<Aes, NonceSize>
+where
+ Aes: NewBlockCipher + BlockCipher<BlockSize = U16> + BlockEncrypt,
+ Aes::ParBlocks: ArrayLength<Block<Aes>>,
+ NonceSize: ArrayLength<u8>,
+{
+ /// Initialize counter mode.
+ ///
+ /// See algorithm described in Section 7.2 of NIST SP800-38D:
+ /// <https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf>
+ ///
+ /// > 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<NonceSize>) -> 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/rust/vendor/aes-gcm/tests/aes128gcm.rs b/rust/vendor/aes-gcm/tests/aes128gcm.rs
new file mode 100644
index 0000000..a8e0cc8
--- /dev/null
+++ b/rust/vendor/aes-gcm/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
+///
+/// <https://csrc.nist.gov/Projects/cryptographic-algorithm-validation-program/CAVP-TESTING-BLOCK-CIPHER-MODES>
+///
+/// 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/rust/vendor/aes-gcm/tests/aes256gcm.rs b/rust/vendor/aes-gcm/tests/aes256gcm.rs
new file mode 100644
index 0000000..8784067
--- /dev/null
+++ b/rust/vendor/aes-gcm/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
+///
+/// <https://csrc.nist.gov/Projects/cryptographic-algorithm-validation-program/CAVP-TESTING-BLOCK-CIPHER-MODES>
+///
+/// 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/rust/vendor/aes-gcm/tests/common/mod.rs b/rust/vendor/aes-gcm/tests/common/mod.rs
new file mode 100644
index 0000000..d8f2eb5
--- /dev/null
+++ b/rust/vendor/aes-gcm/tests/common/mod.rs
@@ -0,0 +1,78 @@
+//! Common functionality shared by tests
+
+/// Test vectors
+#[derive(Debug)]
+pub struct TestVector<K: 'static> {
+ 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/rust/vendor/aes-gcm/tests/data/wycheproof-128.blb b/rust/vendor/aes-gcm/tests/data/wycheproof-128.blb
new file mode 100644
index 0000000..5e4ea3f
--- /dev/null
+++ b/rust/vendor/aes-gcm/tests/data/wycheproof-128.blb
Binary files differ
diff --git a/rust/vendor/aes-gcm/tests/data/wycheproof-256.blb b/rust/vendor/aes-gcm/tests/data/wycheproof-256.blb
new file mode 100644
index 0000000..1a37b69
--- /dev/null
+++ b/rust/vendor/aes-gcm/tests/data/wycheproof-256.blb
Binary files differ
diff --git a/rust/vendor/aes-gcm/tests/other_ivlen.rs b/rust/vendor/aes-gcm/tests/other_ivlen.rs
new file mode 100644
index 0000000..72fdd26
--- /dev/null
+++ b/rust/vendor/aes-gcm/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
+/// <https://csrc.nist.gov/Projects/cryptographic-algorithm-validation-program/CAVP-TESTING-BLOCK-CIPHER-MODES>
+
+#[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<Aes128, typenum::U1>;
+
+ #[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<Aes128, typenum::U128>;
+
+ #[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);
+ }
+}