fix(security): implement P1 loopback session token, P2 AAD filename binding, and P4 memory zeroization
This commit is contained in:
+7
-1
@@ -14,7 +14,7 @@ use dav_server::{
|
||||
};
|
||||
use futures_util::stream;
|
||||
use tracing::{debug, error, warn};
|
||||
use zeroize::Zeroizing;
|
||||
use zeroize::{Zeroize, Zeroizing};
|
||||
|
||||
use crate::carrier::CarrierFs;
|
||||
use crate::crypto::{decrypt_chunk, encrypt_chunk, CHUNK_SIZE};
|
||||
@@ -200,6 +200,9 @@ impl SanctumFile {
|
||||
|
||||
if !is_current {
|
||||
self.flush_cached_chunk()?;
|
||||
if let Some((_, ref mut data, _)) = self.cached_chunk {
|
||||
data.zeroize();
|
||||
}
|
||||
|
||||
let payload = match self.db.read_chunk(self.node_id, chunk_index).map_err(|e| {
|
||||
error!("Fehler beim Lesen des Chunks #{chunk_index}: {e}");
|
||||
@@ -236,6 +239,9 @@ impl Drop for SanctumFile {
|
||||
if let Err(e) = self.flush_cached_chunk() {
|
||||
warn!("Fehler beim automatischen Flush im SanctumFile::drop: {:?}", e);
|
||||
}
|
||||
if let Some((_, ref mut data, _)) = self.cached_chunk {
|
||||
data.zeroize();
|
||||
}
|
||||
let now = SystemTime::now()
|
||||
.duration_since(UNIX_EPOCH)
|
||||
.map(|d| d.as_secs())
|
||||
|
||||
Reference in New Issue
Block a user