build(deps): bump base64 from 0.20.0 to 0.21.0

Bumps [base64](https://github.com/marshallpierce/rust-base64) from 0.20.0 to 0.21.0.
- [Release notes](https://github.com/marshallpierce/rust-base64/releases)
- [Changelog](https://github.com/marshallpierce/rust-base64/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/marshallpierce/rust-base64/compare/v0.20.0...v0.21.0)

---
updated-dependencies:
- dependency-name: base64
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
This commit is contained in:
dependabot[bot] 2023-02-26 20:28:32 +00:00 committed by GitHub
parent c37352adee
commit 0cc9e50cd2
3 changed files with 13 additions and 18 deletions

8
Cargo.lock generated
View File

@ -108,12 +108,6 @@ version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
[[package]]
name = "base64"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ea22880d78093b0cbe17c89f64a7d457941e65759157ec6cb31a31d652b05e5"
[[package]]
name = "base64"
version = "0.21.0"
@ -1719,7 +1713,7 @@ dependencies = [
"aho-corasick",
"anyhow",
"backoff",
"base64 0.20.0",
"base64 0.21.0",
"binrw",
"bytes",
"bytesize",

View File

@ -42,7 +42,7 @@ scrypt = { version = "0.10", default-features = false }
# cdc = "0.1"
integer-sqrt = "0.1"
# serialization
base64 = "0.20"
base64 = "0.21"
binrw = "0.11"
hex = { version = "0.4", features = ["serde"] }
serde = { version = "1", features = ["derive"] }

View File

@ -1,4 +1,5 @@
use anyhow::{anyhow, Result};
use base64::{engine::general_purpose::STANDARD, Engine as _};
use chrono::{DateTime, Local};
use rand::{thread_rng, RngCore};
use scrypt::Params;
@ -28,7 +29,7 @@ impl KeyFile {
fn kdf_key(&self, passwd: &impl AsRef<[u8]>) -> Result<Key> {
let params = Params::new(log_2(self.n), self.r, self.p)
.map_err(|_| anyhow!("invalid scrypt paramters"))?;
let salt = base64::decode(&self.salt)?;
let salt = STANDARD.decode(&self.salt)?;
let mut key = [0; 64];
scrypt::scrypt(passwd.as_ref(), &salt, &params, &mut key).expect("output length invalid?");
@ -40,7 +41,7 @@ impl KeyFile {
/// The key usually should be the key generated by [`kdf_key()`](Self::kdf_key)
fn key_from_data(&self, key: &Key) -> Result<Key> {
let dec_data = key
.decrypt_data(&base64::decode(&self.data)?)
.decrypt_data(&STANDARD.decode(&self.data)?)
.map_err(|_| anyhow!("decryption failed"))?;
serde_json::from_slice::<MasterKey>(&dec_data)?.key()
}
@ -78,8 +79,8 @@ impl KeyFile {
r: params.r(),
p: params.p(),
created: with_created.then(Local::now),
data: base64::encode(data),
salt: base64::encode(salt),
data: STANDARD.encode(data),
salt: STANDARD.encode(salt),
})
}
}
@ -117,19 +118,19 @@ impl MasterKey {
fn from_key(key: Key) -> Self {
let (encrypt, k, r) = key.to_keys();
Self {
encrypt: base64::encode(encrypt),
encrypt: STANDARD.encode(encrypt),
mac: Mac {
k: base64::encode(k),
r: base64::encode(r),
k: STANDARD.encode(k),
r: STANDARD.encode(r),
},
}
}
fn key(&self) -> Result<Key> {
Ok(Key::from_keys(
&base64::decode(&self.encrypt)?,
&base64::decode(&self.mac.k)?,
&base64::decode(&self.mac.r)?,
&STANDARD.decode(&self.encrypt)?,
&STANDARD.decode(&self.mac.k)?,
&STANDARD.decode(&self.mac.r)?,
))
}
}