Struct apple_xar::table_of_contents::Signature
source · pub struct Signature {
pub style: SignatureStyle,
pub offset: u64,
pub size: u64,
pub key_info: KeyInfo,
}
Fields§
§style: SignatureStyle
§offset: u64
§size: u64
§key_info: KeyInfo
Implementations§
source§impl Signature
impl Signature
sourcepub fn x509_certificates(&self) -> XarResult<Vec<CapturedX509Certificate>>
pub fn x509_certificates(&self) -> XarResult<Vec<CapturedX509Certificate>>
Obtained parsed X.509 certificates.
Examples found in repository?
src/reader.rs (line 334)
329 330 331 332 333 334 335 336 337 338 339 340
pub fn rsa_signature(&mut self) -> XarResult<Option<(Vec<u8>, Vec<CapturedX509Certificate>)>> {
if let Some(sig) = self.toc.find_signature(SignatureStyle::Rsa).cloned() {
let mut data = Vec::<u8>::with_capacity(sig.size as _);
self.write_heap_slice(sig.offset, sig.size as _, &mut data)?;
let certs = sig.x509_certificates()?;
Ok(Some((data, certs)))
} else {
Ok(None)
}
}
sourcepub fn write_xml<W: Write>(
&self,
writer: &mut EventWriter<W>,
name: &str
) -> XarResult<()>
pub fn write_xml<W: Write>(
&self,
writer: &mut EventWriter<W>,
name: &str
) -> XarResult<()>
Examples found in repository?
src/table_of_contents.rs (line 98)
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
pub fn write_xml<W: Write>(&self, writer: &mut EventWriter<W>) -> XarResult<()> {
writer.write(XmlEvent::StartDocument {
version: XmlVersion::Version10,
encoding: Some("UTF-8"),
standalone: None,
})?;
writer.write(XmlEvent::start_element("xar"))?;
writer.write(XmlEvent::start_element("toc"))?;
writer.write(XmlEvent::start_element("creation-time"))?;
writer.write(XmlEvent::characters(&self.creation_time))?;
writer.write(XmlEvent::end_element())?;
self.checksum.write_xml(writer)?;
if let Some(sig) = &self.signature {
sig.write_xml(writer, "signature")?;
}
if let Some(sig) = &self.x_signature {
sig.write_xml(writer, "x-signature")?;
}
for file in &self.files {
file.write_xml(writer)?;
}
writer.write(XmlEvent::end_element().name("toc"))?;
writer.write(XmlEvent::end_element().name("xar"))?;
Ok(())
}
Trait Implementations§
source§impl<'de> Deserialize<'de> for Signature
impl<'de> Deserialize<'de> for Signature
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more