Skip to main content

security/
lib.rs

1#![doc = include_str!("../README.md")]
2//!
3//! ---
4//!
5//! # API documentation
6//!
7//! Safe Rust bindings for Apple's `Security.framework` on macOS.
8
9#![cfg_attr(docsrs, feature(doc_cfg))]
10#![allow(
11    clippy::missing_const_for_fn,
12    clippy::missing_errors_doc,
13    clippy::missing_panics_doc,
14    clippy::module_name_repetitions,
15    clippy::must_use_candidate,
16    clippy::needless_pass_by_value,
17    clippy::option_if_let_else,
18    clippy::redundant_pub_crate,
19    clippy::unnecessary_lazy_evaluations
20)]
21
22pub mod authorization;
23mod bridge;
24pub mod certificate;
25pub mod cms;
26pub mod code;
27pub mod code_signing;
28pub mod error;
29#[cfg(feature = "raw-ffi")]
30#[cfg_attr(docsrs, doc(cfg(feature = "raw-ffi")))]
31pub mod ffi;
32pub mod identity;
33pub mod key;
34pub mod key_agreement;
35pub mod key_derivation;
36pub mod keychain;
37pub mod policy;
38pub mod random;
39pub mod random_bytes;
40pub mod secure_transport;
41pub mod transform;
42pub mod trust;
43
44pub use authorization::{Authorization, AuthorizationOptions};
45pub use certificate::{Certificate, PublicKey};
46pub use cms::{
47    Cms, CmsCertificateChainMode, CmsDecoder, CmsDigestAlgorithm, CmsEncoder, CmsSignedAttributes,
48};
49pub use code::{
50    Code, CodeSigningFlags, Requirement, SigningInformation, SigningValue, StaticCode, Task,
51};
52pub use error::{OsStatus, Result, SecurityError, StatusError};
53pub use identity::Identity;
54pub use key::{
55    EncryptionAlgorithm, ExternalFormat, ExternalItemType, KeyType, PrivateKey, SignatureAlgorithm,
56};
57pub use key_agreement::{AgreementPrivateKey, AgreementPublicKey};
58pub use key_derivation::{DerivedKey, KeyDerivation};
59pub use keychain::{
60    AccessControl, AccessControlFlags, AccessControlProtection, Keychain, KeychainEntry,
61};
62pub use policy::{Policy, PolicyIdentifier, PolicyName, PolicyProperties, RevocationFlags};
63pub use random_bytes::SecureRandom;
64pub use secure_transport::{ProtocolVersion, SecureTransportContext, SecureTransportState};
65pub use transform::Transform;
66pub use trust::{Trust, TrustOptions, TrustResultType};
67
68/// Common imports for users of this crate.
69pub mod prelude {
70    pub use crate::authorization::{Authorization, AuthorizationOptions};
71    pub use crate::certificate::{Certificate, PublicKey};
72    pub use crate::cms::{
73        Cms, CmsCertificateChainMode, CmsDecoder, CmsDigestAlgorithm, CmsEncoder,
74        CmsSignedAttributes,
75    };
76    pub use crate::code::{
77        Code, CodeSigningFlags, Requirement, SigningInformation, SigningValue, StaticCode, Task,
78    };
79    pub use crate::error::{OsStatus, Result, SecurityError, StatusError};
80    pub use crate::identity::Identity;
81    pub use crate::key::{
82        EncryptionAlgorithm, ExternalFormat, ExternalItemType, KeyType, PrivateKey,
83        SignatureAlgorithm,
84    };
85    pub use crate::key_agreement::{AgreementPrivateKey, AgreementPublicKey};
86    pub use crate::key_derivation::{DerivedKey, KeyDerivation};
87    pub use crate::keychain::{
88        AccessControl, AccessControlFlags, AccessControlProtection, Keychain, KeychainEntry,
89    };
90    pub use crate::policy::{
91        Policy, PolicyIdentifier, PolicyName, PolicyProperties, RevocationFlags,
92    };
93    pub use crate::random_bytes::SecureRandom;
94    pub use crate::secure_transport::{
95        ProtocolVersion, SecureTransportContext, SecureTransportState,
96    };
97    pub use crate::transform::Transform;
98    pub use crate::trust::{Trust, TrustOptions, TrustResultType};
99}