78 lines
2.0 KiB
Rust
78 lines
2.0 KiB
Rust
#![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`).
|
|
///
|
|
/// <http://oid-info.com/get/1.2.840.10045.2.1>
|
|
#[cfg(feature = "pkcs8")]
|
|
pub const ALGORITHM_OID: ObjectIdentifier = ObjectIdentifier::new_unwrap("1.2.840.10045.2.1");
|