Struct lpc55::protected_flash::FactorySettings
source · [−]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: Sha256Hash
Fingerprint 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: CustomerData
224 bytes that the customer can use.
seal: bool
Setting this to true will calculate the SHA256 automatically for sha256_hash
.
Implementations
sourceimpl<CustomerData, VendorUsage> FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
impl<CustomerData, VendorUsage> FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
Trait Implementations
sourceimpl<CustomerData: Clone, VendorUsage: Clone> Clone for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
impl<CustomerData: Clone, VendorUsage: Clone> Clone for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
sourcefn clone(&self) -> FactorySettings<CustomerData, VendorUsage>
fn clone(&self) -> FactorySettings<CustomerData, VendorUsage>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresourceimpl<CustomerData: Debug, VendorUsage: Debug> Debug for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
impl<CustomerData: Debug, VendorUsage: Debug> Debug for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
sourceimpl<CustomerData: Default, VendorUsage: Default> Default for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
impl<CustomerData: Default, VendorUsage: Default> Default for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
sourcefn default() -> FactorySettings<CustomerData, VendorUsage>
fn default() -> FactorySettings<CustomerData, VendorUsage>
Returns the “default value” for a type. Read more
sourceimpl<'de, CustomerData, VendorUsage> Deserialize<'de> for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
CustomerData: Deserialize<'de>,
VendorUsage: Deserialize<'de>,
CustomerData: Default,
VendorUsage: Default,
impl<'de, CustomerData, VendorUsage> Deserialize<'de> for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
CustomerData: Deserialize<'de>,
VendorUsage: Deserialize<'de>,
CustomerData: Default,
VendorUsage: Default,
sourcefn 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
sourceimpl<CustomerData: Hash, VendorUsage: Hash> Hash for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
impl<CustomerData: Hash, VendorUsage: Hash> Hash for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
sourceimpl<CustomerData: Ord, VendorUsage: Ord> Ord for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
impl<CustomerData: Ord, VendorUsage: Ord> Ord for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
sourcefn cmp(&self, other: &FactorySettings<CustomerData, VendorUsage>) -> Ordering
fn cmp(&self, other: &FactorySettings<CustomerData, VendorUsage>) -> Ordering
1.21.0 · sourcefn 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
1.21.0 · sourcefn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the minimum of two values. Read more
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
Restrict a value to a certain interval. Read more
sourceimpl<CustomerData: PartialEq, VendorUsage: PartialEq> PartialEq<FactorySettings<CustomerData, VendorUsage>> for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
impl<CustomerData: PartialEq, VendorUsage: PartialEq> PartialEq<FactorySettings<CustomerData, VendorUsage>> for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
sourcefn eq(&self, other: &FactorySettings<CustomerData, VendorUsage>) -> bool
fn eq(&self, other: &FactorySettings<CustomerData, VendorUsage>) -> bool
sourceimpl<CustomerData: PartialOrd, VendorUsage: PartialOrd> PartialOrd<FactorySettings<CustomerData, VendorUsage>> for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
impl<CustomerData: PartialOrd, VendorUsage: PartialOrd> PartialOrd<FactorySettings<CustomerData, VendorUsage>> for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
sourcefn partial_cmp(
&self,
other: &FactorySettings<CustomerData, VendorUsage>
) -> Option<Ordering>
fn partial_cmp(
&self,
other: &FactorySettings<CustomerData, VendorUsage>
) -> Option<Ordering>
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moresourceimpl<CustomerData, VendorUsage> Serialize for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
CustomerData: Serialize,
VendorUsage: Serialize,
impl<CustomerData, VendorUsage> Serialize for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
CustomerData: Serialize,
VendorUsage: Serialize,
sourceimpl<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: Copy, VendorUsage: Copy> Copy for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
impl<CustomerData: Eq, VendorUsage: Eq> Eq for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
impl<CustomerData, VendorUsage> StructuralEq for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
impl<CustomerData, VendorUsage> StructuralPartialEq for FactorySettings<CustomerData, VendorUsage>where
CustomerData: FactorySettingsCustomerData,
VendorUsage: FactorySettingsVendorUsage,
Auto Trait Implementations
impl<CustomerData, VendorUsage> RefUnwindSafe for FactorySettings<CustomerData, VendorUsage>where
CustomerData: RefUnwindSafe,
VendorUsage: RefUnwindSafe,
impl<CustomerData, VendorUsage> Send for FactorySettings<CustomerData, VendorUsage>where
CustomerData: Send,
VendorUsage: Send,
impl<CustomerData, VendorUsage> Sync for FactorySettings<CustomerData, VendorUsage>where
CustomerData: Sync,
VendorUsage: Sync,
impl<CustomerData, VendorUsage> Unpin for FactorySettings<CustomerData, VendorUsage>where
CustomerData: Unpin,
VendorUsage: Unpin,
impl<CustomerData, VendorUsage> UnwindSafe for FactorySettings<CustomerData, VendorUsage>where
CustomerData: UnwindSafe,
VendorUsage: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.