Trait apple_codesign::embedded_signature::Blob
source · pub trait Blob<'a>where
Self: Sized,{
// Required methods
fn magic() -> u32;
fn from_blob_bytes(data: &'a [u8]) -> Result<Self, AppleCodesignError>;
fn serialize_payload(&self) -> Result<Vec<u8>, AppleCodesignError>;
// Provided methods
fn to_blob_bytes(&self) -> Result<Vec<u8>, AppleCodesignError> { ... }
fn digest_with(
&self,
hash_type: DigestType
) -> Result<Vec<u8>, AppleCodesignError> { ... }
}
Expand description
Provides common features for a parsed blob type.
Required Methods§
sourcefn from_blob_bytes(data: &'a [u8]) -> Result<Self, AppleCodesignError>
fn from_blob_bytes(data: &'a [u8]) -> Result<Self, AppleCodesignError>
Attempt to construct an instance by parsing a bytes slice.
The slice begins with the 8 byte blob header denoting the magic and length.
sourcefn serialize_payload(&self) -> Result<Vec<u8>, AppleCodesignError>
fn serialize_payload(&self) -> Result<Vec<u8>, AppleCodesignError>
Serialize the payload of this blob to bytes.
Does not include the magic or length header fields common to blobs.
Provided Methods§
sourcefn to_blob_bytes(&self) -> Result<Vec<u8>, AppleCodesignError>
fn to_blob_bytes(&self) -> Result<Vec<u8>, AppleCodesignError>
Serialize this blob to bytes.
This is Blob::serialize_payload with the blob magic and length prepended.
sourcefn digest_with(
&self,
hash_type: DigestType
) -> Result<Vec<u8>, AppleCodesignError>
fn digest_with( &self, hash_type: DigestType ) -> Result<Vec<u8>, AppleCodesignError>
Obtain the digest of the blob using the specified hasher.
Default implementation calls Blob::to_blob_bytes and digests that, which should always be correct.
Object Safety§
This trait is not object safe.