lib.rs
1 #![cfg_attr(docsrs, feature(doc_auto_cfg, doc_cfg))] 2 #![doc = include_str!("../README.md")] 3 // @@ begin lint list maintained by maint/add_warning @@ 4 #![allow(renamed_and_removed_lints)] // @@REMOVE_WHEN(ci_arti_stable) 5 #![allow(unknown_lints)] // @@REMOVE_WHEN(ci_arti_nightly) 6 #![warn(missing_docs)] 7 #![warn(noop_method_call)] 8 #![warn(unreachable_pub)] 9 #![warn(clippy::all)] 10 #![deny(clippy::await_holding_lock)] 11 #![deny(clippy::cargo_common_metadata)] 12 #![deny(clippy::cast_lossless)] 13 #![deny(clippy::checked_conversions)] 14 #![warn(clippy::cognitive_complexity)] 15 #![deny(clippy::debug_assert_with_mut_call)] 16 #![deny(clippy::exhaustive_enums)] 17 #![deny(clippy::exhaustive_structs)] 18 #![deny(clippy::expl_impl_clone_on_copy)] 19 #![deny(clippy::fallible_impl_from)] 20 #![deny(clippy::implicit_clone)] 21 #![deny(clippy::large_stack_arrays)] 22 #![warn(clippy::manual_ok_or)] 23 #![deny(clippy::missing_docs_in_private_items)] 24 #![warn(clippy::needless_borrow)] 25 #![warn(clippy::needless_pass_by_value)] 26 #![warn(clippy::option_option)] 27 #![deny(clippy::print_stderr)] 28 #![deny(clippy::print_stdout)] 29 #![warn(clippy::rc_buffer)] 30 #![deny(clippy::ref_option_ref)] 31 #![warn(clippy::semicolon_if_nothing_returned)] 32 #![warn(clippy::trait_duplication_in_bounds)] 33 #![deny(clippy::unchecked_duration_subtraction)] 34 #![deny(clippy::unnecessary_wraps)] 35 #![warn(clippy::unseparated_literal_suffix)] 36 #![deny(clippy::unwrap_used)] 37 #![deny(clippy::mod_module_files)] 38 #![allow(clippy::let_unit_value)] // This can reasonably be done for explicitness 39 #![allow(clippy::uninlined_format_args)] 40 #![allow(clippy::significant_drop_in_scrutinee)] // arti/-/merge_requests/588/#note_2812945 41 #![allow(clippy::result_large_err)] // temporary workaround for arti#587 42 #![allow(clippy::needless_raw_string_hashes)] // complained-about code is fine, often best 43 #![allow(clippy::needless_lifetimes)] // See arti#1765 44 //! <!-- @@ end lint list maintained by maint/add_warning @@ --> 45 46 mod certs; 47 mod err; 48 mod key_type; 49 mod macros; 50 mod ssh; 51 mod traits; 52 53 pub use certs::{CertData, ParsedEd25519Cert, ValidatedEd25519Cert}; 54 pub use err::Error; 55 pub use key_type::{CertType, KeyType, KeystoreItemType}; 56 pub use ssh::{SshKeyAlgorithm, SshKeyData}; 57 pub use traits::{ 58 EncodableItem, InvalidCertError, ItemType, Keygen, KeygenRng, KeystoreItem, ToEncodableCert, 59 ToEncodableKey, 60 }; 61 62 // Note: we use various tor-cert types in our public API, 63 // so let's reexport them for convenience... 64 pub use tor_cert::{Ed25519Cert, EncodedEd25519Cert, KeyUnknownCert}; 65 66 // Needed to export our derive_deftly macros. 67 #[doc(hidden)] 68 pub use derive_deftly; 69 70 #[doc(hidden)] 71 pub use macros::deps as macro_deps; 72 73 /// A Result type for this crate. 74 pub type Result<T> = std::result::Result<T, Error>; 75 76 /// A type-erased key. Used by the tor-keymgr. 77 pub type ErasedKey = Box<dyn traits::ItemType>;