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
//! [X.509] Subject Public Key Info (SPKI) types describing public keys and their //! associated [`AlgorithmIdentifier`] OIDs. //! //! Described in [RFC 5280 Section 4.1]. //! //! # Minimum Supported Rust Version //! //! This crate requires **Rust 1.47** at a minimum. //! //! # Usage //! //! The following example demonstrates how to use an OID as the `parameters` //! of an [`AlgorithmIdentifier`]. //! //! Borrow the [`ObjectIdentifier`] first then use [`Into`] (or `Any::from`): //! //! ``` //! use spki::{AlgorithmIdentifier, ObjectIdentifier}; //! //! let alg_oid = "1.2.840.10045.2.1".parse::<ObjectIdentifier>().unwrap(); //! let params_oid = "1.2.840.10045.3.1.7".parse::<ObjectIdentifier>().unwrap(); //! //! let alg_id = AlgorithmIdentifier { //! oid: alg_oid, //! parameters: Some((¶ms_oid).into()) //! }; //! ``` //! //! [X.509]: https://en.wikipedia.org/wiki/X.509 //! [RFC 5280 Section 4.1]: https://tools.ietf.org/html/rfc5280#section-4.1 #![no_std] #![doc( html_logo_url = "https://raw.githubusercontent.com/RustCrypto/meta/master/logo.svg", html_favicon_url = "https://raw.githubusercontent.com/RustCrypto/meta/master/logo.svg", html_root_url = "https://docs.rs/spki/0.3.0" )] #![forbid(unsafe_code)] #![warn(missing_docs, rust_2018_idioms, unused_qualifications)] mod algorithm; mod spki; pub use crate::{algorithm::AlgorithmIdentifier, spki::SubjectPublicKeyInfo}; pub use der::{self, ObjectIdentifier};