1#![no_std]
2#![cfg_attr(docsrs, feature(doc_auto_cfg))]
3#![doc = include_str!("../README.md")]
4#![doc(
5 html_logo_url = "https://raw.githubusercontent.com/RustCrypto/media/6ee8e381/logo.svg",
6 html_favicon_url = "https://raw.githubusercontent.com/RustCrypto/media/6ee8e381/logo.svg"
7)]
8#![forbid(unsafe_code)]
9#![warn(
10 clippy::mod_module_files,
11 clippy::unwrap_used,
12 missing_docs,
13 rust_2018_idioms,
14 unused_lifetimes,
15 unused_qualifications
16)]
17#[cfg(feature = "alloc")]
36#[allow(unused_extern_crates)]
37extern crate alloc;
38#[cfg(feature = "std")]
39extern crate std;
40
41mod algorithm;
42mod error;
43mod spki;
44mod traits;
45
46#[cfg(feature = "fingerprint")]
47mod fingerprint;
48
49pub use crate::{
50 algorithm::{AlgorithmIdentifier, AlgorithmIdentifierRef, AlgorithmIdentifierWithOid},
51 error::{Error, Result},
52 spki::{SubjectPublicKeyInfo, SubjectPublicKeyInfoRef},
53 traits::{AssociatedAlgorithmIdentifier, DecodePublicKey, SignatureAlgorithmIdentifier},
54};
55pub use der::{self, asn1::ObjectIdentifier};
56
57#[cfg(feature = "alloc")]
58pub use {
59 crate::{
60 algorithm::AlgorithmIdentifierOwned,
61 spki::SubjectPublicKeyInfoOwned,
62 traits::{
63 DynAssociatedAlgorithmIdentifier, DynSignatureAlgorithmIdentifier, EncodePublicKey,
64 SignatureBitStringEncoding,
65 },
66 },
67 der::Document,
68};
69
70#[cfg(feature = "fingerprint")]
71pub use crate::fingerprint::FingerprintBytes;