Extract encrypted payload
This commit is contained in:
parent
69e4b75f3f
commit
dd6df30d5c
@ -11,7 +11,7 @@ pub struct SCEPRequest {
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
pub struct SCEPResponse {
|
||||
|
||||
encrypted_data_len: usize,
|
||||
}
|
||||
|
||||
/// 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_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)
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user