pub mod decrypt;
pub mod encrypt;
pub mod result;
use crate::encryption::chunk_job::decrypt::DecryptChunkJob;
use crate::encryption::chunk_job::encrypt::EncryptChunkJob;
use crate::errors::EnkryptitError;
use crate::parallelism::EnkryptitJob;
use crate::parallelism::pool::EnkryptitPool;
use crate::types::CompressionType;
use chacha20poly1305::XChaCha20Poly1305;
use std::sync::Arc;
pub fn submit_encrypt_chunk(
pool: &EnkryptitPool<EncryptChunkJob>,
index: u64,
data: Vec<u8>,
nonce: Arc<[u8; 24]>,
compression: Arc<CompressionType>,
cipher: Arc<XChaCha20Poly1305>,
) -> Result<(), EnkryptitError> {
let job = EncryptChunkJob {
index,
data,
master_nonce: nonce,
compression,
cipher,
};
pool.submit(EnkryptitJob { task: job })?;
Ok(())
}
pub fn submit_decrypt_chunk(
pool: &EnkryptitPool<DecryptChunkJob>,
index: u64,
data: Vec<u8>,
nonce: Arc<[u8; 24]>,
compression: Arc<CompressionType>,
cipher: Arc<XChaCha20Poly1305>,
) -> Result<(), EnkryptitError> {
let job = DecryptChunkJob {
index,
data,
master_nonce: nonce,
compression,
cipher,
};
pool.submit(EnkryptitJob { task: job })?;
Ok(())
}