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
.