pub struct NistP521;Expand description
NIST P-521 elliptic curve.
Trait Implementations§
Source§impl AssociatedOid for NistP521
 
impl AssociatedOid for NistP521
Source§const OID: ObjectIdentifier
 
const OID: ObjectIdentifier
The OID associated with this type.
Source§impl Curve for NistP521
 
impl Curve for NistP521
Source§impl CurveArithmetic for NistP521
 
impl CurveArithmetic for NistP521
Source§type AffinePoint = AffinePoint<NistP521>
 
type AffinePoint = AffinePoint<NistP521>
Elliptic curve point in affine coordinates.
Source§type ProjectivePoint = ProjectivePoint<NistP521>
 
type ProjectivePoint = ProjectivePoint<NistP521>
Elliptic curve point in projective coordinates. Read more
Source§impl FieldBytesEncoding<NistP521> for U576
 
impl FieldBytesEncoding<NistP521> for U576
Source§fn decode_field_bytes(
    field_bytes: &GenericArray<u8, <C as Curve>::FieldBytesSize>,
) -> Self
 
fn decode_field_bytes( field_bytes: &GenericArray<u8, <C as Curve>::FieldBytesSize>, ) -> Self
Decode unsigned integer from serialized field element. Read more
Source§fn encode_field_bytes(&self) -> GenericArray<u8, <C as Curve>::FieldBytesSize>
 
fn encode_field_bytes(&self) -> GenericArray<u8, <C as Curve>::FieldBytesSize>
Encode unsigned integer into serialized field element. Read more
Source§impl Ord for NistP521
 
impl Ord for NistP521
Source§impl PartialOrd for NistP521
 
impl PartialOrd for NistP521
Source§impl PointCompaction for NistP521
 
impl PointCompaction for NistP521
Source§const COMPACT_POINTS: bool = false
 
const COMPACT_POINTS: bool = false
NIST P-521 points are typically uncompacted.
Source§impl PointCompression for NistP521
 
impl PointCompression for NistP521
Source§const COMPRESS_POINTS: bool = false
 
const COMPRESS_POINTS: bool = false
NIST P-521 points are typically uncompressed.
Source§impl PrimeCurveArithmetic for NistP521
 
impl PrimeCurveArithmetic for NistP521
Source§type CurveGroup = ProjectivePoint<NistP521>
 
type CurveGroup = ProjectivePoint<NistP521>
Prime order elliptic curve group.
Source§impl PrimeCurveParams for NistP521
Adapted from NIST SP 800-186 § 3.2.1.5: P-521.
 
impl PrimeCurveParams for NistP521
Adapted from NIST SP 800-186 § 3.2.1.5: P-521.
Source§const EQUATION_A: FieldElement
 
const EQUATION_A: FieldElement
a = -3 (0x1ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc)
Source§const EQUATION_B: FieldElement
 
const EQUATION_B: FieldElement
b = 0x051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00
Source§const GENERATOR: (FieldElement, FieldElement)
 
const GENERATOR: (FieldElement, FieldElement)
Base point of P-521.
Gₓ = 0x0c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521
           f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de
           3348b3c1 856a429b f97e7e31 c2e5bd66
Gᵧ = 0x118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468
           17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761
           353c7086 a272c240 88be9476 9fd16650Source§type FieldElement = FieldElement
 
type FieldElement = FieldElement
Base field element type.
Source§type PointArithmetic = EquationAIsMinusThree
 
type PointArithmetic = EquationAIsMinusThree
Point arithmetic implementation, might be optimized for this specific curve
Source§impl SignPrimitive<NistP521> for Scalar
 
impl SignPrimitive<NistP521> for Scalar
Source§fn try_sign_prehashed<K>(
    &self,
    k: K,
    z: &GenericArray<u8, <C as Curve>::FieldBytesSize>,
) -> Result<(Signature<C>, Option<RecoveryId>), Error>
 
fn try_sign_prehashed<K>( &self, k: K, z: &GenericArray<u8, <C as Curve>::FieldBytesSize>, ) -> Result<(Signature<C>, Option<RecoveryId>), Error>
Try to sign the prehashed message. Read more
Source§fn try_sign_prehashed_rfc6979<D>(
    &self,
    z: &GenericArray<u8, <C as Curve>::FieldBytesSize>,
    ad: &[u8],
) -> Result<(Signature<C>, Option<RecoveryId>), Error>where
    Self: From<ScalarPrimitive<C>> + Invert<Output = CtOption<Self>>,
    D: Digest<OutputSize = <C as Curve>::FieldBytesSize> + BlockSizeUser + FixedOutput + FixedOutputReset,
 
fn try_sign_prehashed_rfc6979<D>(
    &self,
    z: &GenericArray<u8, <C as Curve>::FieldBytesSize>,
    ad: &[u8],
) -> Result<(Signature<C>, Option<RecoveryId>), Error>where
    Self: From<ScalarPrimitive<C>> + Invert<Output = CtOption<Self>>,
    D: Digest<OutputSize = <C as Curve>::FieldBytesSize> + BlockSizeUser + FixedOutput + FixedOutputReset,
Source§impl VerifyPrimitive<NistP521> for AffinePoint
 
impl VerifyPrimitive<NistP521> for AffinePoint
Source§fn verify_prehashed(
    &self,
    z: &GenericArray<u8, <C as Curve>::FieldBytesSize>,
    sig: &Signature<C>,
) -> Result<(), Error>
 
fn verify_prehashed( &self, z: &GenericArray<u8, <C as Curve>::FieldBytesSize>, sig: &Signature<C>, ) -> Result<(), Error>
Verify the prehashed message against the provided ECDSA signature. Read more
impl Copy for NistP521
impl Eq for NistP521
impl PrimeCurve for NistP521
impl StructuralPartialEq for NistP521
Auto Trait Implementations§
impl Freeze for NistP521
impl RefUnwindSafe for NistP521
impl Send for NistP521
impl Sync for NistP521
impl Unpin for NistP521
impl UnwindSafe for NistP521
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
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
Source§impl<T> DynAssociatedOid for Twhere
    T: AssociatedOid,
 
impl<T> DynAssociatedOid for Twhere
    T: AssociatedOid,
Source§fn oid(&self) -> ObjectIdentifier
 
fn oid(&self) -> ObjectIdentifier
Get the OID associated with this value.
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.