Extract encrypted payload
This commit is contained in:
parent
69e4b75f3f
commit
dd6df30d5c
@ -11,7 +11,7 @@ pub struct SCEPRequest {
|
|||||||
|
|
||||||
#[derive(Debug, Default)]
|
#[derive(Debug, Default)]
|
||||||
pub struct SCEPResponse {
|
pub struct SCEPResponse {
|
||||||
|
encrypted_data_len: usize,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Parse asn1 content
|
/// Parse asn1 content
|
||||||
@ -103,7 +103,33 @@ pub fn decode_response(openssl: &str, res: &[u8]) -> anyhow::Result<SCEPResponse
|
|||||||
let pkcs7_data = hex::decode(byte_string.trim()).context("Decode PKCS7")?;
|
let pkcs7_data = hex::decode(byte_string.trim()).context("Decode PKCS7")?;
|
||||||
|
|
||||||
let pkcs7_decoded = parse_asn1(openssl, &pkcs7_data)?;
|
let pkcs7_decoded = parse_asn1(openssl, &pkcs7_data)?;
|
||||||
println!("{}", pkcs7_decoded);
|
log::debug!("PKCS7 decoded data: {}", pkcs7_decoded);
|
||||||
|
|
||||||
|
// Extract encrypted payload
|
||||||
|
let mut byte_string = String::new();
|
||||||
|
let mut extracting = false;
|
||||||
|
for (num, line) in lines.iter().enumerate() {
|
||||||
|
// Wait for payload
|
||||||
|
if !extracting {
|
||||||
|
if !line.contains(":aes-128-cbc") {
|
||||||
|
extracting = true;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if line.contains("EOC") {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if !line.contains("[HEX DUMP]:") {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
byte_string.push_str(&line.split_once("[HEX DUMP]:").unwrap().1);
|
||||||
|
}
|
||||||
|
|
||||||
|
let encrypted_data = hex::decode(byte_string.trim()).context("Decode encrypted data")?;
|
||||||
|
res.encrypted_data_len = encrypted_data.len();
|
||||||
|
|
||||||
Ok(res)
|
Ok(res)
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user