Struct RSA

Source
pub struct RSA { /* private fields */ }
Expand description

RSA (Rivest Shamir Adleman) Accelerator

Implementations§

Source§

impl RSA

Source

pub const PTR: *const RegisterBlock = {0x6003c000 as *const rsa::RegisterBlock}

Pointer to the register block

Source

pub const fn ptr() -> *const RegisterBlock

Return the pointer to the register block

Source

pub unsafe fn steal() -> Self

Steal an instance of this peripheral

§Safety

Ensure that the new instance of the peripheral cannot be used in a way that may race with any existing instances, for example by only accessing read-only or write-only registers, or by consuming the original peripheral and using critical sections to coordinate access between multiple new instances.

Additionally, other software such as HALs may rely on only one peripheral instance existing to ensure memory safety; ensure no stolen instances are passed to such software.

Methods from Deref<Target = RegisterBlock>§

Source

pub fn m_mem(&self, n: usize) -> &M_MEM

0x00..0x200 - Represents M

Source

pub fn m_mem_iter(&self) -> impl Iterator<Item = &M_MEM>

Iterator for array of: 0x00..0x200 - Represents M

Source

pub fn z_mem(&self, n: usize) -> &Z_MEM

0x200..0x400 - Represents Z

Source

pub fn z_mem_iter(&self) -> impl Iterator<Item = &Z_MEM>

Iterator for array of: 0x200..0x400 - Represents Z

Source

pub fn y_mem(&self, n: usize) -> &Y_MEM

0x400..0x600 - Represents Y

Source

pub fn y_mem_iter(&self) -> impl Iterator<Item = &Y_MEM>

Iterator for array of: 0x400..0x600 - Represents Y

Source

pub fn x_mem(&self, n: usize) -> &X_MEM

0x600..0x800 - Represents X

Source

pub fn x_mem_iter(&self) -> impl Iterator<Item = &X_MEM>

Iterator for array of: 0x600..0x800 - Represents X

Source

pub fn m_prime(&self) -> &M_PRIME

0x800 - Register to store M’

Source

pub fn mode(&self) -> &MODE

0x804 - RSA length mode

Source

pub fn clean(&self) -> &CLEAN

0x808 - RSA clean register

Source

pub fn modexp_start(&self) -> &MODEXP_START

0x80c - Modular exponentiation starting bit

Source

pub fn modmult_start(&self) -> &MODMULT_START

0x810 - Modular multiplication starting bit

Source

pub fn mult_start(&self) -> &MULT_START

0x814 - Normal multiplication starting bit

Source

pub fn idle(&self) -> &IDLE

0x818 - RSA idle register

Source

pub fn int_clr(&self) -> &INT_CLR

0x81c - RSA clear interrupt register

Source

pub fn constant_time(&self) -> &CONSTANT_TIME

0x820 - The constant_time option

Source

pub fn search_enable(&self) -> &SEARCH_ENABLE

0x824 - The search option

Source

pub fn search_pos(&self) -> &SEARCH_POS

0x828 - The search position

Source

pub fn int_ena(&self) -> &INT_ENA

0x82c - RSA interrupt enable register

Source

pub fn date(&self) -> &DATE

0x830 - Version control register

Trait Implementations§

Source§

impl Debug for RSA

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deref for RSA

Source§

type Target = RegisterBlock

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl Send for RSA

Auto Trait Implementations§

§

impl Freeze for RSA

§

impl RefUnwindSafe for RSA

§

impl !Sync for RSA

§

impl Unpin for RSA

§

impl UnwindSafe for RSA

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.