pub struct EcPoint(/* private fields */);
Expand description
Represents a point on the curve
Implementations§
Source§impl EcPoint
impl EcPoint
Sourcepub fn new(group: &EcGroupRef) -> Result<EcPoint, ErrorStack>
pub fn new(group: &EcGroupRef) -> Result<EcPoint, ErrorStack>
Creates a new point on the specified curve.
This corresponds to EC_POINT_new
.
Sourcepub fn from_bytes(
group: &EcGroupRef,
buf: &[u8],
ctx: &mut BigNumContextRef,
) -> Result<EcPoint, ErrorStack>
pub fn from_bytes( group: &EcGroupRef, buf: &[u8], ctx: &mut BigNumContextRef, ) -> Result<EcPoint, ErrorStack>
Creates point from a binary representation
This corresponds to EC_POINT_oct2point
.
Sourcepub fn from_hex_str(
group: &EcGroupRef,
s: &str,
ctx: &mut BigNumContextRef,
) -> Result<EcPoint, ErrorStack>
pub fn from_hex_str( group: &EcGroupRef, s: &str, ctx: &mut BigNumContextRef, ) -> Result<EcPoint, ErrorStack>
Creates point from a hexadecimal string representation
This corresponds to EC_POINT_hex2point
.
Methods from Deref<Target = EcPointRef>§
Sourcepub fn add(
&mut self,
group: &EcGroupRef,
a: &EcPointRef,
b: &EcPointRef,
ctx: &mut BigNumContextRef,
) -> Result<(), ErrorStack>
pub fn add( &mut self, group: &EcGroupRef, a: &EcPointRef, b: &EcPointRef, ctx: &mut BigNumContextRef, ) -> Result<(), ErrorStack>
Computes a + b
, storing the result in self
.
This corresponds to EC_POINT_add
.
Sourcepub fn mul(
&mut self,
group: &EcGroupRef,
q: &EcPointRef,
m: &BigNumRef,
ctx: &BigNumContextRef,
) -> Result<(), ErrorStack>
pub fn mul( &mut self, group: &EcGroupRef, q: &EcPointRef, m: &BigNumRef, ctx: &BigNumContextRef, ) -> Result<(), ErrorStack>
Computes q * m
, storing the result in self
.
This corresponds to EC_POINT_mul
.
Sourcepub fn mul_generator(
&mut self,
group: &EcGroupRef,
n: &BigNumRef,
ctx: &BigNumContextRef,
) -> Result<(), ErrorStack>
pub fn mul_generator( &mut self, group: &EcGroupRef, n: &BigNumRef, ctx: &BigNumContextRef, ) -> Result<(), ErrorStack>
Computes generator * n
, storing the result in self
.
This corresponds to EC_POINT_mul
.
Sourcepub fn mul_full(
&mut self,
group: &EcGroupRef,
n: &BigNumRef,
q: &EcPointRef,
m: &BigNumRef,
ctx: &mut BigNumContextRef,
) -> Result<(), ErrorStack>
pub fn mul_full( &mut self, group: &EcGroupRef, n: &BigNumRef, q: &EcPointRef, m: &BigNumRef, ctx: &mut BigNumContextRef, ) -> Result<(), ErrorStack>
Computes generator * n + q * m
, storing the result in self
.
This corresponds to EC_POINT_mul
.
Sourcepub fn invert(
&mut self,
group: &EcGroupRef,
ctx: &BigNumContextRef,
) -> Result<(), ErrorStack>
pub fn invert( &mut self, group: &EcGroupRef, ctx: &BigNumContextRef, ) -> Result<(), ErrorStack>
Inverts self
.
This corresponds to EC_POINT_invert
.
Sourcepub fn to_bytes(
&self,
group: &EcGroupRef,
form: PointConversionForm,
ctx: &mut BigNumContextRef,
) -> Result<Vec<u8>, ErrorStack>
pub fn to_bytes( &self, group: &EcGroupRef, form: PointConversionForm, ctx: &mut BigNumContextRef, ) -> Result<Vec<u8>, ErrorStack>
Serializes the point to a binary representation.
This corresponds to EC_POINT_point2oct
.
Sourcepub fn to_hex_str(
&self,
group: &EcGroupRef,
form: PointConversionForm,
ctx: &mut BigNumContextRef,
) -> Result<OpensslString, ErrorStack>
pub fn to_hex_str( &self, group: &EcGroupRef, form: PointConversionForm, ctx: &mut BigNumContextRef, ) -> Result<OpensslString, ErrorStack>
Serializes the point to a hexadecimal string representation.
This corresponds to EC_POINT_point2hex
.
Sourcepub fn to_owned(&self, group: &EcGroupRef) -> Result<EcPoint, ErrorStack>
pub fn to_owned(&self, group: &EcGroupRef) -> Result<EcPoint, ErrorStack>
Creates a new point on the specified curve with the same value.
This corresponds to EC_POINT_dup
.
Sourcepub fn eq(
&self,
group: &EcGroupRef,
other: &EcPointRef,
ctx: &mut BigNumContextRef,
) -> Result<bool, ErrorStack>
pub fn eq( &self, group: &EcGroupRef, other: &EcPointRef, ctx: &mut BigNumContextRef, ) -> Result<bool, ErrorStack>
Determines if this point is equal to another.
This corresponds to EC_POINT_cmp
.
Sourcepub fn affine_coordinates(
&self,
group: &EcGroupRef,
x: &mut BigNumRef,
y: &mut BigNumRef,
ctx: &mut BigNumContextRef,
) -> Result<(), ErrorStack>
pub fn affine_coordinates( &self, group: &EcGroupRef, x: &mut BigNumRef, y: &mut BigNumRef, ctx: &mut BigNumContextRef, ) -> Result<(), ErrorStack>
Places affine coordinates of a curve over a prime field in the provided
x
and y
BigNum
s.
This corresponds to EC_POINT_get_affine_coordinates
.
Sourcepub fn affine_coordinates_gfp(
&self,
group: &EcGroupRef,
x: &mut BigNumRef,
y: &mut BigNumRef,
ctx: &mut BigNumContextRef,
) -> Result<(), ErrorStack>
pub fn affine_coordinates_gfp( &self, group: &EcGroupRef, x: &mut BigNumRef, y: &mut BigNumRef, ctx: &mut BigNumContextRef, ) -> Result<(), ErrorStack>
Places affine coordinates of a curve over a prime field in the provided
x
and y
BigNum
s
This corresponds to EC_POINT_get_affine_coordinates_GFp
.
Sourcepub fn set_affine_coordinates_gfp(
&mut self,
group: &EcGroupRef,
x: &BigNumRef,
y: &BigNumRef,
ctx: &mut BigNumContextRef,
) -> Result<(), ErrorStack>
pub fn set_affine_coordinates_gfp( &mut self, group: &EcGroupRef, x: &BigNumRef, y: &BigNumRef, ctx: &mut BigNumContextRef, ) -> Result<(), ErrorStack>
Sets affine coordinates of a curve over a prime field using the provided
x
and y
BigNum
s
This corresponds to EC_POINT_set_affine_coordinates_GFp
.
Sourcepub fn affine_coordinates_gf2m(
&self,
group: &EcGroupRef,
x: &mut BigNumRef,
y: &mut BigNumRef,
ctx: &mut BigNumContextRef,
) -> Result<(), ErrorStack>
pub fn affine_coordinates_gf2m( &self, group: &EcGroupRef, x: &mut BigNumRef, y: &mut BigNumRef, ctx: &mut BigNumContextRef, ) -> Result<(), ErrorStack>
Places affine coordinates of a curve over a binary field in the provided
x
and y
BigNum
s
This corresponds to EC_POINT_get_affine_coordinates_GF2m
.
Sourcepub fn is_infinity(&self, group: &EcGroupRef) -> bool
pub fn is_infinity(&self, group: &EcGroupRef) -> bool
Checks if point is infinity
This corresponds to EC_POINT_is_at_infinity
.
Sourcepub fn is_on_curve(
&self,
group: &EcGroupRef,
ctx: &mut BigNumContextRef,
) -> Result<bool, ErrorStack>
pub fn is_on_curve( &self, group: &EcGroupRef, ctx: &mut BigNumContextRef, ) -> Result<bool, ErrorStack>
Checks if point is on a given curve
This corresponds to EC_POINT_is_on_curve
.
Trait Implementations§
Source§impl AsRef<EcPointRef> for EcPoint
impl AsRef<EcPointRef> for EcPoint
Source§fn as_ref(&self) -> &EcPointRef
fn as_ref(&self) -> &EcPointRef
Source§impl Borrow<EcPointRef> for EcPoint
impl Borrow<EcPointRef> for EcPoint
Source§fn borrow(&self) -> &EcPointRef
fn borrow(&self) -> &EcPointRef
Source§impl Deref for EcPoint
impl Deref for EcPoint
Source§type Target = EcPointRef
type Target = EcPointRef
Source§fn deref(&self) -> &EcPointRef
fn deref(&self) -> &EcPointRef
Source§impl DerefMut for EcPoint
impl DerefMut for EcPoint
Source§fn deref_mut(&mut self) -> &mut EcPointRef
fn deref_mut(&mut self) -> &mut EcPointRef
Source§impl ForeignType for EcPoint
impl ForeignType for EcPoint
impl Send for EcPoint
impl Sync for EcPoint
Auto Trait Implementations§
impl Freeze for EcPoint
impl RefUnwindSafe for EcPoint
impl Unpin for EcPoint
impl UnwindSafe for EcPoint
Blanket Implementations§
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
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 8 bytes