1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//! Elliptic Curve Digital Signature Algorithm (ECDSA)
//!
//! This module contains support for computing and verifying ECDSA signatures.
//! To use it, you will need to enable one of the two following Cargo features:
//!
//! - `ecdsa-core`: provides only the [`Signature`] type (which represents an
//! ECDSA/P-192 signature). Does not require the `arithmetic` feature. This is
//! useful for 3rd-party crates which wish to use the `Signature` type for
//! interoperability purposes. Example use cases for this include other
//! software implementations of ECDSA/P-192 and wrappers for cloud KMS
//! services or hardware devices (HSM or crypto hardware wallet).
//! - `ecdsa`: provides `ecdsa-core` features plus [`VerifyingKey`] types
//! which natively implement ECDSA/P-192 verification.
//!
//! ## Verification only
//!
//! Following guidance from [NIST Special Publication 800-131A Revision 2]:
//! "Transitioning the Use of Cryptographic Algorithms and Key Lengths", this
//! crate only supports ECDSA verification, not signing.
//!
//! From Section 3: Digital Signatures:
//!
//! > <112 bits of security strength: ECDSA: len(n) < 224
//! >
//! > [...]
//! >
//! > Digital signature generation:
//! >
//! > Private-key lengths providing less than 112 bits of security **shall not** be used to
//! > generate digital signatures.
//!
//! [NIST Special Publication 800-131A Revision 2]: https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar2.pdf
pub use ;
use ;
use NistP192;
/// ECDSA/P-192 signature (fixed-size)
pub type Signature = Signature;
/// ECDSA/P-192 signature (ASN.1 DER encoded)
pub type DerSignature = Signature;
/// ECDSA/P-192 verification key (i.e. public key)
pub type VerifyingKey = VerifyingKey;