# Struct openssl::ec::EcGroupRef [−] [src]

    pub struct EcGroupRef(_);

Reference to `EcGroup`

## Implementations

### `impl EcGroupRef` [src]

#### `pub fn components_gfp(
&self,
p: &mut BigNumRef,
a: &mut BigNumRef,
b: &mut BigNumRef,
ctx: &mut BigNumContextRef
) -> Result<(), ErrorStack>` [src]

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`.

OpenSSL documentation available at `EC_GROUP_get_curve_GFp`

#### `pub fn components_gf2m(
&self,
p: &mut BigNumRef,
a: &mut BigNumRef,
b: &mut BigNumRef,
ctx: &mut BigNumContextRef
) -> Result<(), ErrorStack>` [src]

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.

OpenSSL documentation at `EC_GROUP_get_curve_GF2m`.

#### `pub fn cofactor(
&self,
cofactor: &mut BigNumRef,
ctx: &mut BigNumContextRef
) -> Result<(), ErrorStack>` [src]

Places the cofactor of the group in the provided `BigNum`.

OpenSSL documentation at `EC_GROUP_get_cofactor`

#### `pub fn degree(&self) -> u32` [src]

Returns the degree of the curve.

OpenSSL documentation at `EC_GROUP_get_degree`

#### `pub fn order_bits(&self) -> u32` [src]

Returns the number of bits in the group order.

OpenSSL documentation at `EC_GROUP_order_bits`

#### `pub fn generator(&self) -> &EcPointRef` [src]

Returns the generator for the given curve as a `EcPoint`.

OpenSSL documentation at `EC_GROUP_get0_generator`

#### `pub fn order(
&self,
order: &mut BigNumRef,
ctx: &mut BigNumContextRef
) -> Result<(), ErrorStack>` [src]

Places the order of the curve in the provided `BigNum`.

OpenSSL documentation at `EC_GROUP_get_order`

#### `pub fn set_asn1_flag(&mut self, flag: Asn1Flag)` [src]

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.

#### `pub fn curve_name(&self) -> Option<Nid>` [src]

Returns the name of the curve, if a name is associated.

OpenSSL documentation at `EC_GROUP_get_curve_name`

## Trait Implementations

### `impl AsRef<EcGroupRef> for EcGroup` [src]

#### `fn as_ref(&self) -> &EcGroupRef` [src]

Performs the conversion.

### `impl Borrow<EcGroupRef> for EcGroup` [src]

#### `fn borrow(&self) -> &EcGroupRef` [src]

Immutably borrows from an owned value. Read more

### `impl ForeignTypeRef for EcGroupRef` [src]

#### `type CType = EC_GROUP`

The raw C type.

#### `pub unsafe fn from_ptr<'a>(ptr: *mut Self::CType) -> &'a Self` [src]

Constructs a shared instance of this type from its raw type.

#### `pub unsafe fn from_ptr_mut<'a>(ptr: *mut Self::CType) -> &'a mut Self` [src]

Constructs a mutable reference of this type from its raw type.

#### `pub fn as_ptr(&self) -> *mut Self::CType` [src]

Returns a raw pointer to the wrapped value.

### `impl Send for EcGroupRef` [src]

### `impl Sync for EcGroupRef` [src]

## Auto Trait Implementations

### `impl !RefUnwindSafe for EcGroupRef`

### `impl Unpin for EcGroupRef`

### `impl UnwindSafe for EcGroupRef`

## Blanket Implementations

### `impl<T> Any for T where
T: 'static + ?Sized,` [src]

#### `pub fn type_id(&self) -> TypeId` [src]

Gets the `TypeId` of `self`. Read more

### `impl<T> Borrow<T> for T where
T: ?Sized,` [src]

#### `pub fn borrow(&self) -> &T` [src]

Immutably borrows from an owned value. Read more

### `impl<T> BorrowMut<T> for T where
T: ?Sized,` [src]

#### `pub fn borrow_mut(&mut self) -> &mut T` [src]

Mutably borrows from an owned value. Read more

### `impl<T> From<T> for T` [src]

#### `pub fn from(t: T) -> T` [src]

Performs the conversion.

### `impl<T, U> Into<U> for T where
U: From<T>,` [src]

#### `pub fn into(self) -> U` [src]

Performs the conversion.

### `impl<T, U> TryFrom<U> for T where
U: Into<T>,` [src]

#### `type Error = Infallible`

The type returned in the event of a conversion error.

#### `pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>` [src]

Performs the conversion.

### `impl<T, U> TryInto<U> for T where
U: TryFrom<T>,` [src]

#### `type Error = <U as TryFrom<T>>::Error`

The type returned in the event of a conversion error.

#### `pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>` [src]

Performs the conversion.