use nodedb_wal::crypto::{WalEncryptionKey, decrypt_segment_envelope, encrypt_segment_envelope};
use super::error::SegmentError;
pub const SEGT_MAGIC: [u8; 4] = *b"SEGT";
pub fn encrypt_file(key: &WalEncryptionKey, plaintext: &[u8]) -> Result<Vec<u8>, SegmentError> {
encrypt_segment_envelope(key, &SEGT_MAGIC, plaintext)
.map_err(|e| SegmentError::EncryptionFailed(e.to_string()))
}
pub fn decrypt_file(key: &WalEncryptionKey, blob: &[u8]) -> Result<Vec<u8>, SegmentError> {
decrypt_segment_envelope(key, &SEGT_MAGIC, blob)
.map_err(|e| SegmentError::DecryptionFailed(e.to_string()))
}
pub fn is_encrypted(blob: &[u8]) -> Result<bool, SegmentError> {
if blob.len() < 4 {
return Err(SegmentError::Corrupt(
"file too short to sniff magic".into(),
));
}
Ok(blob[..4] == SEGT_MAGIC)
}