feat: added randomization and XOR encoding
This commit is contained in:
parent
0576c4fd3b
commit
d8a277e769
@ -48,10 +48,10 @@ pub async fn download_beacon_installer(
|
|||||||
State(db): State<AppState>
|
State(db): State<AppState>
|
||||||
) -> Result<impl IntoResponse, crate::error::Error> {
|
) -> Result<impl IntoResponse, crate::error::Error> {
|
||||||
use rand::{rngs::OsRng, TryRngCore};
|
use rand::{rngs::OsRng, TryRngCore};
|
||||||
use sparse_actions::payload_types::Parameters_t;
|
use sparse_actions::payload_types::{Parameters_t, XOR_KEY};
|
||||||
|
|
||||||
let mut parameters_buffer = vec![0u8; std::mem::size_of::<Parameters_t>()];
|
let mut parameters_buffer = vec![0u8; std::mem::size_of::<Parameters_t>()];
|
||||||
//let _ = OsRng.try_fill_bytes(&mut parameters_buffer);
|
let _ = OsRng.try_fill_bytes(&mut parameters_buffer);
|
||||||
|
|
||||||
let parameters: &mut Parameters_t = unsafe { std::mem::transmute(parameters_buffer.as_mut_ptr()) };
|
let parameters: &mut Parameters_t = unsafe { std::mem::transmute(parameters_buffer.as_mut_ptr()) };
|
||||||
|
|
||||||
@ -135,6 +135,11 @@ pub async fn download_beacon_installer(
|
|||||||
|
|
||||||
let installer_bytes = get_installer(&template.operating_system).await?;
|
let installer_bytes = get_installer(&template.operating_system).await?;
|
||||||
|
|
||||||
|
let parameters_bytes = parameters_buffer
|
||||||
|
.iter()
|
||||||
|
.map(|b| b ^ (XOR_KEY as u8))
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
use axum::http::header;
|
use axum::http::header;
|
||||||
|
|
||||||
Ok((
|
Ok((
|
||||||
@ -157,7 +162,7 @@ pub async fn download_beacon_installer(
|
|||||||
],
|
],
|
||||||
[
|
[
|
||||||
&installer_bytes[..],
|
&installer_bytes[..],
|
||||||
¶meters_buffer[..]
|
¶meters_bytes[..]
|
||||||
].concat()
|
].concat()
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user