#![no_std] #![cfg_attr(docsrs, feature(doc_auto_cfg))] #![doc = include_str!("../README.md")] #![doc( html_logo_url = "https://raw.githubusercontent.com/RustCrypto/media/6ee8e381/logo.svg", html_favicon_url = "https://raw.githubusercontent.com/RustCrypto/media/6ee8e381/logo.svg" )] #![forbid(unsafe_code)] #![warn( clippy::mod_module_files, clippy::unwrap_used, missing_docs, rust_2018_idioms, unused_qualifications )] //! ## `serde` support //! //! When the `serde` feature of this crate is enabled, the [`EncodedPoint`] //! type receives impls of [`serde::Serialize`] and [`serde::Deserialize`]. //! //! Additionally, when both the `alloc` and `serde` features are enabled, the //! serializers/deserializers will autodetect if a "human friendly" textual //! encoding is being used, and if so encode the points as hexadecimal. #[cfg(feature = "alloc")] #[allow(unused_extern_crates)] extern crate alloc; #[cfg(feature = "std")] extern crate std; #[cfg(feature = "point")] pub mod point; mod error; #[cfg(feature = "der")] mod parameters; #[cfg(feature = "der")] mod private_key; #[cfg(feature = "der")] mod traits; #[cfg(feature = "der")] pub use der; pub use crate::error::{Error, Result}; #[cfg(feature = "point")] pub use crate::point::EncodedPoint; #[cfg(feature = "point")] pub use generic_array::typenum::consts; #[cfg(feature = "der")] pub use crate::{parameters::EcParameters, private_key::EcPrivateKey, traits::DecodeEcPrivateKey}; #[cfg(all(feature = "alloc", feature = "der"))] pub use crate::traits::EncodeEcPrivateKey; #[cfg(feature = "pem")] pub use der::pem::{self, LineEnding}; #[cfg(feature = "pkcs8")] pub use pkcs8; #[cfg(feature = "pkcs8")] use pkcs8::ObjectIdentifier; #[cfg(all(doc, feature = "serde"))] use serdect::serde; /// Algorithm [`ObjectIdentifier`] for elliptic curve public key cryptography /// (`id-ecPublicKey`). /// /// #[cfg(feature = "pkcs8")] pub const ALGORITHM_OID: ObjectIdentifier = ObjectIdentifier::new_unwrap("1.2.840.10045.2.1");