Struct dharitri_wasm::types::EllipticCurve
source · pub struct EllipticCurve<M: ManagedTypeApi> { /* private fields */ }Implementations§
source§impl<M: ManagedTypeApi> EllipticCurve<M>
impl<M: ManagedTypeApi> EllipticCurve<M>
pub fn from_name(api: M, name: &str) -> Self
pub fn from_bitsize(api: M, bitsize: u32) -> Option<Self>
pub fn get_values(&self) -> EllipticCurveComponents<M>
pub fn get_curve_length(&self) -> u32
pub fn get_priv_key_byte_length(&self) -> u32
pub fn add( &self, x_first_point: BigUint<M>, y_first_point: BigUint<M>, x_second_point: BigUint<M>, y_second_point: BigUint<M> ) -> (BigUint<M>, BigUint<M>)
pub fn double( &self, x_point: BigUint<M>, y_point: BigUint<M> ) -> (BigUint<M>, BigUint<M>)
pub fn is_on_curve(&self, x_point: BigUint<M>, y_point: BigUint<M>) -> bool
pub fn scalar_mult( &self, x_point: BigUint<M>, y_point: BigUint<M>, data: &[u8] ) -> (BigUint<M>, BigUint<M>)
pub fn scalar_base_mult(&self, data: &[u8]) -> (BigUint<M>, BigUint<M>)
pub fn marshal(&self, x_pair: BigUint<M>, y_pair: BigUint<M>) -> BoxedBytes
pub fn marshal_compressed( &self, x_pair: BigUint<M>, y_pair: BigUint<M> ) -> BoxedBytes
pub fn unmarshal(&self, data: &[u8]) -> (BigUint<M>, BigUint<M>)
pub fn unmarshal_compressed(&self, data: &[u8]) -> (BigUint<M>, BigUint<M>)
pub fn generate_key(&self) -> (BigUint<M>, BigUint<M>, BoxedBytes)
Trait Implementations§
source§impl<M: Debug + ManagedTypeApi> Debug for EllipticCurve<M>
impl<M: Debug + ManagedTypeApi> Debug for EllipticCurve<M>
source§impl<M: ManagedTypeApi> ManagedType<M> for EllipticCurve<M>
impl<M: ManagedTypeApi> ManagedType<M> for EllipticCurve<M>
fn type_manager(&self) -> M
source§impl<M: ManagedTypeApi> ManagedVecItem<M> for EllipticCurve<M>
impl<M: ManagedTypeApi> ManagedVecItem<M> for EllipticCurve<M>
source§const PAYLOAD_SIZE: usize = 4usize
const PAYLOAD_SIZE: usize = 4usize
Size of the data stored in the underlying
ManagedBuffer.source§const SKIPS_RESERIALIZATION: bool = false
const SKIPS_RESERIALIZATION: bool = false
If true, then the encoding of the item is identical to the payload,
and no further conversion is necessary
(the underlying buffer can be used as-is during serialization).
False for all managed types, but true for basic types (like
u32).fn from_byte_reader<Reader: FnMut(&mut [u8])>(api: M, reader: Reader) -> Self
fn to_byte_writer<R, Writer: FnMut(&[u8]) -> R>(&self, writer: Writer) -> R
source§impl<M: ManagedTypeApi> NestedEncode for EllipticCurve<M>
impl<M: ManagedTypeApi> NestedEncode for EllipticCurve<M>
source§fn dep_encode<O: NestedEncodeOutput>(
&self,
dest: &mut O
) -> Result<(), EncodeError>
fn dep_encode<O: NestedEncodeOutput>( &self, dest: &mut O ) -> Result<(), EncodeError>
NestedEncode to output, using the format of an object nested inside another structure.
Does not provide compact version.
source§fn dep_encode_or_exit<O: NestedEncodeOutput, ExitCtx: Clone>(
&self,
dest: &mut O,
c: ExitCtx,
exit: fn(_: ExitCtx, _: EncodeError) -> !
)
fn dep_encode_or_exit<O: NestedEncodeOutput, ExitCtx: Clone>( &self, dest: &mut O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
Version of
top_decode that exits quickly in case of error.
Its purpose is to create smaller implementations
in cases where the application is supposed to exit directly on decode error.source§impl<M: ManagedTypeApi> TopEncode for EllipticCurve<M>
impl<M: ManagedTypeApi> TopEncode for EllipticCurve<M>
source§fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
Attempt to serialize the value to ouput.
source§fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>(
&self,
output: O,
c: ExitCtx,
exit: fn(_: ExitCtx, _: EncodeError) -> !
)
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
Version of
top_decode that exits quickly in case of error.
Its purpose is to create smaller bytecode implementations
in cases where the application is supposed to exit directly on decode error.source§impl<M: ManagedTypeApi> TypeAbi for EllipticCurve<M>
impl<M: ManagedTypeApi> TypeAbi for EllipticCurve<M>
fn type_name() -> String
source§fn provide_type_descriptions<TDC: TypeDescriptionContainer>(
accumulator: &mut TDC
)
fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC )
A type can provide more than its own description.
For instance, a struct can also provide the descriptions of the type of its fields.
TypeAbi doesn’t care for the exact accumulator type,
which is abstracted by the TypeDescriptionContainer trait.
Auto Trait Implementations§
impl<M> RefUnwindSafe for EllipticCurve<M>where
M: RefUnwindSafe,
impl<M> Send for EllipticCurve<M>where
M: Send,
impl<M> Sync for EllipticCurve<M>where
M: Sync,
impl<M> Unpin for EllipticCurve<M>where
M: Unpin,
impl<M> UnwindSafe for EllipticCurve<M>where
M: UnwindSafe,
Blanket Implementations§
source§impl<M, T> AsManagedRef<M, T> for Twhere
M: ManagedTypeApi,
T: ManagedType<M>,
impl<M, T> AsManagedRef<M, T> for Twhere
M: ManagedTypeApi,
T: ManagedType<M>,
fn as_managed_ref(&self) -> ManagedRef<M, T>
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