1#![no_std]
2#![cfg_attr(docsrs, feature(doc_cfg))]
3#![doc = include_str!("../README.md")]
4#![doc(
5 html_logo_url = "https://raw.githubusercontent.com/RustCrypto/meta/master/logo.svg",
6 html_favicon_url = "https://raw.githubusercontent.com/RustCrypto/meta/master/logo.svg"
7)]
8#![forbid(unsafe_code, clippy::unwrap_used)]
9#![warn(missing_docs, rust_2018_idioms, unused_qualifications)]
10
11#[cfg(feature = "alloc")]
21#[allow(unused_extern_crates)]
22extern crate alloc;
23#[cfg(feature = "std")]
24extern crate std;
25
26#[cfg(feature = "point")]
27pub mod point;
28
29mod error;
30#[cfg(feature = "der")]
31mod parameters;
32#[cfg(feature = "der")]
33mod private_key;
34#[cfg(feature = "der")]
35mod traits;
36
37#[cfg(feature = "der")]
38pub use der;
39
40pub use crate::error::{Error, Result};
41
42#[cfg(feature = "point")]
43pub use crate::point::EncodedPoint;
44
45#[cfg(feature = "point")]
46pub use generic_array::typenum::consts;
47
48#[cfg(feature = "der")]
49pub use crate::{parameters::EcParameters, private_key::EcPrivateKey, traits::DecodeEcPrivateKey};
50
51#[cfg(feature = "alloc")]
52pub use crate::traits::EncodeEcPrivateKey;
53
54#[cfg(feature = "pem")]
55#[cfg_attr(docsrs, doc(cfg(feature = "pem")))]
56pub use der::pem::{self, LineEnding};
57
58#[cfg(feature = "pkcs8")]
59#[cfg_attr(docsrs, doc(cfg(feature = "pkcs8")))]
60pub use pkcs8;
61
62#[cfg(feature = "pkcs8")]
63use pkcs8::ObjectIdentifier;
64
65#[cfg(all(doc, feature = "serde"))]
66use serdect::serde;
67
68#[cfg(feature = "pkcs8")]
73#[cfg_attr(docsrs, doc(cfg(feature = "pkcs8")))]
74pub const ALGORITHM_OID: ObjectIdentifier = ObjectIdentifier::new_unwrap("1.2.840.10045.2.1");