pub struct FactorySettings<CustomerData = RawCustomerData, VendorUsage = RawVendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,{
pub boot_configuration: BootConfiguration,
pub usb_id: UsbId,
pub debug_access: DebugAccess,
pub vendor_usage: VendorUsage,
pub secure_boot_configuration: SecureBootConfiguration,
pub prince_configuration: PrinceConfiguration,
pub prince_subregions: [PrinceSubregion; 3],
pub rot_fingerprint: Sha256Hash,
pub customer_data: CustomerData,
pub seal: bool,
/* private fields */
}Fields§
§boot_configuration: BootConfiguration§usb_id: UsbId§debug_access: DebugAccess§vendor_usage: VendorUsage§secure_boot_configuration: SecureBootConfiguration§prince_configuration: PrinceConfiguration§prince_subregions: [PrinceSubregion; 3]§rot_fingerprint: Sha256HashFingerprint of allowed root certificates for signed firmware update process.
Called “ROTKH” for “root of trust key table hash” in vendor documentation.
There can be up to four root certificate authorities; each have a “fingerprint” (cf. elsewhere), the fingerprint here is the SHA256 hash of the concatenation of these fingerprints. Due to this construction, each SB2.1 firmware container needs to contain all the root certificates (plus possibly a certificate chain to the authority actually signing the firmware).
customer_data: CustomerData224 bytes that the customer can use.
seal: boolSetting this to true will calculate the SHA256 automatically for sha256_hash.
Implementations§
Source§impl<CustomerData, VendorUsage> FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
impl<CustomerData, VendorUsage> FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
Trait Implementations§
Source§impl<CustomerData, VendorUsage> Clone for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + Clone,
VendorUsage: FactorySettingsVendorUsage + Clone,
impl<CustomerData, VendorUsage> Clone for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + Clone,
VendorUsage: FactorySettingsVendorUsage + Clone,
Source§fn clone(&self) -> FactorySettings<CustomerData, VendorUsage>
fn clone(&self) -> FactorySettings<CustomerData, VendorUsage>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<CustomerData, VendorUsage> Debug for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + Debug,
VendorUsage: FactorySettingsVendorUsage + Debug,
impl<CustomerData, VendorUsage> Debug for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + Debug,
VendorUsage: FactorySettingsVendorUsage + Debug,
Source§impl<CustomerData, VendorUsage> Default for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + Default,
VendorUsage: FactorySettingsVendorUsage + Default,
impl<CustomerData, VendorUsage> Default for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + Default,
VendorUsage: FactorySettingsVendorUsage + Default,
Source§fn default() -> FactorySettings<CustomerData, VendorUsage>
fn default() -> FactorySettings<CustomerData, VendorUsage>
Returns the “default value” for a type. Read more
Source§impl<'de, CustomerData, VendorUsage> Deserialize<'de> for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + Deserialize<'de> + Default,
VendorUsage: FactorySettingsVendorUsage + Deserialize<'de> + Default,
impl<'de, CustomerData, VendorUsage> Deserialize<'de> for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + Deserialize<'de> + Default,
VendorUsage: FactorySettingsVendorUsage + Deserialize<'de> + Default,
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
Source§impl<CustomerData, VendorUsage> Hash for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + Hash,
VendorUsage: FactorySettingsVendorUsage + Hash,
impl<CustomerData, VendorUsage> Hash for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + Hash,
VendorUsage: FactorySettingsVendorUsage + Hash,
Source§impl<CustomerData, VendorUsage> Ord for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + Ord,
VendorUsage: FactorySettingsVendorUsage + Ord,
impl<CustomerData, VendorUsage> Ord for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + Ord,
VendorUsage: FactorySettingsVendorUsage + Ord,
Source§fn cmp(&self, other: &FactorySettings<CustomerData, VendorUsage>) -> Ordering
fn cmp(&self, other: &FactorySettings<CustomerData, VendorUsage>) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl<CustomerData, VendorUsage> PartialEq for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + PartialEq,
VendorUsage: FactorySettingsVendorUsage + PartialEq,
impl<CustomerData, VendorUsage> PartialEq for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + PartialEq,
VendorUsage: FactorySettingsVendorUsage + PartialEq,
Source§fn eq(&self, other: &FactorySettings<CustomerData, VendorUsage>) -> bool
fn eq(&self, other: &FactorySettings<CustomerData, VendorUsage>) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl<CustomerData, VendorUsage> PartialOrd for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + PartialOrd,
VendorUsage: FactorySettingsVendorUsage + PartialOrd,
impl<CustomerData, VendorUsage> PartialOrd for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + PartialOrd,
VendorUsage: FactorySettingsVendorUsage + PartialOrd,
Source§impl<CustomerData, VendorUsage> Serialize for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + Serialize,
VendorUsage: FactorySettingsVendorUsage + Serialize,
impl<CustomerData, VendorUsage> Serialize for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + Serialize,
VendorUsage: FactorySettingsVendorUsage + Serialize,
Source§impl<CustomerData, VendorUsage> TryFrom<&[u8]> for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
impl<CustomerData, VendorUsage> TryFrom<&[u8]> for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
impl<CustomerData, VendorUsage> Copy for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData + Copy,
VendorUsage: FactorySettingsVendorUsage + Copy,
impl<CustomerData, VendorUsage> Eq for FactorySettings<CustomerData, VendorUsage>
impl<CustomerData, VendorUsage> StructuralPartialEq for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
Auto Trait Implementations§
impl<CustomerData, VendorUsage> Freeze for FactorySettings<CustomerData, VendorUsage>
impl<CustomerData, VendorUsage> RefUnwindSafe for FactorySettings<CustomerData, VendorUsage>where
VendorUsage: RefUnwindSafe,
CustomerData: RefUnwindSafe,
impl<CustomerData, VendorUsage> Send for FactorySettings<CustomerData, VendorUsage>
impl<CustomerData, VendorUsage> Sync for FactorySettings<CustomerData, VendorUsage>
impl<CustomerData, VendorUsage> Unpin for FactorySettings<CustomerData, VendorUsage>
impl<CustomerData, VendorUsage> UnwindSafe for FactorySettings<CustomerData, VendorUsage>where
VendorUsage: UnwindSafe,
CustomerData: UnwindSafe,
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more