pub struct EcPoint(_);
Expand description
Represents a point on the curve
Implementations
sourceimpl 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
.
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_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
.