| #![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_lifetimes, |
| unused_qualifications |
| )] |
| |
| /// Local Android change: Use std to allow building as a dylib. |
| #[cfg(android_dylib)] |
| extern crate std; |
| |
| #[cfg(feature = "alloc")] |
| extern crate alloc; |
| #[cfg(feature = "std")] |
| extern crate std; |
| |
| mod error; |
| mod params; |
| mod private_key; |
| mod public_key; |
| mod traits; |
| mod version; |
| |
| pub use der::{ |
| self, |
| asn1::{ObjectIdentifier, UintRef}, |
| }; |
| |
| pub use crate::{ |
| error::{Error, Result}, |
| params::{RsaOaepParams, RsaPssParams, TrailerField}, |
| private_key::RsaPrivateKey, |
| public_key::RsaPublicKey, |
| traits::{DecodeRsaPrivateKey, DecodeRsaPublicKey}, |
| version::Version, |
| }; |
| |
| #[cfg(feature = "alloc")] |
| pub use crate::{ |
| private_key::{other_prime_info::OtherPrimeInfo, OtherPrimeInfos}, |
| traits::{EncodeRsaPrivateKey, EncodeRsaPublicKey}, |
| }; |
| |
| #[cfg(feature = "pem")] |
| pub use der::pem::{self, LineEnding}; |
| |
| /// `rsaEncryption` Object Identifier (OID) |
| #[cfg(feature = "pkcs8")] |
| pub const ALGORITHM_OID: ObjectIdentifier = ObjectIdentifier::new_unwrap("1.2.840.113549.1.1.1"); |
| |
| /// `AlgorithmIdentifier` for RSA. |
| #[cfg(feature = "pkcs8")] |
| pub const ALGORITHM_ID: pkcs8::AlgorithmIdentifierRef<'static> = pkcs8::AlgorithmIdentifierRef { |
| oid: ALGORITHM_OID, |
| parameters: Some(der::asn1::AnyRef::NULL), |
| }; |