use crate::common::get_cstring;
use crate::signatures::common::{SignatureError, SignatureResult, CONFIDENCE_HIGH};
pub const DESCRIPTION: &str = "Copyright text";
pub fn copyright_magic() -> Vec<Vec<u8>> {
vec![
b"copyright".to_vec(),
b"Copyright".to_vec(),
b"COPYRIGHT".to_vec(),
]
}
pub fn copyright_parser(
file_data: &[u8],
offset: usize,
) -> Result<SignatureResult, SignatureError> {
const MAGIC_SIZE: usize = 9;
let mut result = SignatureResult {
offset,
description: DESCRIPTION.to_string(),
confidence: CONFIDENCE_HIGH,
..Default::default()
};
let copyright_string = get_cstring(&file_data[offset..]);
if copyright_string.len() > MAGIC_SIZE {
result.size = copyright_string.len();
result.description = format!("{}: \"{:.100}\"", result.description, copyright_string);
return Ok(result);
}
Err(SignatureError)
}