quantcrypt/
lib.rs

1#![doc = include_str!("../README.md")]
2
3mod asn1;
4mod cea;
5mod cms;
6mod dsa;
7mod errors;
8mod kdf;
9mod kem;
10mod utils;
11mod wrap;
12
13pub use errors::QuantCryptError;
14
15/// Dealing with pure/composite certificates
16pub mod certificates {
17    pub use crate::asn1::cert_builder::CertValidity;
18    pub use crate::asn1::cert_builder::CertificateBuilder;
19    pub use crate::asn1::cert_builder::Profile;
20    pub use crate::asn1::certificate::Certificate;
21}
22
23/// Dealing with pure/composite keys
24pub mod keys {
25    pub use crate::asn1::private_key::PrivateKey;
26    pub use crate::asn1::public_key::PublicKey;
27}
28
29/// Defines DSA types and key generation
30pub mod dsas {
31    pub use crate::dsa::api::algorithm::DsaAlgorithm;
32    pub use crate::dsa::api::key_generator::DsaKeyGenerator;
33}
34
35/// Defines KEM types and key generation
36pub mod kems {
37    pub use crate::kem::api::algorithm::KemAlgorithm;
38    pub use crate::kem::api::key_generator::KemKeyGenerator;
39}
40
41/// Defines the types of key derivation functions
42pub mod kdfs {
43    pub use crate::kdf::api::KdfType;
44}
45
46/// Defines the types of key wrapping functions
47pub mod wraps {
48    pub use crate::wrap::api::WrapType;
49}
50
51/// Dealing with Cryptographic Message Syntax (CMS)
52pub mod content {
53    pub use crate::cms::api::Attribute;
54    pub use crate::cms::api::AttributeType;
55    pub use crate::cms::api::AttributeValue;
56    pub use crate::cms::api::AuthEnvelopedDataContent;
57    pub use crate::cms::api::CertificateStore;
58    pub use crate::cms::api::CmsVersion;
59    pub use crate::cms::api::ContentEncryptionAlgorithm;
60    pub use crate::cms::api::ContentEncryptionAlgorithmAead;
61    pub use crate::cms::api::DirectoryCertificateStore;
62    pub use crate::cms::api::EnvelopedDataContent;
63    pub use crate::cms::api::KdfType;
64    pub use crate::cms::api::ObjectIdentifier;
65    pub use crate::cms::api::SetOfVec;
66    pub use crate::cms::api::Tag;
67    pub use crate::cms::api::Tagged;
68    pub use crate::cms::api::UserKeyingMaterial;
69    pub use crate::cms::api::WrapType;
70}
71
72/// Check if the IPD mode is enabled. When enabled, the library
73/// will use the IPD OIDs and algorithms.
74pub fn is_ipd_mode_enabled() -> bool {
75    cfg!(feature = "ipd")
76}