pub struct EcGroupRef(/* private fields */);
Expand description
Reference to EcGroup
Implementations§
Source§impl EcGroupRef
impl EcGroupRef
Sourcepub fn components_gfp(
&self,
p: &mut BigNumRef,
a: &mut BigNumRef,
b: &mut BigNumRef,
ctx: &mut BigNumContextRef,
) -> Result<(), ErrorStack>
pub fn components_gfp( &self, p: &mut BigNumRef, a: &mut BigNumRef, b: &mut BigNumRef, ctx: &mut BigNumContextRef, ) -> Result<(), ErrorStack>
Places the components of a curve over a prime field in the provided BigNum
s.
The components make up the formula y^2 mod p = x^3 + ax + b mod p
.
This corresponds to EC_GROUP_get_curve_GFp
.
Sourcepub fn components_gf2m(
&self,
p: &mut BigNumRef,
a: &mut BigNumRef,
b: &mut BigNumRef,
ctx: &mut BigNumContextRef,
) -> Result<(), ErrorStack>
pub fn components_gf2m( &self, p: &mut BigNumRef, a: &mut BigNumRef, b: &mut BigNumRef, ctx: &mut BigNumContextRef, ) -> Result<(), ErrorStack>
Places the components of a curve over a binary field in the provided BigNum
s.
The components make up the formula y^2 + xy = x^3 + ax^2 + b
.
In this form p
relates to the irreducible polynomial. Each bit represents
a term in the polynomial. It will be set to 3 1
s or 5 1
s depending on
using a trinomial or pentanomial.
This corresponds to EC_GROUP_get_curve_GF2m
.
Sourcepub fn cofactor(
&self,
cofactor: &mut BigNumRef,
ctx: &mut BigNumContextRef,
) -> Result<(), ErrorStack>
pub fn cofactor( &self, cofactor: &mut BigNumRef, ctx: &mut BigNumContextRef, ) -> Result<(), ErrorStack>
Places the cofactor of the group in the provided BigNum
.
This corresponds to EC_GROUP_get_cofactor
.
Sourcepub fn degree(&self) -> u32
pub fn degree(&self) -> u32
Returns the degree of the curve.
This corresponds to EC_GROUP_get_degree
.
Sourcepub fn order_bits(&self) -> u32
pub fn order_bits(&self) -> u32
Returns the number of bits in the group order.
This corresponds to EC_GROUP_order_bits
.
Sourcepub fn generator(&self) -> &EcPointRef
pub fn generator(&self) -> &EcPointRef
Returns the generator for the given curve as an EcPoint
.
This corresponds to EC_GROUP_get0_generator
.
Sourcepub fn set_generator(
&mut self,
generator: EcPoint,
order: BigNum,
cofactor: BigNum,
) -> Result<(), ErrorStack>
pub fn set_generator( &mut self, generator: EcPoint, order: BigNum, cofactor: BigNum, ) -> Result<(), ErrorStack>
Sets the generator point for the given curve
This corresponds to EC_GROUP_set_generator
.
Sourcepub fn order(
&self,
order: &mut BigNumRef,
ctx: &mut BigNumContextRef,
) -> Result<(), ErrorStack>
pub fn order( &self, order: &mut BigNumRef, ctx: &mut BigNumContextRef, ) -> Result<(), ErrorStack>
Places the order of the curve in the provided BigNum
.
This corresponds to EC_GROUP_get_order
.
Sourcepub fn set_asn1_flag(&mut self, flag: Asn1Flag)
pub fn set_asn1_flag(&mut self, flag: Asn1Flag)
Sets the flag determining if the group corresponds to a named curve or must be explicitly parameterized.
This defaults to EXPLICIT_CURVE
in OpenSSL 1.0.1 and 1.0.2, but NAMED_CURVE
in OpenSSL
1.1.0.
This corresponds to EC_GROUP_set_asn1_flag
.
Sourcepub fn asn1_flag(&self) -> Asn1Flag
pub fn asn1_flag(&self) -> Asn1Flag
Gets the flag determining if the group corresponds to a named curve.
This corresponds to EC_GROUP_get_asn1_flag
.
Sourcepub fn curve_name(&self) -> Option<Nid>
pub fn curve_name(&self) -> Option<Nid>
Returns the name of the curve, if a name is associated.
This corresponds to EC_GROUP_get_curve_name
.
Trait Implementations§
Source§impl AsRef<EcGroupRef> for EcGroup
impl AsRef<EcGroupRef> for EcGroup
Source§fn as_ref(&self) -> &EcGroupRef
fn as_ref(&self) -> &EcGroupRef
Source§impl Borrow<EcGroupRef> for EcGroup
impl Borrow<EcGroupRef> for EcGroup
Source§fn borrow(&self) -> &EcGroupRef
fn borrow(&self) -> &EcGroupRef
Source§impl ForeignTypeRef for EcGroupRef
impl ForeignTypeRef for EcGroupRef
impl Send for EcGroupRef
impl Sync for EcGroupRef
Auto Trait Implementations§
impl !Freeze for EcGroupRef
impl !RefUnwindSafe for EcGroupRef
impl Unpin for EcGroupRef
impl UnwindSafe for EcGroupRef
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: 0 bytes