deps(server): version bump

This commit is contained in:
Skipper
2026-06-26 12:10:29 +02:00
committed by CleverWild
parent 27925a67ad
commit 6730534187
14 changed files with 1148 additions and 1066 deletions

View File

@@ -1,4 +1,3 @@
use argon2::password_hash::Salt as ArgonSalt;
use rand::{
Rng as _, SeedableRng,
rngs::{StdRng, SysRng},
@@ -42,7 +41,7 @@ impl<'a> TryFrom<&'a [u8]> for Nonce {
}
}
pub type Salt = [u8; ArgonSalt::RECOMMENDED_LENGTH];
pub type Salt = [u8; argon2::RECOMMENDED_SALT_LEN];
pub fn generate_salt() -> Salt {
let mut salt = Salt::default();

View File

@@ -3,8 +3,8 @@ use encryption::v1::{Nonce, Salt};
use argon2::{Algorithm, Argon2};
use chacha20poly1305::{
AeadInPlace, Key, KeyInit as _, XChaCha20Poly1305, XNonce,
aead::{AeadMut, Error, Payload},
AeadInOut, Key, KeyInit as _, XChaCha20Poly1305, XNonce,
aead::{Aead, Error, Payload},
};
use rand::{
Rng as _, SeedableRng as _,
@@ -54,9 +54,9 @@ impl KeyCell {
) -> Result<(), Error> {
let key_reader = self.0.read();
let cipher = XChaCha20Poly1305::new(&key_reader);
let nonce = XNonce::from_slice(nonce.0.as_ref());
let nonce = XNonce::from(nonce.0);
let buffer = buffer.as_mut();
cipher.encrypt_in_place(nonce, associated_data, buffer)
cipher.encrypt_in_place(&nonce, associated_data, buffer)
}
pub fn decrypt_in_place(
&mut self,
@@ -66,10 +66,10 @@ impl KeyCell {
) -> Result<(), Error> {
let key_reader = self.0.read();
let cipher = XChaCha20Poly1305::new(&key_reader);
let nonce = XNonce::from_slice(nonce.0.as_ref());
let nonce = XNonce::from(nonce.0);
let mut buffer = buffer.write();
let buffer: &mut Vec<u8> = buffer.as_mut();
cipher.decrypt_in_place(nonce, associated_data, buffer)
cipher.decrypt_in_place(&nonce, associated_data, buffer)
}
pub fn encrypt(
@@ -79,11 +79,11 @@ impl KeyCell {
plaintext: impl AsRef<[u8]>,
) -> Result<Vec<u8>, Error> {
let key_reader = self.0.read();
let mut cipher = XChaCha20Poly1305::new(&key_reader);
let nonce = XNonce::from_slice(nonce.0.as_ref());
let cipher = XChaCha20Poly1305::new(&key_reader);
let nonce = XNonce::from(nonce.0);
let ciphertext = cipher.encrypt(
nonce,
&nonce,
Payload {
msg: plaintext.as_ref(),
aad: associated_data,

View File

@@ -10,7 +10,7 @@ use crate::{
use arbiter_crypto::safecell::{SafeCell, SafeCellHandle as _};
use state::State;
use chacha20poly1305::{AeadInPlace, KeyInit as _, XChaCha20Poly1305, XNonce};
use chacha20poly1305::{AeadInOut, KeyInit as _, XChaCha20Poly1305, XNonce};
use kameo::{Actor, error::SendError, messages, prelude::Message};
use kameo_actors::message_bus::Register;
use tokio::sync::oneshot;
@@ -101,14 +101,17 @@ impl VaultGate {
ciphertext: &[u8],
associated_data: &[u8],
) -> Result<SafeCell<Vec<u8>>, ()> {
let nonce = XNonce::from_slice(nonce);
let Ok(nonce) = XNonce::try_from(nonce) else {
error!("Encrypted key material carries a nonce of the wrong length");
return Err(());
};
let cipher = XChaCha20Poly1305::new(secret.as_bytes().into());
let mut key_buffer = SafeCell::new(ciphertext.to_vec());
let decryption_result = key_buffer.write_inline(|write_handle| {
cipher.decrypt_in_place(nonce, associated_data, write_handle)
cipher.decrypt_in_place(&nonce, associated_data, write_handle)
});
match decryption_result {