pub struct NistP521;
Expand description
NIST P-521 elliptic curve.
Trait Implementations§
source§impl Curve for NistP521
impl Curve for NistP521
source§impl CurveArithmetic for NistP521
Available on crate feature arithmetic
only.
impl CurveArithmetic for NistP521
Available on crate feature
arithmetic
only.§type AffinePoint = AffinePoint<NistP521>
type AffinePoint = AffinePoint<NistP521>
Elliptic curve point in affine coordinates.
§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 GroupDigest for NistP521
Available on crate features hash2curve
and arithmetic
only.
impl GroupDigest for NistP521
Available on crate features
hash2curve
and arithmetic
only.§type FieldElement = FieldElement
type FieldElement = FieldElement
The field element representation for a group value with multiple elements
source§fn hash_from_bytes<'a, X>(
msgs: &[&[u8]],
dsts: &'a [&'a [u8]]
) -> Result<Self::ProjectivePoint, Error>where
X: ExpandMsg<'a>,
fn hash_from_bytes<'a, X>(
msgs: &[&[u8]],
dsts: &'a [&'a [u8]]
) -> Result<Self::ProjectivePoint, Error>where
X: ExpandMsg<'a>,
Computes the hash to curve routine. Read more
source§fn encode_from_bytes<'a, X>(
msgs: &[&[u8]],
dsts: &'a [&'a [u8]]
) -> Result<Self::ProjectivePoint, Error>where
X: ExpandMsg<'a>,
fn encode_from_bytes<'a, X>(
msgs: &[&[u8]],
dsts: &'a [&'a [u8]]
) -> Result<Self::ProjectivePoint, Error>where
X: ExpandMsg<'a>,
Computes the encode to curve routine. Read more
source§fn hash_to_scalar<'a, X>(
msgs: &[&[u8]],
dsts: &'a [&'a [u8]]
) -> Result<Self::Scalar, Error>
fn hash_to_scalar<'a, X>( msgs: &[&[u8]], dsts: &'a [&'a [u8]] ) -> Result<Self::Scalar, Error>
Computes the hash to field routine according to
https://www.ietf.org/archive/id/draft-irtf-cfrg-hash-to-curve-13.html#section-5
and returns a scalar. Read more
source§impl JwkParameters for NistP521
Available on crate feature jwk
only.
impl JwkParameters for NistP521
Available on crate feature
jwk
only.source§impl Ord for NistP521
impl Ord for NistP521
source§impl PartialEq for NistP521
impl PartialEq for NistP521
source§impl PartialOrd for NistP521
impl PartialOrd for NistP521
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 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
Available on crate feature arithmetic
only.
impl PrimeCurveArithmetic for NistP521
Available on crate feature
arithmetic
only.§type CurveGroup = ProjectivePoint<NistP521>
type CurveGroup = ProjectivePoint<NistP521>
Prime order elliptic curve group.
source§impl PrimeCurveParams for NistP521
Available on crate feature arithmetic
only.
impl PrimeCurveParams for NistP521
Available on crate feature
arithmetic
only.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 9fd16650
§type FieldElement = FieldElement
type FieldElement = FieldElement
Base field element type.
§type PointArithmetic = EquationAIsMinusThree
type PointArithmetic = EquationAIsMinusThree
Point arithmetic implementation, might be optimized for this specific curve
source§impl SignPrimitive<NistP521> for Scalar
Available on crate features ecdsa-core
and ecdsa
only.
impl SignPrimitive<NistP521> for Scalar
Available on crate features
ecdsa-core
and ecdsa
only.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,
Available on crate feature
rfc6979
only.source§impl VerifyPrimitive<NistP521> for AffinePoint
Available on crate features ecdsa-core
and ecdsa
only.
impl VerifyPrimitive<NistP521> for AffinePoint
Available on crate features
ecdsa-core
and ecdsa
only.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
source§fn verify_digest<D>(
&self,
msg_digest: D,
sig: &Signature<C>
) -> Result<(), Error>where
D: FixedOutput<OutputSize = <C as Curve>::FieldBytesSize>,
fn verify_digest<D>(
&self,
msg_digest: D,
sig: &Signature<C>
) -> Result<(), Error>where
D: FixedOutput<OutputSize = <C as Curve>::FieldBytesSize>,
Available on crate feature
digest
only.Verify message digest against the provided signature.
source§impl VoprfParameters for NistP521
Available on crate feature voprf
only.
impl VoprfParameters for NistP521
Available on crate feature
voprf
only.impl Copy for NistP521
impl Eq for NistP521
impl PrimeCurve for NistP521
impl StructuralEq for NistP521
impl StructuralPartialEq for NistP521
Auto Trait Implementations§
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
§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.