From 3a1f5a13c4cb0c792773b5fe80b0c67a839bb0e5 Mon Sep 17 00:00:00 2001 From: daxpedda Date: Mon, 14 Feb 2022 17:41:13 +0100 Subject: [PATCH 1/2] Bump dependencies --- Cargo.lock | 132 ++++++++++++++++++---------------- Cargo.toml | 6 ++ aes-gcm-siv/CHANGELOG.md | 7 ++ aes-gcm-siv/Cargo.toml | 12 ++-- aes-gcm-siv/src/lib.rs | 39 +++++----- aes-gcm/CHANGELOG.md | 7 ++ aes-gcm/Cargo.toml | 12 ++-- aes-gcm/src/lib.rs | 4 +- aes-siv/CHANGELOG.md | 9 +++ aes-siv/Cargo.toml | 12 ++-- aes-siv/src/siv.rs | 9 ++- ccm/CHANGELOG.md | 5 ++ ccm/Cargo.toml | 8 +-- ccm/src/lib.rs | 26 +++---- chacha20poly1305/CHANGELOG.md | 6 ++ chacha20poly1305/Cargo.toml | 8 +-- chacha20poly1305/src/lib.rs | 51 ++++++++++--- deoxys/CHANGELOG.md | 5 ++ deoxys/Cargo.toml | 4 +- deoxys/src/lib.rs | 9 ++- deoxys/src/modes.rs | 12 ++-- eax/CHANGELOG.md | 6 ++ eax/Cargo.toml | 8 +-- mgm/CHANGELOG.md | 4 ++ mgm/Cargo.toml | 8 +-- mgm/src/encdec.rs | 22 +++--- mgm/src/lib.rs | 12 ++-- mgm/src/sealed.rs | 4 +- xsalsa20poly1305/CHANGELOG.md | 5 ++ xsalsa20poly1305/Cargo.toml | 4 +- xsalsa20poly1305/src/lib.rs | 4 +- 31 files changed, 290 insertions(+), 170 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f35743ec..f4bfc14e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -16,14 +16,13 @@ dependencies = [ [[package]] name = "aes" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" +checksum = "0f6c3373fb58bb23c6ed0f191f915f0e9459c6929fc430c0d74b8237c521953a" dependencies = [ "cfg-if", "cipher", "cpufeatures", - "opaque-debug", ] [[package]] @@ -35,7 +34,7 @@ dependencies = [ "cipher", "ctr", "ghash", - "hex-literal 0.3.3", + "hex-literal", "subtle", "zeroize", ] @@ -65,7 +64,7 @@ dependencies = [ "crypto-mac", "ctr", "dbl", - "hex-literal 0.3.3", + "hex-literal", "pmac", "zeroize", ] @@ -76,6 +75,15 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "847495c209977a90e8aad588b959d0ca9f5dc228096d29a6bd3defd53f35eaec" +[[package]] +name = "block-buffer" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +dependencies = [ + "generic-array", +] + [[package]] name = "byteorder" version = "1.4.3" @@ -90,7 +98,7 @@ dependencies = [ "aes", "cipher", "ctr", - "hex-literal 0.2.1", + "hex-literal", "subtle", ] @@ -102,14 +110,12 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chacha20" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01b72a433d0cf2aef113ba70f62634c56fddb0f244e6377185c56a7cadbd8f91" +version = "0.9.0" +source = "git+https://github.com/RustCrypto/stream-ciphers#610e7685495c997df4232606439e1b12e59f4147" dependencies = [ "cfg-if", "cipher", "cpufeatures", - "zeroize", ] [[package]] @@ -125,21 +131,24 @@ dependencies = [ [[package]] name = "cipher" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +checksum = "a4f3e8c9be82c31c331bc9db0fd70a1068f8a288d980b2414dcaa25ab17ac1e0" dependencies = [ - "generic-array", + "crypto-common", + "inout", + "zeroize", ] [[package]] name = "cmac" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b70e37282d9624283878ffda1d1e53883bcf868cf441bddda44127620b39572d" +checksum = "4e6be0f81cc4aafc2f8fadf52f889044b62ec13222e06d1a968919c78f9a7cb2" dependencies = [ - "crypto-mac", + "cipher", "dbl", + "digest", ] [[package]] @@ -151,22 +160,30 @@ dependencies = [ "libc", ] +[[package]] +name = "crypto-common" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4600d695eb3f6ce1cd44e6e291adceb2cc3ab12f20a33777ecd0bf6eba34e06" +dependencies = [ + "generic-array", +] + [[package]] name = "crypto-mac" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" dependencies = [ - "cipher", "generic-array", "subtle", ] [[package]] name = "ctr" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" +checksum = "60285fea15f574bab32ef340b8283047ea25af2c056ca54e1518300c3091b88f" dependencies = [ "cipher", ] @@ -186,11 +203,22 @@ version = "0.0.2" dependencies = [ "aead", "aes", - "hex-literal 0.3.3", + "hex-literal", "subtle", "zeroize", ] +[[package]] +name = "digest" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cb780dce4f9a8f5c087362b3a4595936b2019e7c8b30f2c3e9a7e94e6ae9837" +dependencies = [ + "block-buffer", + "crypto-common", + "subtle", +] + [[package]] name = "eax" version = "0.4.1" @@ -227,8 +255,7 @@ dependencies = [ [[package]] name = "ghash" version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" +source = "git+https://github.com/RustCrypto/universal-hashes#890e5abf08a1b941aa946398a36c981fe78c10a3" dependencies = [ "opaque-debug", "polyval", @@ -253,16 +280,6 @@ dependencies = [ "stable_deref_trait", ] -[[package]] -name = "hex-literal" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "961de220ec9a91af2e1e5bd80d02109155695e516771762381ef8581317066e0" -dependencies = [ - "hex-literal-impl", - "proc-macro-hack", -] - [[package]] name = "hex-literal" version = "0.3.3" @@ -270,19 +287,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21e4590e13640f19f249fe3e4eca5113bc4289f2497710378190e7f4bd96f45b" [[package]] -name = "hex-literal-impl" -version = "0.2.2" +name = "inout" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "853f769599eb31de176303197b7ba4973299c38c7a7604a6bc88c3eef05b9b46" +checksum = "9e1f03d4ab4d5dc9ec2d219f86c15d2a15fc08239d1cd3b2d6a19717c0a2f443" dependencies = [ - "proc-macro-hack", + "generic-array", ] [[package]] name = "kuznyechik" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a4e0a85306cf7cdcd497111b9ecd8df4da5290bacd3cc2f426ce3fb2c0a327e" +checksum = "c6b8a760d5bebee051e542981fd2a562a6e8265c3262bfec1fd0ee3a0ea37f65" dependencies = [ "cipher", ] @@ -295,12 +312,11 @@ checksum = "3cb00336871be5ed2c8ed44b60ae9959dc5b9f08539422ed43f09e34ecaeba21" [[package]] name = "magma" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53792c7fca348c3d880c5ab2b0a2378a28edca57d080feabc4b60b4633dff91b" +checksum = "c6a003780e63ac83d9e21e3ee2ec69e9ca860b220ea97476bde316ad1a5bb071" dependencies = [ "cipher", - "opaque-debug", ] [[package]] @@ -311,7 +327,7 @@ dependencies = [ "cfg-if", "cipher", "cpufeatures", - "hex-literal 0.2.1", + "hex-literal", "kuznyechik", "magma", "subtle", @@ -325,19 +341,19 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "pmac" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d8c6aafab3b7131a8be27ae259e545c20c067163c39897419686684de0e013" +checksum = "fb48a58ca02a8b176de90c7d4ea8a52b5d2bee4440c25aae3808c76a0a026f2b" dependencies = [ - "crypto-mac", + "cipher", "dbl", + "digest", ] [[package]] name = "poly1305" version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" +source = "git+https://github.com/RustCrypto/universal-hashes#890e5abf08a1b941aa946398a36c981fe78c10a3" dependencies = [ "cpufeatures", "opaque-debug", @@ -347,8 +363,7 @@ dependencies = [ [[package]] name = "polyval" version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" +source = "git+https://github.com/RustCrypto/universal-hashes#890e5abf08a1b941aa946398a36c981fe78c10a3" dependencies = [ "cfg-if", "cpufeatures", @@ -356,12 +371,6 @@ dependencies = [ "universal-hash", ] -[[package]] -name = "proc-macro-hack" -version = "0.5.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" - [[package]] name = "rand_core" version = "0.6.3" @@ -373,12 +382,11 @@ dependencies = [ [[package]] name = "salsa20" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0fbb5f676da676c260ba276a8f43a8dc67cf02d1438423aeb1c677a7212686" +checksum = "24215305ba9f5ce6f223e02bca7490724eb398c6c78349c7b71bb3bcef89d8eb" dependencies = [ "cipher", - "zeroize", ] [[package]] @@ -395,9 +403,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "typenum" -version = "1.13.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "universal-hash" @@ -435,6 +443,6 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.3.0" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" +checksum = "7c88870063c39ee00ec285a2f8d6a966e5b6fb2becc4e8dac77ed0d370ed6006" diff --git a/Cargo.toml b/Cargo.toml index f1928947..5495592f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,3 +10,9 @@ members = [ "mgm", "xsalsa20poly1305" ] + +[patch.crates-io] +chacha20 = { git = "https://github.com/RustCrypto/stream-ciphers" } +ghash = { git = "https://github.com/RustCrypto/universal-hashes" } +poly1305 = { git = "https://github.com/RustCrypto/universal-hashes" } +polyval = { git = "https://github.com/RustCrypto/universal-hashes" } diff --git a/aes-gcm-siv/CHANGELOG.md b/aes-gcm-siv/CHANGELOG.md index 6fb696a9..0dca1c53 100644 --- a/aes-gcm-siv/CHANGELOG.md +++ b/aes-gcm-siv/CHANGELOG.md @@ -4,6 +4,13 @@ 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). +## Unreleased +### Changed +- Bump `aes` crate dependency to v0.8 ([#387]) +- Bump `cipher` crate dependency to v0.4 ([#387]) +- Bump `ctr` crate dependency to v0.9 ([#387]) +- Bump `zeroize` crate dependency to v1.5 ([#387]) + ## 0.10.3 (2021-08-28) ### Changed - Relax `subtle` and `zeroize` requirements ([#360]) diff --git a/aes-gcm-siv/Cargo.toml b/aes-gcm-siv/Cargo.toml index aaf80238..0706c953 100644 --- a/aes-gcm-siv/Cargo.toml +++ b/aes-gcm-siv/Cargo.toml @@ -17,12 +17,12 @@ categories = ["cryptography", "no-std"] [dependencies] aead = { version = "0.4", default-features = false } -aes = { version = "0.7.5", optional = true } -cipher = "0.3" -ctr = "0.8" +aes = { version = "0.8", optional = true } +cipher = "0.4" +ctr = "0.9" polyval = { version = "0.5.1", default-features = false } subtle = { version = ">=2, <2.5", default-features = false } -zeroize = { version = ">=1, <1.4", default-features = false } +zeroize = { version = "1.5", default-features = false } [dev-dependencies] aead = { version = "0.4", features = ["dev"], default-features = false } @@ -31,8 +31,8 @@ aead = { version = "0.4", features = ["dev"], default-features = false } default = ["aes", "alloc"] std = ["aead/std", "alloc"] alloc = ["aead/alloc"] -armv8 = ["aes/armv8", "polyval/armv8"] # nightly-only -force-soft = ["aes/force-soft", "polyval/force-soft"] +armv8 = ["polyval/armv8"] # nightly-only +force-soft = ["polyval/force-soft"] heapless = ["aead/heapless"] stream = ["aead/stream"] diff --git a/aes-gcm-siv/src/lib.rs b/aes-gcm-siv/src/lib.rs index 15ee5e08..03ea135d 100644 --- a/aes-gcm-siv/src/lib.rs +++ b/aes-gcm-siv/src/lib.rs @@ -133,7 +133,7 @@ use aead::{AeadCore, AeadInPlace, Error, NewAead}; use cipher::{ consts::{U0, U12, U16}, generic_array::{typenum::Unsigned, ArrayLength, GenericArray}, - Block, BlockCipher, BlockEncrypt, FromBlockCipher, NewBlockCipher, StreamCipher, + Block, BlockCipher, BlockEncrypt, KeyInit, ParBlocksSizeUser, StreamCipher, }; use ctr::Ctr32LE; use polyval::{ @@ -176,8 +176,8 @@ pub type Aes256GcmSiv = AesGcmSiv; #[derive(Clone)] pub struct AesGcmSiv where - Aes: BlockCipher + BlockEncrypt, - Aes::ParBlocks: ArrayLength>, + Aes: BlockCipher + BlockEncrypt + ParBlocksSizeUser, + Aes::ParBlocksSize: ArrayLength>, { /// Key generating key used to derive AES-GCM-SIV subkeys key_generating_key: Aes, @@ -185,8 +185,8 @@ where impl NewAead for AesGcmSiv where - Aes: NewBlockCipher + BlockCipher + BlockEncrypt, - Aes::ParBlocks: ArrayLength>, + Aes: KeyInit + BlockCipher + BlockEncrypt + ParBlocksSizeUser, + Aes::ParBlocksSize: ArrayLength>, { type KeySize = Aes::KeySize; @@ -199,8 +199,8 @@ where impl From for AesGcmSiv where - Aes: BlockCipher + BlockEncrypt, - Aes::ParBlocks: ArrayLength>, + Aes: BlockCipher + BlockEncrypt + ParBlocksSizeUser, + Aes::ParBlocksSize: ArrayLength>, { fn from(key_generating_key: Aes) -> Self { Self { key_generating_key } @@ -209,8 +209,8 @@ where impl AeadCore for AesGcmSiv where - Aes: NewBlockCipher + BlockCipher + BlockEncrypt, - Aes::ParBlocks: ArrayLength>, + Aes: KeyInit + BlockCipher + BlockEncrypt + ParBlocksSizeUser, + Aes::ParBlocksSize: ArrayLength>, { type NonceSize = U12; type TagSize = U16; @@ -219,8 +219,8 @@ where impl AeadInPlace for AesGcmSiv where - Aes: NewBlockCipher + BlockCipher + BlockEncrypt, - Aes::ParBlocks: ArrayLength>, + Aes: KeyInit + BlockCipher + BlockEncrypt + ParBlocksSizeUser, + Aes::ParBlocksSize: ArrayLength>, { fn encrypt_in_place_detached( &self, @@ -250,8 +250,8 @@ where /// AES-GCM-SIV: Misuse-Resistant Authenticated Encryption Cipher (RFC 8452) struct Cipher where - Aes: BlockCipher + BlockEncrypt, - Aes::ParBlocks: ArrayLength>, + Aes: BlockCipher + BlockEncrypt + ParBlocksSizeUser, + Aes::ParBlocksSize: ArrayLength>, { /// Encryption cipher enc_cipher: Aes, @@ -265,8 +265,8 @@ where impl Cipher where - Aes: NewBlockCipher + BlockCipher + BlockEncrypt, - Aes::ParBlocks: ArrayLength>, + Aes: KeyInit + BlockCipher + BlockEncrypt + ParBlocksSizeUser, + Aes::ParBlocksSize: ArrayLength>, { /// Initialize AES-GCM-SIV, deriving per-nonce message-authentication and /// message-encryption keys. @@ -349,7 +349,8 @@ where self.polyval.update_padded(associated_data); let mut ctr = init_ctr(&self.enc_cipher, tag); - for chunk in buffer.chunks_mut(Aes::BlockSize::to_usize() * Aes::ParBlocks::to_usize()) { + for chunk in buffer.chunks_mut(Aes::BlockSize::to_usize() * Aes::ParBlocksSize::to_usize()) + { ctr.apply_keystream(chunk); self.polyval.update_padded(chunk); } @@ -406,10 +407,10 @@ where /// /// > The initial counter block is the tag with the most significant bit /// > of the last byte set to one. -fn init_ctr(cipher: Aes, nonce: &cipher::Block) -> Ctr32LE +fn init_ctr(cipher: &Aes, nonce: &cipher::Block) -> Ctr32LE where - Aes: BlockCipher + BlockEncrypt, - Aes::ParBlocks: ArrayLength>, + Aes: BlockCipher + BlockEncrypt + ParBlocksSizeUser, + Aes::ParBlocksSize: ArrayLength>, { let mut counter_block = *nonce; counter_block[15] |= 0x80; diff --git a/aes-gcm/CHANGELOG.md b/aes-gcm/CHANGELOG.md index 3f6ed681..4d0d3d14 100644 --- a/aes-gcm/CHANGELOG.md +++ b/aes-gcm/CHANGELOG.md @@ -4,6 +4,13 @@ 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). +## Unreleased +### Changed +- Bump `aes` crate dependency to v0.8 ([#387]) +- Bump `cipher` crate dependency to v0.4 ([#387]) +- Bump `ctr` crate dependency to v0.9 ([#387]) +- Bump `zeroize` crate dependency to v1.5 ([#387]) + ## 0.9.4 (2021-08-28) ### Changed - Relax `subtle` and `zeroize` requirements ([#360]) diff --git a/aes-gcm/Cargo.toml b/aes-gcm/Cargo.toml index 304afda7..56ae618f 100644 --- a/aes-gcm/Cargo.toml +++ b/aes-gcm/Cargo.toml @@ -17,12 +17,12 @@ categories = ["cryptography", "no-std"] [dependencies] aead = { version = "0.4", default-features = false } -aes = { version = "0.7.5", optional = true } -cipher = "0.3" -ctr = "0.8" +aes = { version = "0.8", optional = true } +cipher = "0.4" +ctr = "0.9" ghash = { version = "0.4.2", default-features = false } subtle = { version = ">=2, <2.5", default-features = false } -zeroize = { version = ">=1, <1.4", optional = true, default-features = false } +zeroize = { version = "1.5", optional = true, default-features = false } [dev-dependencies] aead = { version = "0.4", features = ["dev"], default-features = false } @@ -32,8 +32,8 @@ hex-literal = "0.3" default = ["aes", "alloc"] std = ["aead/std", "alloc"] alloc = ["aead/alloc"] -armv8 = ["aes/armv8", "ghash/armv8"] # nightly-only -force-soft = ["aes/force-soft", "ghash/force-soft"] +armv8 = ["ghash/armv8"] # nightly-only +force-soft = ["ghash/force-soft"] heapless = ["aead/heapless"] stream = ["aead/stream"] diff --git a/aes-gcm/src/lib.rs b/aes-gcm/src/lib.rs index 1a03cf69..1e3480ee 100644 --- a/aes-gcm/src/lib.rs +++ b/aes-gcm/src/lib.rs @@ -113,8 +113,8 @@ pub use aes; use cipher::{ consts::{U0, U16}, generic_array::{typenum::Unsigned, ArrayLength, GenericArray}, - Block, BlockCipher, BlockCipherKey, BlockEncrypt, FromBlockCipher, NewBlockCipher, - StreamCipher, StreamCipherSeek, + Block, BlockCipher, BlockCipherKey, BlockEncrypt, FromBlockCipher, KeyInit, StreamCipher, + StreamCipherSeek, }; use core::marker::PhantomData; use ctr::Ctr32BE; diff --git a/aes-siv/CHANGELOG.md b/aes-siv/CHANGELOG.md index 4c919365..e53d5bb2 100644 --- a/aes-siv/CHANGELOG.md +++ b/aes-siv/CHANGELOG.md @@ -4,6 +4,15 @@ 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). +## Unreleased +### Changed +- Bump `aes` crate dependency to v0.8 ([#387]) +- Bump `cipher` crate dependency to v0.4 ([#387]) +- Bump `cmac` crate dependency to v0.7 ([#387]) +- Bump `ctr` crate dependency to v0.9 ([#387]) +- Bump `pmac` crate dependency to v0.7 ([#387]) +- Bump `zeroize` crate dependency to v1.5 ([#387]) + ## 0.6.2 (2021-07-20) ### Changed - Pin `zeroize` dependency to v1.3 ([#349]) diff --git a/aes-siv/Cargo.toml b/aes-siv/Cargo.toml index 355278f5..d15870a3 100644 --- a/aes-siv/Cargo.toml +++ b/aes-siv/Cargo.toml @@ -17,14 +17,14 @@ categories = ["cryptography", "no-std"] [dependencies] aead = "0.4" -aes = "0.7" -cipher = "0.3" -cmac = "0.6" +aes = "0.8" +cipher = "0.4" +cmac = "0.7" crypto-mac = "0.11" -ctr = "0.8" +ctr = "0.9" dbl = "0.3" -pmac = { version = "0.6", optional = true } -zeroize = { version = ">=1, <1.4", default-features = false } +pmac = { version = "0.7", optional = true } +zeroize = { version = "1.5", default-features = false } [dev-dependencies] blobby = "0.3" diff --git a/aes-siv/src/siv.rs b/aes-siv/src/siv.rs index 567e52db..6470b70d 100644 --- a/aes-siv/src/siv.rs +++ b/aes-siv/src/siv.rs @@ -16,7 +16,7 @@ use core::ops::Add; use crypto_mac::{Mac, NewMac}; use ctr::Ctr128BE; use dbl::Dbl; -use zeroize::Zeroize; +use zeroize::{Zeroize, ZeroizeOnDrop}; #[cfg(feature = "alloc")] use alloc::vec::Vec; @@ -242,6 +242,13 @@ where } } +impl ZeroizeOnDrop for Siv +where + C: NewCipher + StreamCipher, + M: Mac, +{ +} + impl Drop for Siv where C: NewCipher + StreamCipher, diff --git a/ccm/CHANGELOG.md b/ccm/CHANGELOG.md index 856ed730..fbc1270f 100644 --- a/ccm/CHANGELOG.md +++ b/ccm/CHANGELOG.md @@ -4,6 +4,11 @@ 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). +## Unreleased +### Changed +- Bump `cipher` crate dependency to v0.4 ([#387]) +- Bump `ctr` crate dependency to v0.9 ([#387]) + ## 0.4.4 (2021-07-20) ### Changed - Pin `subtle` dependency to v2.4 ([#349]) diff --git a/ccm/Cargo.toml b/ccm/Cargo.toml index f91e176e..217446a8 100644 --- a/ccm/Cargo.toml +++ b/ccm/Cargo.toml @@ -14,14 +14,14 @@ keywords = ["encryption", "aead"] [dependencies] aead = { version = "0.4", default-features = false } -cipher = { version = "0.3", default-features = false } -ctr = { version = "0.8", default-features = false } +cipher = { version = "0.4", default-features = false } +ctr = { version = "0.9", default-features = false } subtle = { version = ">=2, <2.5", default-features = false } [dev-dependencies] aead = { version = "0.4", features = ["dev"], default-features = false } -aes = { version = "0.7", features = ["force-soft"] } # Uses `force-soft` for MSRV 1.41 -hex-literal = "0.2" +aes = "0.8" +hex-literal = "0.3" [features] default = ["alloc"] diff --git a/ccm/src/lib.rs b/ccm/src/lib.rs index 68421e48..4c3e1732 100644 --- a/ccm/src/lib.rs +++ b/ccm/src/lib.rs @@ -51,7 +51,7 @@ use aead::{ generic_array::{typenum::Unsigned, ArrayLength, GenericArray}, AeadCore, AeadInPlace, Error, Key, NewAead, }; -use cipher::{Block, BlockCipher, BlockEncrypt, FromBlockCipher, NewBlockCipher, StreamCipher}; +use cipher::{Block, BlockCipher, BlockEncrypt, KeyInit, ParBlocksSizeUser}; use core::marker::PhantomData; use ctr::{Ctr32BE, Ctr64BE}; use subtle::ConstantTimeEq; @@ -95,8 +95,8 @@ impl NonceSize for T {} #[derive(Clone)] pub struct Ccm where - C: BlockCipher + BlockEncrypt, - C::ParBlocks: ArrayLength>, + C: BlockCipher + BlockEncrypt + ParBlocksSizeUser, + C::ParBlocksSize: ArrayLength>, M: ArrayLength + TagSize, N: ArrayLength + NonceSize, { @@ -106,8 +106,8 @@ where impl Ccm where - C: BlockCipher + BlockEncrypt, - C::ParBlocks: ArrayLength>, + C: BlockCipher + BlockEncrypt + ParBlocksSizeUser, + C::ParBlocksSize: ArrayLength>, M: ArrayLength + TagSize, N: ArrayLength + NonceSize, { @@ -173,8 +173,8 @@ where impl From for Ccm where - C: BlockCipher + BlockEncrypt + NewBlockCipher, - C::ParBlocks: ArrayLength>, + C: BlockCipher + BlockEncrypt + KeyInit + ParBlocksSizeUser, + C::ParBlocksSize: ArrayLength>, M: ArrayLength + TagSize, N: ArrayLength + NonceSize, { @@ -188,8 +188,8 @@ where impl NewAead for Ccm where - C: BlockCipher + BlockEncrypt + NewBlockCipher, - C::ParBlocks: ArrayLength>, + C: BlockCipher + BlockEncrypt + KeyInit + ParBlocksSizeUser, + C::ParBlocksSize: ArrayLength>, M: ArrayLength + TagSize, N: ArrayLength + NonceSize, { @@ -202,8 +202,8 @@ where impl AeadCore for Ccm where - C: BlockCipher + BlockEncrypt, - C::ParBlocks: ArrayLength>, + C: BlockCipher + BlockEncrypt + ParBlocksSizeUser, + C::ParBlocksSize: ArrayLength>, M: ArrayLength + TagSize, N: ArrayLength + NonceSize, { @@ -214,8 +214,8 @@ where impl AeadInPlace for Ccm where - C: BlockCipher + BlockEncrypt, - C::ParBlocks: ArrayLength>, + C: BlockCipher + BlockEncrypt + ParBlocksSizeUser, + C::ParBlocksSize: ArrayLength>, M: ArrayLength + TagSize, N: ArrayLength + NonceSize, { diff --git a/chacha20poly1305/CHANGELOG.md b/chacha20poly1305/CHANGELOG.md index 1036b68f..f7939ef8 100644 --- a/chacha20poly1305/CHANGELOG.md +++ b/chacha20poly1305/CHANGELOG.md @@ -4,6 +4,12 @@ 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). +## Unreleased +### Changed +- Bump `cipher` crate dependency to v0.4 ([#387]) +- Bump `chacha20` crate dependency to v0.9 ([#387]) +- Bump `zeroize` crate dependency to v1.5 ([#387]) + ## 0.9.0 (2021-08-29) ### Changed - Bump `chacha20` to v0.9: now a hard dependency ([#365]) diff --git a/chacha20poly1305/Cargo.toml b/chacha20poly1305/Cargo.toml index 888ad869..0e4ab323 100644 --- a/chacha20poly1305/Cargo.toml +++ b/chacha20poly1305/Cargo.toml @@ -19,10 +19,10 @@ categories = ["cryptography", "no-std"] [dependencies] aead = { version = "0.4", default-features = false } -chacha20 = { version = "0.8", features = ["zeroize"] } -cipher = "0.3" +chacha20 = { version = "0.9", features = ["zeroize"] } +cipher = "0.4" poly1305 = "0.7" -zeroize = { version = ">=1, <1.5", default-features = false } +zeroize = { version = "1.5", default-features = false } [dev-dependencies] aead = { version = "0.4", features = ["dev"], default-features = false } @@ -34,7 +34,7 @@ alloc = ["aead/alloc"] heapless = ["aead/heapless"] stream = ["aead/stream"] reduced-round = [] -force-soft = ["chacha20/force-soft", "poly1305/force-soft"] +force-soft = ["poly1305/force-soft"] [package.metadata.docs.rs] all-features = true diff --git a/chacha20poly1305/src/lib.rs b/chacha20poly1305/src/lib.rs index 371c5cd4..27aa9868 100644 --- a/chacha20poly1305/src/lib.rs +++ b/chacha20poly1305/src/lib.rs @@ -158,14 +158,14 @@ mod cipher; pub use aead; use self::cipher::Cipher; -use ::cipher::{NewCipher, StreamCipher, StreamCipherSeek}; +use ::cipher::{IvSizeUser, KeyIvInit, KeySizeUser, StreamCipher, StreamCipherSeek}; use aead::{ consts::{U0, U12, U16, U24, U32}, generic_array::{ArrayLength, GenericArray}, AeadCore, AeadInPlace, Error, NewAead, }; use core::marker::PhantomData; -use zeroize::Zeroize; +use zeroize::{Zeroize, ZeroizeOnDrop}; use chacha20::{ChaCha20, XChaCha20}; @@ -226,7 +226,11 @@ pub type XChaCha12Poly1305 = ChaChaPoly1305; /// See the [toplevel documentation](index.html) for a usage example. pub struct ChaChaPoly1305 = U12> where - C: NewCipher + StreamCipher + StreamCipherSeek, + C: KeyIvInit + + KeySizeUser + + IvSizeUser + + StreamCipher + + StreamCipherSeek, { /// Secret key key: GenericArray, @@ -237,7 +241,11 @@ where impl NewAead for ChaChaPoly1305 where - C: NewCipher + StreamCipher + StreamCipherSeek, + C: KeyIvInit + + KeySizeUser + + IvSizeUser + + StreamCipher + + StreamCipherSeek, N: ArrayLength, { type KeySize = U32; @@ -252,7 +260,11 @@ where impl AeadCore for ChaChaPoly1305 where - C: NewCipher + StreamCipher + StreamCipherSeek, + C: KeyIvInit + + KeySizeUser + + IvSizeUser + + StreamCipher + + StreamCipherSeek, N: ArrayLength, { type NonceSize = N; @@ -262,7 +274,11 @@ where impl AeadInPlace for ChaChaPoly1305 where - C: NewCipher + StreamCipher + StreamCipherSeek, + C: KeyIvInit + + KeySizeUser + + IvSizeUser + + StreamCipher + + StreamCipherSeek, N: ArrayLength, { fn encrypt_in_place_detached( @@ -291,7 +307,11 @@ where impl Clone for ChaChaPoly1305 where - C: NewCipher + StreamCipher + StreamCipherSeek, + C: KeyIvInit + + KeySizeUser + + IvSizeUser + + StreamCipher + + StreamCipherSeek, N: ArrayLength, { fn clone(&self) -> Self { @@ -302,9 +322,24 @@ where } } +impl ZeroizeOnDrop for ChaChaPoly1305 +where + C: KeyIvInit + + KeySizeUser + + IvSizeUser + + StreamCipher + + StreamCipherSeek, + N: ArrayLength, +{ +} + impl Drop for ChaChaPoly1305 where - C: NewCipher + StreamCipher + StreamCipherSeek, + C: KeyIvInit + + KeySizeUser + + IvSizeUser + + StreamCipher + + StreamCipherSeek, N: ArrayLength, { fn drop(&mut self) { diff --git a/deoxys/CHANGELOG.md b/deoxys/CHANGELOG.md index 584a8116..4641686b 100644 --- a/deoxys/CHANGELOG.md +++ b/deoxys/CHANGELOG.md @@ -4,6 +4,11 @@ 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). +## Unreleased +### Changed +- Bump `aes` crate dependency to v0.8 ([#387]) +- Bump `zeroize` crate dependency to v1.5 ([#387]) + ## 0.0.2 (2021-07-20) ### Changed - Pin `zeroize` dependency to v1.3 and `subtle` to v2.4 ([#349]) diff --git a/deoxys/Cargo.toml b/deoxys/Cargo.toml index fa001932..81a84357 100644 --- a/deoxys/Cargo.toml +++ b/deoxys/Cargo.toml @@ -18,9 +18,9 @@ edition = "2018" [dependencies] aead = { version = "0.4", default-features = false } -aes = { version = "0.7.5", features=["hazmat"], default-features = false } +aes = { version = "0.8", features=["hazmat"], default-features = false } subtle = { version = ">=2, <2.5", default-features = false } -zeroize = { version = ">=1, <1.4", default-features = false } +zeroize = { version = "1.5", default-features = false } [dev-dependencies] aead = { version = "0.4", features = ["dev"], default-features = false } diff --git a/deoxys/src/lib.rs b/deoxys/src/lib.rs index ddf36ede..784815fa 100644 --- a/deoxys/src/lib.rs +++ b/deoxys/src/lib.rs @@ -130,7 +130,7 @@ use aead::{ AeadCore, AeadInPlace, Error, NewAead, }; -use zeroize::Zeroize; +use zeroize::{Zeroize, ZeroizeOnDrop}; /// Deoxys-I with 128-bit keys pub type DeoxysI128 = Deoxys, deoxys_bc::DeoxysBc256>; @@ -302,6 +302,13 @@ where } } +impl ZeroizeOnDrop for Deoxys +where + M: DeoxysMode, + B: DeoxysBcType, +{ +} + impl Drop for Deoxys where M: DeoxysMode, diff --git a/deoxys/src/modes.rs b/deoxys/src/modes.rs index 098c4dee..92b6a3ab 100644 --- a/deoxys/src/modes.rs +++ b/deoxys/src/modes.rs @@ -306,7 +306,7 @@ where let mut block = [0u8; 16]; block.copy_from_slice(data); - B::encrypt_in_place(&mut block, &tweak, subkeys); + B::encrypt_in_place(&mut block, tweak, subkeys); for (t, b) in tag.iter_mut().zip(block.iter()) { *t ^= b; @@ -320,7 +320,7 @@ where block[data.len()] = 0x80; - B::encrypt_in_place(&mut block, &tweak, subkeys); + B::encrypt_in_place(&mut block, tweak, subkeys); for (t, b) in tag.iter_mut().zip(block.iter()) { *t ^= b; @@ -352,7 +352,7 @@ where let mut block = [0u8; 16]; block[1..].copy_from_slice(nonce); - B::encrypt_in_place(&mut block, &tweak, subkeys); + B::encrypt_in_place(&mut block, tweak, subkeys); for (t, b) in data.iter_mut().zip(block.iter()) { *t ^= b; @@ -394,7 +394,7 @@ where Self::authenticate_message(buffer, &mut tweak, subkeys, &mut tag); tweak[0] = TWEAK_TAG; - tweak[1..].copy_from_slice(&nonce); + tweak[1..].copy_from_slice(nonce); B::encrypt_in_place(&mut tag, &tweak, subkeys); // Message encryption @@ -430,8 +430,8 @@ where Self::authenticate_message(buffer, &mut tweak, subkeys, &mut computed_tag); tweak[0] = TWEAK_TAG; - tweak[1..].copy_from_slice(&nonce); - B::encrypt_in_place(&mut computed_tag, &tweak, &subkeys); + tweak[1..].copy_from_slice(nonce); + B::encrypt_in_place(&mut computed_tag, &tweak, subkeys); if tag.ct_eq(&computed_tag).into() { Ok(()) diff --git a/eax/CHANGELOG.md b/eax/CHANGELOG.md index 8a3ad500..295049bd 100644 --- a/eax/CHANGELOG.md +++ b/eax/CHANGELOG.md @@ -4,6 +4,12 @@ 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). +## Unreleased +### Changed +- Bump `cipher` crate dependency to v0.4 ([#387]) +- Bump `cmac` crate dependency to v0.7 ([#387]) +- Bump `ctr` crate dependency to v0.9 ([#387]) + ## 0.4.1 (2021-07-20) ### Changed - Pin `subtle` dependency to v2.4 ([#349]) diff --git a/eax/Cargo.toml b/eax/Cargo.toml index afa5c16a..4b14bdc4 100644 --- a/eax/Cargo.toml +++ b/eax/Cargo.toml @@ -20,14 +20,14 @@ categories = ["cryptography", "no-std"] [dependencies] aead = { version = "0.4", default-features = false } -cipher = "0.3" -cmac = "0.6" -ctr = "0.8" +cipher = "0.4" +cmac = "0.7" +ctr = "0.9" subtle = { version = ">=2, <2.5", default-features = false } [dev-dependencies] aead = { version = "0.4", features = ["dev"], default-features = false } -aes = { version = "0.7", features = ["force-soft"] } # Uses `force-soft` for MSRV 1.41 +aes = "0.8" [features] default = ["alloc"] diff --git a/mgm/CHANGELOG.md b/mgm/CHANGELOG.md index 271e2d58..7af59154 100644 --- a/mgm/CHANGELOG.md +++ b/mgm/CHANGELOG.md @@ -4,6 +4,10 @@ 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). +## Unreleased +### Changed +- Bump `cipher` crate dependency to v0.4 ([#387]) + ## 0.4.6 (2021-09-01) ### Added - Target feature autodetection on x86(-64) targets ([#371]) diff --git a/mgm/Cargo.toml b/mgm/Cargo.toml index 2225c51f..a4593af3 100644 --- a/mgm/Cargo.toml +++ b/mgm/Cargo.toml @@ -14,7 +14,7 @@ keywords = ["encryption", "aead"] [dependencies] aead = { version = "0.4", default-features = false } -cipher = "0.3" +cipher = "0.4" subtle = { version = ">=2, <2.5", default-features = false } cfg-if = "1" @@ -23,9 +23,9 @@ cpufeatures = "0.2" [dev-dependencies] aead = { version = "0.4", features = ["dev"], default-features = false } -kuznyechik = "0.7" -magma = "0.7" -hex-literal = "0.2" +kuznyechik = "0.8" +magma = "0.8" +hex-literal = "0.3" [features] default = ["alloc"] diff --git a/mgm/src/encdec.rs b/mgm/src/encdec.rs index e3b4f947..cf7d6427 100644 --- a/mgm/src/encdec.rs +++ b/mgm/src/encdec.rs @@ -10,12 +10,12 @@ use aead::{ }, Error, }; -use cipher::{Block, BlockEncrypt, ParBlocks}; +use cipher::{Block, BlockBackend, BlockEncrypt, ParBlocks}; use subtle::ConstantTimeEq; pub(crate) fn encrypt(args: EncArgs<'_, C>) -> Result, Error> where - C: BlockEncrypt, + C: BlockBackend + BlockEncrypt, C::BlockSize: MgmBlockSize, E64: GfElement, E128: GfElement, @@ -30,7 +30,7 @@ where pub(crate) fn decrypt(args: DecArgs<'_, C>) -> Result<(), Error> where - C: BlockEncrypt, + C: BlockBackend + BlockEncrypt, C::BlockSize: MgmBlockSize, E64: GfElement, E128: GfElement, @@ -46,7 +46,7 @@ where // E::N must be equal to C::BlockSize fn encrypt_inner(args: EncArgs<'_, C>) -> Result, Error> where - C: BlockEncrypt, + C: BlockBackend + BlockEncrypt, C::BlockSize: MgmBlockSize, E: GfElement, { @@ -61,7 +61,7 @@ where let mut tag = E::new(); - let pb = C::ParBlocks::USIZE; + let pb = C::ParBlocksSize::USIZE; let bs = C::BlockSize::USIZE; // process adata @@ -125,7 +125,7 @@ where // E::N must be equal to C::BlockSize fn decrypt_inner(args: DecArgs<'_, C>) -> Result<(), Error> where - C: BlockEncrypt, + C: BlockBackend + BlockEncrypt, C::BlockSize: MgmBlockSize, E: GfElement, { @@ -140,7 +140,7 @@ where let mut tag_ctr = C::BlockSize::block2ctr(&tag_ctr); let mut tag = E::new(); - let pb = C::ParBlocks::USIZE; + let pb = C::ParBlocksSize::USIZE; let bs = C::BlockSize::USIZE; // calculate tag @@ -241,10 +241,10 @@ where #[inline(always)] fn apply_par_ks_blocks(cipher: &C, ctr: &mut Counter, par_blocks: &mut [u8]) where - C: BlockEncrypt, + C: BlockBackend + BlockEncrypt, C::BlockSize: MgmBlockSize, { - let pb = C::ParBlocks::USIZE; + let pb = C::ParBlocksSize::USIZE; let bs = C::BlockSize::USIZE; assert_eq!(par_blocks.len(), pb * bs); @@ -283,11 +283,11 @@ where #[inline(always)] fn update_par_tag(cipher: &C, tag: &mut E, tag_ctr: &mut Counter, par_blocks: &[u8]) where - C: BlockEncrypt, + C: BlockBackend + BlockEncrypt, C::BlockSize: MgmBlockSize, E: GfElement, { - let pb = C::ParBlocks::USIZE; + let pb = C::ParBlocksSize::USIZE; let bs = C::BlockSize::USIZE; assert_eq!(par_blocks.len(), pb * bs); diff --git a/mgm/src/lib.rs b/mgm/src/lib.rs index a5be5877..f9f9e282 100644 --- a/mgm/src/lib.rs +++ b/mgm/src/lib.rs @@ -35,7 +35,7 @@ #![warn(missing_docs, rust_2018_idioms)] use aead::{consts::U0, generic_array::GenericArray, AeadCore, AeadInPlace, Error, Key, NewAead}; use cfg_if::cfg_if; -use cipher::{BlockCipher, BlockEncrypt, NewBlockCipher}; +use cipher::{BlockBackend, BlockEncrypt, BlockSizeUser, KeyInit}; pub use aead; @@ -54,7 +54,7 @@ pub type Nonce = GenericArray; /// MGM tags pub type Tag = GenericArray; -type Block = GenericArray::BlockSize>; +type Block = GenericArray::BlockSize>; // cipher, nonce, aad, buffer type EncArgs<'a, C> = (&'a C, &'a Block, &'a [u8], &'a mut [u8]); // cipher, nonce, aad, buf, expected_tag @@ -88,7 +88,7 @@ where impl NewAead for Mgm where - C: BlockEncrypt + NewBlockCipher, + C: BlockEncrypt + KeyInit, C::BlockSize: MgmBlockSize, { type KeySize = C::KeySize; @@ -110,7 +110,7 @@ where impl AeadInPlace for Mgm where - C: BlockEncrypt, + C: BlockBackend + BlockEncrypt, C::BlockSize: MgmBlockSize, { fn encrypt_in_place_detached( @@ -198,7 +198,7 @@ cfg_if! { } else { fn mgm_encrypt(args: EncArgs<'_, C>) -> Result, Error> where - C: BlockEncrypt, + C: BlockBackend + BlockEncrypt, C::BlockSize: MgmBlockSize, { encdec::encrypt::(args) @@ -206,7 +206,7 @@ cfg_if! { fn mgm_decrypt(args: DecArgs<'_, C>) -> Result<(), Error> where - C: BlockEncrypt, + C: BlockBackend + BlockEncrypt, C::BlockSize: MgmBlockSize, { encdec::decrypt::(args) diff --git a/mgm/src/sealed.rs b/mgm/src/sealed.rs index 4be8f1cf..79d8558c 100644 --- a/mgm/src/sealed.rs +++ b/mgm/src/sealed.rs @@ -5,10 +5,10 @@ use aead::{ }, Error, }; -use cipher::BlockCipher; +use cipher::BlockSizeUser; use core::convert::TryInto; -pub type Counter = [<::BlockSize as Sealed>::Counter; 2]; +pub type Counter = [<::BlockSize as Sealed>::Counter; 2]; pub trait Sealed: ArrayLength { type Counter; diff --git a/xsalsa20poly1305/CHANGELOG.md b/xsalsa20poly1305/CHANGELOG.md index c2320558..85893410 100644 --- a/xsalsa20poly1305/CHANGELOG.md +++ b/xsalsa20poly1305/CHANGELOG.md @@ -4,6 +4,11 @@ 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). +## Unreleased +### Changed +- Bump `salsa20` crate dependency to v0.10 ([#387]) +- Bump `zeroize` crate dependency to v1.5 ([#387]) + ## 0.8.0 (2021-08-30) ### Changed - Bump `salsa20` dependency to v0.9 ([#366]) diff --git a/xsalsa20poly1305/Cargo.toml b/xsalsa20poly1305/Cargo.toml index 3eb1bb43..d7fb31b3 100644 --- a/xsalsa20poly1305/Cargo.toml +++ b/xsalsa20poly1305/Cargo.toml @@ -16,11 +16,11 @@ categories = ["cryptography", "no-std"] [dependencies] aead = { version = "0.4", default-features = false } -salsa20 = { version = "0.9", features = ["zeroize"] } +salsa20 = { version = "0.10", features = ["zeroize"] } poly1305 = "0.7" rand_core = { version = "0.6", optional = true } subtle = { version = ">=2, <2.5", default-features = false } -zeroize = { version = ">=1, <1.4", default-features = false } +zeroize = { version = "1.5", default-features = false } [features] default = ["alloc", "rand_core", "aead/rand_core"] diff --git a/xsalsa20poly1305/src/lib.rs b/xsalsa20poly1305/src/lib.rs index 9f0a0bba..a0d27a99 100644 --- a/xsalsa20poly1305/src/lib.rs +++ b/xsalsa20poly1305/src/lib.rs @@ -111,7 +111,7 @@ use salsa20::{ cipher::{NewCipher, StreamCipher, StreamCipherSeek}, XSalsa20, }; -use zeroize::Zeroize; +use zeroize::{Zeroize, ZeroizeOnDrop}; #[cfg(feature = "rand_core")] use rand_core::{CryptoRng, RngCore}; @@ -239,6 +239,8 @@ impl AeadInPlace for XSalsa20Poly1305 { } } +impl ZeroizeOnDrop for XSalsa20Poly1305 {} + impl Drop for XSalsa20Poly1305 { fn drop(&mut self) { self.key.as_mut_slice().zeroize(); From d4039f263b1cbdd51a60f0fbf7839ee9951f4854 Mon Sep 17 00:00:00 2001 From: daxpedda Date: Tue, 15 Feb 2022 00:24:52 +0100 Subject: [PATCH 2/2] Bump MSRV and Rust edition --- .github/workflows/aes-gcm-siv.yml | 24 ++++------------------ .github/workflows/aes-gcm.yml | 28 ++++---------------------- .github/workflows/aes-siv.yml | 20 ++---------------- .github/workflows/benches.yml | 2 +- .github/workflows/ccm.yml | 24 ++++------------------ .github/workflows/chacha20poly1305.yml | 7 +++---- .github/workflows/deoxys.yml | 20 ++---------------- .github/workflows/eax.yml | 20 ++---------------- .github/workflows/mgm.yml | 22 +++----------------- .github/workflows/workspace.yml | 2 +- .github/workflows/xsalsa20poly1305.yml | 20 ++---------------- Cargo.toml | 1 + README.md | 20 +++++++++--------- aes-gcm-siv/CHANGELOG.md | 6 +++++- aes-gcm-siv/Cargo.toml | 5 +++-- aes-gcm-siv/README.md | 2 +- aes-gcm/CHANGELOG.md | 6 +++++- aes-gcm/Cargo.toml | 5 +++-- aes-gcm/README.md | 2 +- aes-siv/CHANGELOG.md | 6 +++++- aes-siv/Cargo.toml | 5 +++-- aes-siv/README.md | 2 +- ccm/CHANGELOG.md | 4 ++++ ccm/Cargo.toml | 3 ++- ccm/README.md | 2 +- chacha20poly1305/CHANGELOG.md | 6 +++++- chacha20poly1305/Cargo.toml | 5 +++-- chacha20poly1305/README.md | 2 +- chacha20poly1305/src/cipher.rs | 1 - deoxys/CHANGELOG.md | 6 +++++- deoxys/Cargo.toml | 5 +++-- deoxys/README.md | 2 +- deoxys/src/modes.rs | 1 - eax/CHANGELOG.md | 6 +++++- eax/Cargo.toml | 3 ++- eax/README.md | 2 +- mgm/CHANGELOG.md | 4 ++++ mgm/Cargo.toml | 3 ++- mgm/README.md | 2 +- mgm/src/gf/gf128_soft64.rs | 1 - mgm/src/gf/gf64_pclmul.rs | 1 - mgm/src/gf/gf64_soft64.rs | 1 - mgm/src/sealed.rs | 1 - xsalsa20poly1305/CHANGELOG.md | 6 +++++- xsalsa20poly1305/Cargo.toml | 5 +++-- xsalsa20poly1305/README.md | 6 +++--- 46 files changed, 117 insertions(+), 210 deletions(-) diff --git a/.github/workflows/aes-gcm-siv.yml b/.github/workflows/aes-gcm-siv.yml index 4c767f36..a4c23b0b 100644 --- a/.github/workflows/aes-gcm-siv.yml +++ b/.github/workflows/aes-gcm-siv.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: rust: - - 1.49.0 # MSRV + - 1.56.1 # MSRV - stable target: - armv7a-none-eabi @@ -45,7 +45,7 @@ jobs: include: # 32-bit Linux - target: i686-unknown-linux-gnu - rust: 1.49.0 # MSRV + rust: 1.56.1 # MSRV deps: sudo apt update && sudo apt install gcc-multilib - target: i686-unknown-linux-gnu rust: stable @@ -53,7 +53,7 @@ jobs: # 64-bit Linux - target: x86_64-unknown-linux-gnu - rust: 1.49.0 # MSRV + rust: 1.56.1 # MSRV - target: x86_64-unknown-linux-gnu rust: stable steps: @@ -67,21 +67,5 @@ jobs: - run: ${{ matrix.deps }} - run: cargo test --target ${{ matrix.target }} --release - run: cargo test --target ${{ matrix.target }} --release --features stream,std + - run: cargo test --target ${{ matrix.target }} --release --all-features - run: cargo build --target ${{ matrix.target }} --benches - - # TODO(tarcieri): re-unify this with `test` when MSRV is 1.51+ - heapless: - runs-on: ubuntu-latest - strategy: - matrix: - rust: - - 1.51.0 # MSRV for `heapless` - - stable - steps: - - uses: actions/checkout@v1 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.rust }} - override: true - - run: cargo test --release --all-features diff --git a/.github/workflows/aes-gcm.yml b/.github/workflows/aes-gcm.yml index bfe8003b..9cbb6c30 100644 --- a/.github/workflows/aes-gcm.yml +++ b/.github/workflows/aes-gcm.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: rust: - - 1.49.0 # MSRV + - 1.56.1 # MSRV - stable target: - armv7a-none-eabi @@ -45,7 +45,7 @@ jobs: include: # 32-bit Linux - target: i686-unknown-linux-gnu - rust: 1.49.0 # MSRV + rust: 1.56.1 # MSRV deps: sudo apt update && sudo apt install gcc-multilib - target: i686-unknown-linux-gnu rust: stable @@ -53,7 +53,7 @@ jobs: # 64-bit Linux - target: x86_64-unknown-linux-gnu - rust: 1.49.0 # MSRV + rust: 1.56.1 # MSRV - target: x86_64-unknown-linux-gnu rust: stable steps: @@ -67,25 +67,5 @@ jobs: - run: ${{ matrix.deps }} - run: cargo test --target ${{ matrix.target }} --release - run: cargo test --target ${{ matrix.target }} --release --features stream,std,zeroize + - run: cargo test --target ${{ matrix.target }} --release --all-features - run: cargo build --target ${{ matrix.target }} --benches - - # TODO(tarcieri): re-unify this with `test` when MSRV is 1.51+ - heapless: - runs-on: ubuntu-latest - strategy: - matrix: - rust: - - 1.51.0 # MSRV for `heapless` - - stable - steps: - - uses: actions/checkout@v1 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.rust }} - override: true - - run: cargo test --release --all-features - - - - diff --git a/.github/workflows/aes-siv.yml b/.github/workflows/aes-siv.yml index 815467e6..1f3b88f9 100644 --- a/.github/workflows/aes-siv.yml +++ b/.github/workflows/aes-siv.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: rust: - - 1.49.0 # MSRV + - 1.56.1 # MSRV - stable target: - armv7a-none-eabi @@ -43,7 +43,7 @@ jobs: strategy: matrix: rust: - - 1.49.0 # MSRV + - 1.56.1 # MSRV - stable steps: - uses: actions/checkout@v1 @@ -54,20 +54,4 @@ jobs: override: true - run: cargo test --release - run: cargo test --release --features stream,std - - # TODO(tarcieri): re-unify this with `test` when MSRV is 1.51+ - heapless: - runs-on: ubuntu-latest - strategy: - matrix: - rust: - - 1.51.0 # MSRV for `heapless` - - stable - steps: - - uses: actions/checkout@v1 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.rust }} - override: true - run: cargo test --release --all-features diff --git a/.github/workflows/benches.yml b/.github/workflows/benches.yml index 32c67f42..8d6b79fe 100644 --- a/.github/workflows/benches.yml +++ b/.github/workflows/benches.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: rust: - - 1.41.0 # MSRV + - 1.56.1 # MSRV - stable steps: - uses: actions/checkout@v1 diff --git a/.github/workflows/ccm.yml b/.github/workflows/ccm.yml index b3e56d03..362087c6 100644 --- a/.github/workflows/ccm.yml +++ b/.github/workflows/ccm.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: rust: - - 1.41.0 # MSRV + - 1.56.1 # MSRV - stable target: - thumbv7em-none-eabi @@ -44,7 +44,7 @@ jobs: include: # 32-bit Linux - target: i686-unknown-linux-gnu - rust: 1.49.0 # MSRV + rust: 1.56.1 # MSRV deps: sudo apt update && sudo apt install gcc-multilib - target: i686-unknown-linux-gnu rust: stable @@ -52,7 +52,7 @@ jobs: # 64-bit Linux - target: x86_64-unknown-linux-gnu - rust: 1.49.0 # MSRV + rust: 1.56.1 # MSRV - target: x86_64-unknown-linux-gnu rust: stable steps: @@ -66,21 +66,5 @@ jobs: - run: ${{ matrix.deps }} - run: cargo test --target ${{ matrix.target }} --release - run: cargo test --target ${{ matrix.target }} --release --features stream,std + - run: cargo test --target ${{ matrix.target }} --release --all-features - run: cargo build --target ${{ matrix.target }} --benches - - # TODO(tarcieri): re-unify this with `test` when MSRV is 1.51+ - heapless: - runs-on: ubuntu-latest - strategy: - matrix: - rust: - - 1.51.0 # MSRV for `heapless` - - stable - steps: - - uses: actions/checkout@v1 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.rust }} - override: true - - run: cargo test --release --all-features diff --git a/.github/workflows/chacha20poly1305.yml b/.github/workflows/chacha20poly1305.yml index a587deca..b897650a 100644 --- a/.github/workflows/chacha20poly1305.yml +++ b/.github/workflows/chacha20poly1305.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: rust: - - 1.51.0 # MSRV + - 1.56.1 # MSRV - stable target: - armv7a-none-eabi @@ -46,7 +46,7 @@ jobs: include: # 32-bit Linux - target: i686-unknown-linux-gnu - rust: 1.51.0 # MSRV + rust: 1.56.1 # MSRV deps: sudo apt update && sudo apt install gcc-multilib - target: i686-unknown-linux-gnu rust: stable @@ -54,7 +54,7 @@ jobs: # 64-bit Linux - target: x86_64-unknown-linux-gnu - rust: 1.51.0 # MSRV + rust: 1.56.1 # MSRV - target: x86_64-unknown-linux-gnu rust: stable steps: @@ -71,4 +71,3 @@ jobs: - run: cargo test --target ${{ matrix.target }} --release --features reduced-round,stream,std - run: cargo test --target ${{ matrix.target }} --release --all-features - run: cargo build --target ${{ matrix.target }} --benches - diff --git a/.github/workflows/deoxys.yml b/.github/workflows/deoxys.yml index 93484b7a..1fc39f2d 100644 --- a/.github/workflows/deoxys.yml +++ b/.github/workflows/deoxys.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: rust: - - 1.50.0 # MSRV + - 1.56.1 # MSRV - stable target: - armv7a-none-eabi @@ -43,7 +43,7 @@ jobs: strategy: matrix: rust: - - 1.50.0 # MSRV + - 1.56.1 # MSRV - stable steps: - uses: actions/checkout@v1 @@ -54,20 +54,4 @@ jobs: override: true - run: cargo test --release - run: cargo test --release --features stream,std - - # TODO(tarcieri): re-unify this with `test` when MSRV is 1.51+ - heapless: - runs-on: ubuntu-latest - strategy: - matrix: - rust: - - 1.51.0 # MSRV for `heapless` - - stable - steps: - - uses: actions/checkout@v1 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.rust }} - override: true - run: cargo test --release --all-features diff --git a/.github/workflows/eax.yml b/.github/workflows/eax.yml index f8ffd6a9..8ffb80f3 100644 --- a/.github/workflows/eax.yml +++ b/.github/workflows/eax.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: rust: - - 1.41.0 # MSRV + - 1.56.1 # MSRV - stable target: - thumbv7em-none-eabi @@ -42,7 +42,7 @@ jobs: strategy: matrix: rust: - - 1.41.0 # MSRV + - 1.56.1 # MSRV - stable steps: - uses: actions/checkout@v1 @@ -53,20 +53,4 @@ jobs: override: true - run: cargo test --release - run: cargo test --release --features stream,std - - # TODO(tarcieri): re-unify this with `test` when MSRV is 1.51+ - heapless: - runs-on: ubuntu-latest - strategy: - matrix: - rust: - - 1.51.0 # MSRV for `heapless` - - stable - steps: - - uses: actions/checkout@v1 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.rust }} - override: true - run: cargo test --release --all-features diff --git a/.github/workflows/mgm.yml b/.github/workflows/mgm.yml index a988cb06..6ef71082 100644 --- a/.github/workflows/mgm.yml +++ b/.github/workflows/mgm.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: rust: - - 1.41.0 # MSRV + - 1.56.1 # MSRV - stable target: - thumbv7em-none-eabi @@ -42,7 +42,7 @@ jobs: strategy: matrix: rust: - - 1.41.0 # MSRV + - 1.56.1 # MSRV - stable steps: - uses: actions/checkout@v1 @@ -54,21 +54,5 @@ jobs: - run: cargo test --release - run: cargo test --release --features force-soft - run: cargo test --release --features stream,std - - run: RUSTFLAGS="-C target-cpu=native" cargo test --release --features stream,std - - # TODO(tarcieri): re-unify this with `test` when MSRV is 1.51+ - heapless: - runs-on: ubuntu-latest - strategy: - matrix: - rust: - - 1.51.0 # MSRV for `heapless` - - stable - steps: - - uses: actions/checkout@v1 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.rust }} - override: true - run: cargo test --release --all-features + - run: RUSTFLAGS="-C target-cpu=native" cargo test --release --features stream,std diff --git a/.github/workflows/workspace.yml b/.github/workflows/workspace.yml index 7e6962ae..fb6f3c03 100644 --- a/.github/workflows/workspace.yml +++ b/.github/workflows/workspace.yml @@ -33,7 +33,7 @@ jobs: - uses: actions/checkout@v1 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.51.0 # MSRV (highest in repo) + toolchain: 1.56.1 # MSRV (highest in repo) components: clippy override: true profile: minimal diff --git a/.github/workflows/xsalsa20poly1305.yml b/.github/workflows/xsalsa20poly1305.yml index 01375e42..154d0eb1 100644 --- a/.github/workflows/xsalsa20poly1305.yml +++ b/.github/workflows/xsalsa20poly1305.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: rust: - - 1.49.0 # MSRV + - 1.56.1 # MSRV - stable target: - thumbv7em-none-eabi @@ -42,7 +42,7 @@ jobs: strategy: matrix: rust: - - 1.49.0 # MSRV + - 1.56.1 # MSRV - stable steps: - uses: actions/checkout@v1 @@ -53,20 +53,4 @@ jobs: override: true - run: cargo test --release - run: cargo test --release --features stream,std - - # TODO(tarcieri): re-unify this with `test` when MSRV is 1.51+ - heapless: - runs-on: ubuntu-latest - strategy: - matrix: - rust: - - 1.51.0 # MSRV for `heapless` - - stable - steps: - - uses: actions/checkout@v1 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.rust }} - override: true - run: cargo test --release --all-features diff --git a/Cargo.toml b/Cargo.toml index 5495592f..b749a21d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,6 +10,7 @@ members = [ "mgm", "xsalsa20poly1305" ] +resolver = "2" [patch.crates-io] chacha20 = { git = "https://github.com/RustCrypto/stream-ciphers" } diff --git a/README.md b/README.md index 8dc9dfa1..6562cf26 100644 --- a/README.md +++ b/README.md @@ -19,15 +19,15 @@ crate. | Name | Algorithm | Crates.io | Documentation | MSRV | |----------------------|------------------------------|-----------|---------------|-------| -| [`aes-gcm-siv`] | [AES-GCM-SIV] | [![crates.io](https://img.shields.io/crates/v/aes-gcm-siv.svg)](https://crates.io/crates/aes-gcm-siv) | [![Documentation](https://docs.rs/aes-gcm-siv/badge.svg)](https://docs.rs/aes-gcm-siv) | 1.49 | -| [`aes-gcm`] | [AES-GCM] | [![crates.io](https://img.shields.io/crates/v/aes-gcm.svg)](https://crates.io/crates/aes-gcm) | [![Documentation](https://docs.rs/aes-gcm/badge.svg)](https://docs.rs/aes-gcm) | 1.49 | -| [`aes-siv`] | [AES-SIV] | [![crates.io](https://img.shields.io/crates/v/aes-siv.svg)](https://crates.io/crates/aes-siv) | [![Documentation](https://docs.rs/aes-siv/badge.svg)](https://docs.rs/aes-siv) | 1.49 | -| [`ccm`] | [CCM] | [![crates.io](https://img.shields.io/crates/v/ccm.svg)](https://crates.io/crates/ccm) | [![Documentation](https://docs.rs/ccm/badge.svg)](https://docs.rs/ccm) | 1.41 | -| [`chacha20poly1305`] | [(X)ChaCha20Poly1305] | [![crates.io](https://img.shields.io/crates/v/chacha20poly1305.svg)](https://crates.io/crates/chacha20poly1305) | [![Documentation](https://docs.rs/chacha20poly1305/badge.svg)](https://docs.rs/chacha20poly1305) | 1.51 | -| [`deoxys`] | [Deoxys-I/II] | [![crates.io](https://img.shields.io/crates/v/deoxys.svg)](https://crates.io/crates/deoxys) | [![Documentation](https://docs.rs/deoxys/badge.svg)](https://docs.rs/deoxys) | 1.50 | -| [`eax`] | [EAX] | [![crates.io](https://img.shields.io/crates/v/eax.svg)](https://crates.io/crates/eax) | [![Documentation](https://docs.rs/eax/badge.svg)](https://docs.rs/eax) | 1.41 | -| [`mgm`] | [MGM] | [![crates.io](https://img.shields.io/crates/v/mgm.svg)](https://crates.io/crates/mgm) | [![Documentation](https://docs.rs/mgm/badge.svg)](https://docs.rs/mgm) | 1.41 | -| [`xsalsa20poly1305`] | [XSalsa20Poly1305] | [![crates.io](https://img.shields.io/crates/v/xsalsa20poly1305.svg)](https://crates.io/crates/xsalsa20poly1305) | [![Documentation](https://docs.rs/xsalsa20poly1305/badge.svg)](https://docs.rs/xsalsa20poly1305) | 1.49 | +| [`aes-gcm-siv`] | [AES-GCM-SIV] | [![crates.io](https://img.shields.io/crates/v/aes-gcm-siv.svg)](https://crates.io/crates/aes-gcm-siv) | [![Documentation](https://docs.rs/aes-gcm-siv/badge.svg)](https://docs.rs/aes-gcm-siv) | 1.56 | +| [`aes-gcm`] | [AES-GCM] | [![crates.io](https://img.shields.io/crates/v/aes-gcm.svg)](https://crates.io/crates/aes-gcm) | [![Documentation](https://docs.rs/aes-gcm/badge.svg)](https://docs.rs/aes-gcm) | 1.56 | +| [`aes-siv`] | [AES-SIV] | [![crates.io](https://img.shields.io/crates/v/aes-siv.svg)](https://crates.io/crates/aes-siv) | [![Documentation](https://docs.rs/aes-siv/badge.svg)](https://docs.rs/aes-siv) | 1.56 | +| [`ccm`] | [CCM] | [![crates.io](https://img.shields.io/crates/v/ccm.svg)](https://crates.io/crates/ccm) | [![Documentation](https://docs.rs/ccm/badge.svg)](https://docs.rs/ccm) | 1.56 | +| [`chacha20poly1305`] | [(X)ChaCha20Poly1305] | [![crates.io](https://img.shields.io/crates/v/chacha20poly1305.svg)](https://crates.io/crates/chacha20poly1305) | [![Documentation](https://docs.rs/chacha20poly1305/badge.svg)](https://docs.rs/chacha20poly1305) | 1.56 | +| [`deoxys`] | [Deoxys-I/II] | [![crates.io](https://img.shields.io/crates/v/deoxys.svg)](https://crates.io/crates/deoxys) | [![Documentation](https://docs.rs/deoxys/badge.svg)](https://docs.rs/deoxys) | 1.56 | +| [`eax`] | [EAX] | [![crates.io](https://img.shields.io/crates/v/eax.svg)](https://crates.io/crates/eax) | [![Documentation](https://docs.rs/eax/badge.svg)](https://docs.rs/eax) | 1.56 | +| [`mgm`] | [MGM] | [![crates.io](https://img.shields.io/crates/v/mgm.svg)](https://crates.io/crates/mgm) | [![Documentation](https://docs.rs/mgm/badge.svg)](https://docs.rs/mgm) | 1.56 | +| [`xsalsa20poly1305`] | [XSalsa20Poly1305] | [![crates.io](https://img.shields.io/crates/v/xsalsa20poly1305.svg)](https://crates.io/crates/xsalsa20poly1305) | [![Documentation](https://docs.rs/xsalsa20poly1305/badge.svg)](https://docs.rs/xsalsa20poly1305) | 1.56 | ## MSRV Policy @@ -75,7 +75,7 @@ dual licensed as above, without any additional terms or conditions. [`deoxys`]: https://github.com/RustCrypto/AEADs/tree/master/deoxys [`eax`]: https://github.com/RustCrypto/AEADs/tree/master/eax [`mgm`]: https://github.com/RustCrypto/AEADs/tree/master/mgm -[`xsalsa20poly1305`]: https://github.com/RustCrypto/AEADs/tree/master/xsalsa20poly1305 +[`xsalsa20poly1305`]: https://github.com/RustCrypto/AEADs/tree/master/xsalsa20poly1305 [//]: # (algorithms) diff --git a/aes-gcm-siv/CHANGELOG.md b/aes-gcm-siv/CHANGELOG.md index 0dca1c53..3e466093 100644 --- a/aes-gcm-siv/CHANGELOG.md +++ b/aes-gcm-siv/CHANGELOG.md @@ -9,7 +9,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Bump `aes` crate dependency to v0.8 ([#387]) - Bump `cipher` crate dependency to v0.4 ([#387]) - Bump `ctr` crate dependency to v0.9 ([#387]) -- Bump `zeroize` crate dependency to v1.5 ([#387]) +- Relax `zeroize` requirements ([#387]) +- Upgrade to Rust 2021 edition ([#387]) +- MSRV 1.56+ ([#387]) + +[#387]: https://github.com/RustCrypto/AEADs/pull/387 ## 0.10.3 (2021-08-28) ### Changed diff --git a/aes-gcm-siv/Cargo.toml b/aes-gcm-siv/Cargo.toml index 0706c953..57ce5fd3 100644 --- a/aes-gcm-siv/Cargo.toml +++ b/aes-gcm-siv/Cargo.toml @@ -7,7 +7,8 @@ Encryption Cipher (RFC 8452) with optional architecture-specific hardware acceleration """ authors = ["RustCrypto Developers"] -edition = "2018" +edition = "2021" +rust-version = "1.56" license = "MIT OR Apache-2.0" readme = "README.md" documentation = "https://docs.rs/aes-gcm-siv" @@ -22,7 +23,7 @@ cipher = "0.4" ctr = "0.9" polyval = { version = "0.5.1", default-features = false } subtle = { version = ">=2, <2.5", default-features = false } -zeroize = { version = "1.5", default-features = false } +zeroize = { version = "1", default-features = false } [dev-dependencies] aead = { version = "0.4", features = ["dev"], default-features = false } diff --git a/aes-gcm-siv/README.md b/aes-gcm-siv/README.md index 8bb57a65..dbbe38b4 100644 --- a/aes-gcm-siv/README.md +++ b/aes-gcm-siv/README.md @@ -69,7 +69,7 @@ dual licensed as above, without any additional terms or conditions. [docs-image]: https://docs.rs/aes-gcm-siv/badge.svg [docs-link]: https://docs.rs/aes-gcm-siv/ [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 +[rustc-image]: https://img.shields.io/badge/rustc-1.56+-blue.svg [codecov-image]: https://codecov.io/gh/RustCrypto/AEADs/branch/master/graph/badge.svg [codecov-link]: https://codecov.io/gh/RustCrypto/AEADs [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg diff --git a/aes-gcm/CHANGELOG.md b/aes-gcm/CHANGELOG.md index 4d0d3d14..90d9a156 100644 --- a/aes-gcm/CHANGELOG.md +++ b/aes-gcm/CHANGELOG.md @@ -9,7 +9,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Bump `aes` crate dependency to v0.8 ([#387]) - Bump `cipher` crate dependency to v0.4 ([#387]) - Bump `ctr` crate dependency to v0.9 ([#387]) -- Bump `zeroize` crate dependency to v1.5 ([#387]) +- Relax `zeroize` requirements ([#387]) +- Upgrade to Rust 2021 edition ([#387]) +- MSRV 1.56+ ([#387]) + +[#387]: https://github.com/RustCrypto/AEADs/pull/387 ## 0.9.4 (2021-08-28) ### Changed diff --git a/aes-gcm/Cargo.toml b/aes-gcm/Cargo.toml index 56ae618f..b51c156a 100644 --- a/aes-gcm/Cargo.toml +++ b/aes-gcm/Cargo.toml @@ -7,7 +7,8 @@ Authenticated Encryption with Associated Data (AEAD) Cipher with optional architecture-specific hardware acceleration """ authors = ["RustCrypto Developers"] -edition = "2018" +edition = "2021" +rust-version = "1.56" license = "Apache-2.0 OR MIT" readme = "README.md" documentation = "https://docs.rs/aes-gcm" @@ -22,7 +23,7 @@ cipher = "0.4" ctr = "0.9" ghash = { version = "0.4.2", default-features = false } subtle = { version = ">=2, <2.5", default-features = false } -zeroize = { version = "1.5", optional = true, default-features = false } +zeroize = { version = "1", optional = true, default-features = false } [dev-dependencies] aead = { version = "0.4", features = ["dev"], default-features = false } diff --git a/aes-gcm/README.md b/aes-gcm/README.md index 19f92ac9..fc9ccb70 100644 --- a/aes-gcm/README.md +++ b/aes-gcm/README.md @@ -49,7 +49,7 @@ dual licensed as above, without any additional terms or conditions. [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 +[rustc-image]: https://img.shields.io/badge/rustc-1.56+-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 diff --git a/aes-siv/CHANGELOG.md b/aes-siv/CHANGELOG.md index e53d5bb2..fa4f4f91 100644 --- a/aes-siv/CHANGELOG.md +++ b/aes-siv/CHANGELOG.md @@ -11,7 +11,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Bump `cmac` crate dependency to v0.7 ([#387]) - Bump `ctr` crate dependency to v0.9 ([#387]) - Bump `pmac` crate dependency to v0.7 ([#387]) -- Bump `zeroize` crate dependency to v1.5 ([#387]) +- Relax `zeroize` requirements ([#387]) +- Upgrade to Rust 2021 edition ([#387]) +- MSRV 1.56+ ([#387]) + +[#387]: https://github.com/RustCrypto/AEADs/pull/387 ## 0.6.2 (2021-07-20) ### Changed diff --git a/aes-siv/Cargo.toml b/aes-siv/Cargo.toml index d15870a3..92b4a696 100644 --- a/aes-siv/Cargo.toml +++ b/aes-siv/Cargo.toml @@ -7,7 +7,8 @@ Encryption Cipher (RFC 5297) with optional architecture-specific hardware acceleration """ authors = ["RustCrypto Developers"] -edition = "2018" +edition = "2021" +rust-version = "1.56" license = "Apache-2.0 OR MIT" readme = "README.md" documentation = "https://docs.rs/aes-siv" @@ -24,7 +25,7 @@ crypto-mac = "0.11" ctr = "0.9" dbl = "0.3" pmac = { version = "0.7", optional = true } -zeroize = { version = "1.5", default-features = false } +zeroize = { version = "1", default-features = false } [dev-dependencies] blobby = "0.3" diff --git a/aes-siv/README.md b/aes-siv/README.md index b853abbf..34139e68 100644 --- a/aes-siv/README.md +++ b/aes-siv/README.md @@ -43,7 +43,7 @@ dual licensed as above, without any additional terms or conditions. [docs-image]: https://docs.rs/aes-siv/badge.svg [docs-link]: https://docs.rs/aes-siv/ [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 +[rustc-image]: https://img.shields.io/badge/rustc-1.56+-blue.svg [codecov-image]: https://codecov.io/gh/RustCrypto/AEADs/branch/master/graph/badge.svg [codecov-link]: https://codecov.io/gh/RustCrypto/AEADs [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg diff --git a/ccm/CHANGELOG.md b/ccm/CHANGELOG.md index fbc1270f..328bba29 100644 --- a/ccm/CHANGELOG.md +++ b/ccm/CHANGELOG.md @@ -8,6 +8,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Bump `cipher` crate dependency to v0.4 ([#387]) - Bump `ctr` crate dependency to v0.9 ([#387]) +- Upgrade to Rust 2021 edition ([#387]) +- MSRV 1.56+ ([#387]) + +[#387]: https://github.com/RustCrypto/AEADs/pull/387 ## 0.4.4 (2021-07-20) ### Changed diff --git a/ccm/Cargo.toml b/ccm/Cargo.toml index 217446a8..8ef5ad74 100644 --- a/ccm/Cargo.toml +++ b/ccm/Cargo.toml @@ -3,7 +3,8 @@ name = "ccm" version = "0.4.4" description = "Generic implementation of the Counter with CBC-MAC (CCM) mode" authors = ["RustCrypto Developers"] -edition = "2018" +edition = "2021" +rust-version = "1.56" license = "Apache-2.0 OR MIT" readme = "README.md" documentation = "https://docs.rs/ccm" diff --git a/ccm/README.md b/ccm/README.md index 6bd935c8..cbc47443 100644 --- a/ccm/README.md +++ b/ccm/README.md @@ -44,7 +44,7 @@ dual licensed as above, without any additional terms or conditions. [docs-image]: https://docs.rs/ccm/badge.svg [docs-link]: https://docs.rs/ccm [license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg -[rustc-image]: https://img.shields.io/badge/rustc-1.41+-blue.svg +[rustc-image]: https://img.shields.io/badge/rustc-1.56+-blue.svg [codecov-image]: https://codecov.io/gh/RustCrypto/AEADs/branch/master/graph/badge.svg [codecov-link]: https://codecov.io/gh/RustCrypto/AEADs [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg diff --git a/chacha20poly1305/CHANGELOG.md b/chacha20poly1305/CHANGELOG.md index f7939ef8..828b25bc 100644 --- a/chacha20poly1305/CHANGELOG.md +++ b/chacha20poly1305/CHANGELOG.md @@ -8,7 +8,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Bump `cipher` crate dependency to v0.4 ([#387]) - Bump `chacha20` crate dependency to v0.9 ([#387]) -- Bump `zeroize` crate dependency to v1.5 ([#387]) +- Relax `zeroize` requirements ([#387]) +- Upgrade to Rust 2021 edition ([#387]) +- MSRV 1.56+ ([#387]) + +[#387]: https://github.com/RustCrypto/AEADs/pull/387 ## 0.9.0 (2021-08-29) ### Changed diff --git a/chacha20poly1305/Cargo.toml b/chacha20poly1305/Cargo.toml index 0e4ab323..59870b18 100644 --- a/chacha20poly1305/Cargo.toml +++ b/chacha20poly1305/Cargo.toml @@ -9,7 +9,8 @@ extended nonce variant of ChaCha20Poly1305, and the reduced-round ChaCha8Poly1305 and ChaCha12Poly1305 lightweight variants. """ authors = ["RustCrypto Developers"] -edition = "2018" +edition = "2021" +rust-version = "1.56" license = "Apache-2.0 OR MIT" readme = "README.md" documentation = "https://docs.rs/chacha20poly1305" @@ -22,7 +23,7 @@ aead = { version = "0.4", default-features = false } chacha20 = { version = "0.9", features = ["zeroize"] } cipher = "0.4" poly1305 = "0.7" -zeroize = { version = "1.5", default-features = false } +zeroize = { version = "1", default-features = false } [dev-dependencies] aead = { version = "0.4", features = ["dev"], default-features = false } diff --git a/chacha20poly1305/README.md b/chacha20poly1305/README.md index 39c4d82e..62ef8bf6 100644 --- a/chacha20poly1305/README.md +++ b/chacha20poly1305/README.md @@ -67,7 +67,7 @@ dual licensed as above, without any additional terms or conditions. [docs-image]: https://docs.rs/chacha20poly1305/badge.svg [docs-link]: https://docs.rs/chacha20poly1305/ [license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg -[rustc-image]: https://img.shields.io/badge/rustc-1.51+-blue.svg +[rustc-image]: https://img.shields.io/badge/rustc-1.56+-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/chacha20poly1305.svg diff --git a/chacha20poly1305/src/cipher.rs b/chacha20poly1305/src/cipher.rs index 703d23ad..40fb9e68 100644 --- a/chacha20poly1305/src/cipher.rs +++ b/chacha20poly1305/src/cipher.rs @@ -3,7 +3,6 @@ use ::cipher::{StreamCipher, StreamCipherSeek}; use aead::generic_array::GenericArray; use aead::Error; -use core::convert::TryInto; use poly1305::{ universal_hash::{NewUniversalHash, UniversalHash}, Poly1305, diff --git a/deoxys/CHANGELOG.md b/deoxys/CHANGELOG.md index 4641686b..b99cbb81 100644 --- a/deoxys/CHANGELOG.md +++ b/deoxys/CHANGELOG.md @@ -7,7 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased ### Changed - Bump `aes` crate dependency to v0.8 ([#387]) -- Bump `zeroize` crate dependency to v1.5 ([#387]) +- Relax `zeroize` requirements ([#387]) +- Upgrade to Rust 2021 edition ([#387]) +- MSRV 1.56+ ([#387]) + +[#387]: https://github.com/RustCrypto/AEADs/pull/387 ## 0.0.2 (2021-07-20) ### Changed diff --git a/deoxys/Cargo.toml b/deoxys/Cargo.toml index 81a84357..1ea2748f 100644 --- a/deoxys/Cargo.toml +++ b/deoxys/Cargo.toml @@ -14,13 +14,14 @@ homepage = "https://github.com/RustCrypto" keywords = ["aead", "deoxys", "deoxys-i", "deoxys-ii"] categories = ["cryptography", "no-std"] readme = "README.md" -edition = "2018" +edition = "2021" +rust-version = "1.56" [dependencies] aead = { version = "0.4", default-features = false } aes = { version = "0.8", features=["hazmat"], default-features = false } subtle = { version = ">=2, <2.5", default-features = false } -zeroize = { version = "1.5", default-features = false } +zeroize = { version = "1", default-features = false } [dev-dependencies] aead = { version = "0.4", features = ["dev"], default-features = false } diff --git a/deoxys/README.md b/deoxys/README.md index 1ddeeaaf..bcc00d2d 100644 --- a/deoxys/README.md +++ b/deoxys/README.md @@ -45,7 +45,7 @@ dual licensed as above, without any additional terms or conditions. [docs-image]: https://docs.rs/deoxys/badge.svg [docs-link]: https://docs.rs/deoxys/ [license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg -[rustc-image]: https://img.shields.io/badge/rustc-1.50+-blue.svg +[rustc-image]: https://img.shields.io/badge/rustc-1.56+-blue.svg [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg [chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260038-AEADs [build-image]: https://github.com/RustCrypto/AEADs/workflows/deoxys/badge.svg?branch=master&event=push diff --git a/deoxys/src/modes.rs b/deoxys/src/modes.rs index 92b6a3ab..3c8bfb1c 100644 --- a/deoxys/src/modes.rs +++ b/deoxys/src/modes.rs @@ -1,4 +1,3 @@ -use core::convert::TryFrom; use core::marker::PhantomData; use aead::{ diff --git a/eax/CHANGELOG.md b/eax/CHANGELOG.md index 295049bd..3dde2833 100644 --- a/eax/CHANGELOG.md +++ b/eax/CHANGELOG.md @@ -9,6 +9,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Bump `cipher` crate dependency to v0.4 ([#387]) - Bump `cmac` crate dependency to v0.7 ([#387]) - Bump `ctr` crate dependency to v0.9 ([#387]) +- Upgrade to Rust 2021 edition ([#387]) +- MSRV 1.56+ ([#387]) + +[#387]: https://github.com/RustCrypto/AEADs/pull/387 ## 0.4.1 (2021-07-20) ### Changed @@ -42,7 +46,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Optional `std` feature; disabled by default ([#217]) ### Changed -- Use `aead` crate; MSRV 1.41+ +- Use `aead` crate; MSRV 1.56+ - Upgrade `aes` to v0.5, `block-cipher` to v0.8, `cmac` to v0.4, `ctr` to v0.5 ([#209]) [#217]: https://github.com/RustCrypto/AEADs/pull/217 diff --git a/eax/Cargo.toml b/eax/Cargo.toml index 4b14bdc4..4103ed29 100644 --- a/eax/Cargo.toml +++ b/eax/Cargo.toml @@ -10,7 +10,8 @@ This scheme is only based on a block cipher. It uses counter mode (CTR) for encryption and CBC mode for generating a OMAC/CMAC/CBCMAC (all names for the same thing). """ authors = ["RustCrypto Developers"] -edition = "2018" +edition = "2021" +rust-version = "1.56" license = "Apache-2.0 OR MIT" readme = "README.md" documentation = "https://docs.rs/eax" diff --git a/eax/README.md b/eax/README.md index 7ba96ac4..015272ec 100644 --- a/eax/README.md +++ b/eax/README.md @@ -35,7 +35,7 @@ dual licensed as above, without any additional terms or conditions. [docs-image]: https://docs.rs/eax/badge.svg [docs-link]: https://docs.rs/eax/ [license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg -[rustc-image]: https://img.shields.io/badge/rustc-1.41+-blue.svg +[rustc-image]: https://img.shields.io/badge/rustc-1.56+-blue.svg [codecov-image]: https://codecov.io/gh/RustCrypto/AEADs/branch/master/graph/badge.svg [codecov-link]: https://codecov.io/gh/RustCrypto/AEADs [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg diff --git a/mgm/CHANGELOG.md b/mgm/CHANGELOG.md index 7af59154..95fbfc0d 100644 --- a/mgm/CHANGELOG.md +++ b/mgm/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased ### Changed - Bump `cipher` crate dependency to v0.4 ([#387]) +- Upgrade to Rust 2021 edition ([#387]) +- MSRV 1.56+ ([#387]) + +[#387]: https://github.com/RustCrypto/AEADs/pull/387 ## 0.4.6 (2021-09-01) ### Added diff --git a/mgm/Cargo.toml b/mgm/Cargo.toml index a4593af3..e554401e 100644 --- a/mgm/Cargo.toml +++ b/mgm/Cargo.toml @@ -3,7 +3,8 @@ name = "mgm" version = "0.4.6" description = "Generic implementation of the Multilinear Galois Mode (MGM) cipher" authors = ["RustCrypto Developers"] -edition = "2018" +edition = "2021" +rust-version = "1.56" license = "Apache-2.0 OR MIT" readme = "README.md" documentation = "https://docs.rs/mgm" diff --git a/mgm/README.md b/mgm/README.md index 33fd49ea..9ded649c 100644 --- a/mgm/README.md +++ b/mgm/README.md @@ -42,7 +42,7 @@ dual licensed as above, without any additional terms or conditions. [docs-image]: https://docs.rs/mgm/badge.svg [docs-link]: https://docs.rs/mgm [license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg -[rustc-image]: https://img.shields.io/badge/rustc-1.41+-blue.svg +[rustc-image]: https://img.shields.io/badge/rustc-1.56+-blue.svg [codecov-image]: https://codecov.io/gh/RustCrypto/AEADs/branch/master/graph/badge.svg [codecov-link]: https://codecov.io/gh/RustCrypto/AEADs [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg diff --git a/mgm/src/gf/gf128_soft64.rs b/mgm/src/gf/gf128_soft64.rs index 47d90430..39e6353a 100644 --- a/mgm/src/gf/gf128_soft64.rs +++ b/mgm/src/gf/gf128_soft64.rs @@ -1,6 +1,5 @@ use super::{utils::bmul64, GfElement}; use aead::{consts::U16, generic_array::GenericArray}; -use core::convert::TryInto; pub struct Element(u64, u64); diff --git a/mgm/src/gf/gf64_pclmul.rs b/mgm/src/gf/gf64_pclmul.rs index 19e2c0d2..c6534240 100644 --- a/mgm/src/gf/gf64_pclmul.rs +++ b/mgm/src/gf/gf64_pclmul.rs @@ -2,7 +2,6 @@ //! on `x86` and `x86_64` target architectures. use super::GfElement; use aead::{consts::U8, generic_array::GenericArray}; -use core::convert::TryInto; #[cfg(target_arch = "x86")] use core::arch::x86::*; diff --git a/mgm/src/gf/gf64_soft64.rs b/mgm/src/gf/gf64_soft64.rs index e4c9f2ea..7ff8877b 100644 --- a/mgm/src/gf/gf64_soft64.rs +++ b/mgm/src/gf/gf64_soft64.rs @@ -1,6 +1,5 @@ use super::{utils::bmul64, GfElement}; use aead::{consts::U8, generic_array::GenericArray}; -use core::convert::TryInto; pub struct Element(u64); diff --git a/mgm/src/sealed.rs b/mgm/src/sealed.rs index 79d8558c..14f31b8e 100644 --- a/mgm/src/sealed.rs +++ b/mgm/src/sealed.rs @@ -6,7 +6,6 @@ use aead::{ Error, }; use cipher::BlockSizeUser; -use core::convert::TryInto; pub type Counter = [<::BlockSize as Sealed>::Counter; 2]; diff --git a/xsalsa20poly1305/CHANGELOG.md b/xsalsa20poly1305/CHANGELOG.md index 85893410..38e1cf3f 100644 --- a/xsalsa20poly1305/CHANGELOG.md +++ b/xsalsa20poly1305/CHANGELOG.md @@ -7,7 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased ### Changed - Bump `salsa20` crate dependency to v0.10 ([#387]) -- Bump `zeroize` crate dependency to v1.5 ([#387]) +- Relax `zeroize` requirements ([#387]) +- Upgrade to Rust 2021 edition ([#387]) +- MSRV 1.56+ ([#387]) + +[#387]: https://github.com/RustCrypto/AEADs/pull/387 ## 0.8.0 (2021-08-30) ### Changed diff --git a/xsalsa20poly1305/Cargo.toml b/xsalsa20poly1305/Cargo.toml index d7fb31b3..30ea902e 100644 --- a/xsalsa20poly1305/Cargo.toml +++ b/xsalsa20poly1305/Cargo.toml @@ -6,7 +6,8 @@ Pure Rust implementation of the XSalsa20Poly1305 (a.k.a. NaCl crypto_secretbox) authenticated encryption algorithm """ authors = ["RustCrypto Developers"] -edition = "2018" +edition = "2021" +rust-version = "1.56" license = "Apache-2.0 OR MIT" readme = "README.md" documentation = "https://docs.rs/xsalsa20poly1305" @@ -20,7 +21,7 @@ salsa20 = { version = "0.10", features = ["zeroize"] } poly1305 = "0.7" rand_core = { version = "0.6", optional = true } subtle = { version = ">=2, <2.5", default-features = false } -zeroize = { version = "1.5", default-features = false } +zeroize = { version = "1", default-features = false } [features] default = ["alloc", "rand_core", "aead/rand_core"] diff --git a/xsalsa20poly1305/README.md b/xsalsa20poly1305/README.md index 05bc1fd2..43af199b 100644 --- a/xsalsa20poly1305/README.md +++ b/xsalsa20poly1305/README.md @@ -10,13 +10,13 @@ **XSalsa20Poly1305** (a.k.a. NaCl [`crypto_secretbox`][1]) is an [authenticated encryption][2] cipher amenable to fast, constant-time -implementations in software, based on the [Salsa20][3] stream cipher +implementations in software, based on the [Salsa20][3] stream cipher (with [XSalsa20][4] 192-bit nonce extension) and the [Poly1305][5] universal hash function, which acts as a message authentication code. This algorithm has largely been replaced by the newer [ChaCha20Poly1305][6] (and the associated [XChaCha20Poly1305][7]) AEAD ciphers ([RFC 8439][8]), -but is useful for interoperability with legacy NaCl-based protocols. +but is useful for interoperability with legacy NaCl-based protocols. [Documentation][docs-link] @@ -50,7 +50,7 @@ dual licensed as above, without any additional terms or conditions. [docs-image]: https://docs.rs/xsalsa20poly1305/badge.svg [docs-link]: https://docs.rs/xsalsa20poly1305/ [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 +[rustc-image]: https://img.shields.io/badge/rustc-1.56+-blue.svg [codecov-image]: https://codecov.io/gh/RustCrypto/AEADs/branch/master/graph/badge.svg [codecov-link]: https://codecov.io/gh/RustCrypto/AEADs [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg