Module openssl::ec[][src]

Elliptic Curve

Cryptology relies on the difficulty of solving mathematical problems, such as the factor of large integers composed of two large prime numbers and the discrete logarithm of a random eliptic curve. This module provides low-level features of the latter. Elliptic Curve protocols can provide the same security with smaller keys.

There are 2 forms of elliptic curves, Fp and F2^m. These curves use irreducible trinomial or pentanomial . Being a generic interface to a wide range of algorithms, the cuves are generally referenced by EcGroup. There are many built in groups found in Nid.

OpenSSL Wiki explains the fields and curves in detail at Eliptic Curve Cryptography.

Examples

use openssl::ec::{EcGroup, EcPoint};
use openssl::nid::Nid;
use openssl::error::ErrorStack;
fn get_ec_point() -> Result<EcPoint, ErrorStack> {
   let group = EcGroup::from_curve_name(Nid::SECP224R1)?;
   let point = EcPoint::new(&group)?;
   Ok(point)
}

Structs

Asn1Flag

Named Curve or Explicit

EcGroup

Describes the curve

EcGroupRef

Reference to EcGroup

EcKey

Public and optional Private key on the given curve

EcKeyRef

Reference to EcKey

EcPoint

Represents a point on the curve

EcPointRef

Reference to EcPoint

PointConversionForm

Compressed or Uncompressed conversion