pub struct BignP256;
Expand description
BIGN P-256 elliptic curve.
This curve is also known as bign-curve256v1 and is specified in STB 34.101.45-2013: Recommendations for Discrete Logarithm-based Cryptography: Elliptic Curve Domain Parameters.
Its equation is y² = x³ + ax + b
over a ~256-bit prime field.
a = 115792089237316195423570985008687907853269984665640564039457584007913129639744
b = 54189945433829174764701416670523239872420438478408031144987871676190519198705
Trait Implementations§
source§impl Curve for BignP256
impl Curve for BignP256
source§impl CurveArithmetic for BignP256
impl CurveArithmetic for BignP256
§type AffinePoint = AffinePoint<BignP256>
type AffinePoint = AffinePoint<BignP256>
Elliptic curve point in affine coordinates.
§type ProjectivePoint = ProjectivePoint<BignP256>
type ProjectivePoint = ProjectivePoint<BignP256>
Elliptic curve point in projective coordinates. Read more
source§impl FieldBytesEncoding<BignP256> for U256
impl FieldBytesEncoding<BignP256> for U256
source§fn decode_field_bytes(field_bytes: &FieldBytes) -> Self
fn decode_field_bytes(field_bytes: &FieldBytes) -> Self
Decode unsigned integer from serialized field element. Read more
source§fn encode_field_bytes(&self) -> FieldBytes
fn encode_field_bytes(&self) -> FieldBytes
Encode unsigned integer into serialized field element. Read more
source§impl Ord for BignP256
impl Ord for BignP256
source§impl PartialEq for BignP256
impl PartialEq for BignP256
source§impl PartialOrd for BignP256
impl PartialOrd for BignP256
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moresource§impl PointCompaction for BignP256
impl PointCompaction for BignP256
source§const COMPACT_POINTS: bool = false
const COMPACT_POINTS: bool = false
BIGN P-256 points are typically uncompressed.
source§impl PointCompression for BignP256
impl PointCompression for BignP256
source§const COMPRESS_POINTS: bool = false
const COMPRESS_POINTS: bool = false
BIGN P-256 points are typically uncompressed.
source§impl PrimeCurveArithmetic for BignP256
impl PrimeCurveArithmetic for BignP256
§type CurveGroup = ProjectivePoint<BignP256>
type CurveGroup = ProjectivePoint<BignP256>
Prime order elliptic curve group.
source§impl PrimeCurveParams for BignP256
impl PrimeCurveParams for BignP256
§type FieldElement = FieldElement
type FieldElement = FieldElement
Base field element type.
§type PointArithmetic = EquationAIsGeneric
type PointArithmetic = EquationAIsGeneric
Point arithmetic implementation, might be optimized for this specific curve
source§const EQUATION_A: Self::FieldElement = _
const EQUATION_A: Self::FieldElement = _
Coefficient
a
in the curve equation.source§const EQUATION_B: Self::FieldElement = _
const EQUATION_B: Self::FieldElement = _
Coefficient
b
in the curve equation.source§const GENERATOR: (Self::FieldElement, Self::FieldElement) = _
const GENERATOR: (Self::FieldElement, Self::FieldElement) = _
Generator point’s affine coordinates: (x, y).
source§impl ToEncodedPoint<BignP256> for VerifyingKey
impl ToEncodedPoint<BignP256> for VerifyingKey
source§fn to_encoded_point(&self, compress: bool) -> EncodedPoint
fn to_encoded_point(&self, compress: bool) -> EncodedPoint
Serialize this value as a SEC1
EncodedPoint
, optionally applying
point compression.impl Copy for BignP256
impl Eq for BignP256
impl PrimeCurve for BignP256
impl StructuralEq for BignP256
impl StructuralPartialEq for BignP256
Auto Trait Implementations§
impl RefUnwindSafe for BignP256
impl Send for BignP256
impl Sync for BignP256
impl Unpin for BignP256
impl UnwindSafe for BignP256
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
Mutably borrows from an owned value. Read more
§impl<T> DynAssociatedOid for Twhere
T: AssociatedOid,
impl<T> DynAssociatedOid for Twhere
T: AssociatedOid,
source§impl<C> ValidatePublicKey for Cwhere
C: CurveArithmetic,
<C as CurveArithmetic>::AffinePoint: FromEncodedPoint<C> + ToEncodedPoint<C>,
<C as Curve>::FieldBytesSize: ModulusSize,
impl<C> ValidatePublicKey for Cwhere
C: CurveArithmetic,
<C as CurveArithmetic>::AffinePoint: FromEncodedPoint<C> + ToEncodedPoint<C>,
<C as Curve>::FieldBytesSize: ModulusSize,
source§fn validate_public_key(
secret_key: &SecretKey<C>,
public_key: &EncodedPoint<<C as Curve>::FieldBytesSize>
) -> Result<(), Error>
fn validate_public_key( secret_key: &SecretKey<C>, public_key: &EncodedPoint<<C as Curve>::FieldBytesSize> ) -> Result<(), Error>
Validate that the given
EncodedPoint
is a valid public key for the
provided secret value.