fix(store-encryption): Remove an unwrap that snuck in (#4506)

This commit is contained in:
Damir Jelić
2025-01-10 14:13:10 +01:00
committed by GitHub
parent 1dd2b2c9e8
commit def4bbbed2
2 changed files with 14 additions and 1 deletions

View File

@@ -6,6 +6,13 @@ All notable changes to this project will be documented in this file.
## [Unreleased] - ReleaseDate
### Bug Fixes
- Remove the usage of an unwrap in the `StoreCipher::import_with_key` method.
This could have lead to panics if the second argument was an invalid
`StoreCipher` export.
([#4506](https://github.com/matrix-org/matrix-rust-sdk/pull/4506))
## [0.9.0] - 2024-12-18
No notable changes in this release.

View File

@@ -334,7 +334,7 @@ impl StoreCipher {
/// # anyhow::Ok(()) };
/// ```
pub fn import_with_key(key: &[u8; 32], encrypted: &[u8]) -> Result<Self, Error> {
let encrypted: EncryptedStoreCipher = rmp_serde::from_slice(encrypted).unwrap();
let encrypted: EncryptedStoreCipher = rmp_serde::from_slice(encrypted)?;
if let KdfInfo::Pbkdf2ToChaCha20Poly1305 { .. } = encrypted.kdf_info {
return Err(Error::KdfMismatch);
@@ -903,6 +903,12 @@ mod tests {
Ok(())
}
#[test]
fn test_importing_invalid_store_cipher_does_not_panic() {
// This used to panic, we're testing that we're getting a real error.
assert!(StoreCipher::import_with_key(&[0; 32], &[0; 64]).is_err())
}
#[test]
fn encrypting_values() -> Result<(), Error> {
let event = json!({