Struct ECDSA

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

ECDSA (Elliptic Curve Digital Signature Algorithm) Accelerator

Implementations§

Source§

impl ECDSA

Source

pub const PTR: *const RegisterBlock = {0x50096000 as *const ecdsa::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 conf(&self) -> &CONF

0x04 - ECDSA configure register

Source

pub fn clk(&self) -> &CLK

0x08 - ECDSA clock gate register

Source

pub fn int_raw(&self) -> &INT_RAW

0x0c - ECDSA interrupt raw register, valid in level.

Source

pub fn int_st(&self) -> &INT_ST

0x10 - ECDSA interrupt status register.

Source

pub fn int_ena(&self) -> &INT_ENA

0x14 - ECDSA interrupt enable register.

Source

pub fn int_clr(&self) -> &INT_CLR

0x18 - ECDSA interrupt clear register.

Source

pub fn start(&self) -> &START

0x1c - ECDSA start register

Source

pub fn state(&self) -> &STATE

0x20 - ECDSA status register

Source

pub fn result(&self) -> &RESULT

0x24 - ECDSA result register

Source

pub fn date(&self) -> &DATE

0xfc - Version control register

Source

pub fn sha_mode(&self) -> &SHA_MODE

0x200 - ECDSA control SHA register

Source

pub fn sha_start(&self) -> &SHA_START

0x210 - ECDSA control SHA register

Source

pub fn sha_continue(&self) -> &SHA_CONTINUE

0x214 - ECDSA control SHA register

Source

pub fn sha_busy(&self) -> &SHA_BUSY

0x218 - ECDSA status register

Source

pub fn message_mem(&self, n: usize) -> &MESSAGE_MEM

0x280..0x2a0 - The memory that stores message.

Source

pub fn message_mem_iter(&self) -> impl Iterator<Item = &MESSAGE_MEM>

Iterator for array of: 0x280..0x2a0 - The memory that stores message.

Source

pub fn r_mem(&self, n: usize) -> &R_MEM

0xa00..0xa20 - The memory that stores r.

Source

pub fn r_mem_iter(&self) -> impl Iterator<Item = &R_MEM>

Iterator for array of: 0xa00..0xa20 - The memory that stores r.

Source

pub fn s_mem(&self, n: usize) -> &S_MEM

0xa20..0xa40 - The memory that stores s.

Source

pub fn s_mem_iter(&self) -> impl Iterator<Item = &S_MEM>

Iterator for array of: 0xa20..0xa40 - The memory that stores s.

Source

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

0xa40..0xa60 - The memory that stores software written z.

Source

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

Iterator for array of: 0xa40..0xa60 - The memory that stores software written z.

Source

pub fn qax_mem(&self, n: usize) -> &QAX_MEM

0xa60..0xa80 - The memory that stores x coordinates of QA or software written k.

Source

pub fn qax_mem_iter(&self) -> impl Iterator<Item = &QAX_MEM>

Iterator for array of: 0xa60..0xa80 - The memory that stores x coordinates of QA or software written k.

Source

pub fn qay_mem(&self, n: usize) -> &QAY_MEM

0xa80..0xaa0 - The memory that stores y coordinates of QA.

Source

pub fn qay_mem_iter(&self) -> impl Iterator<Item = &QAY_MEM>

Iterator for array of: 0xa80..0xaa0 - The memory that stores y coordinates of QA.

Trait Implementations§

Source§

impl Debug for ECDSA

Source§

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

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

impl Deref for ECDSA

Source§

type Target = RegisterBlock

The resulting type after dereferencing.
Source§

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

Dereferences the value.
Source§

impl Send for ECDSA

Auto Trait Implementations§

§

impl Freeze for ECDSA

§

impl RefUnwindSafe for ECDSA

§

impl !Sync for ECDSA

§

impl Unpin for ECDSA

§

impl UnwindSafe for ECDSA

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.