/ crates / tor-key-forge / src / lib.rs
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>;