1pub(crate) use {
20 std::any::Any,
21 std::borrow::Cow,
22 std::cmp::max,
23 std::cmp::Ordering,
24 std::collections::{BinaryHeap, HashMap, HashSet, VecDeque},
25 std::error::Error as StdError,
26 std::ffi::OsStr,
27 std::fmt::{self, Debug, Display},
28 std::fs,
29 std::fs::{File, OpenOptions},
30 std::future::Future,
31 std::hash::Hash,
32 std::io,
33 std::io::{BufReader, BufWriter, Read, Seek, SeekFrom, Write},
34 std::iter,
35 std::marker::PhantomData,
36 std::panic::AssertUnwindSafe,
37 std::path::{Path, PathBuf},
38 std::str::FromStr,
39 std::sync::{Arc, Mutex, MutexGuard},
40 std::time::{Duration, Instant, SystemTime},
41};
42
43pub(crate) use {
46 async_trait::async_trait,
47 derive_builder::Builder,
48 derive_deftly::{define_derive_deftly, Deftly},
49 derive_more::{Constructor, Deref, DerefMut, From, Into},
50 educe::Educe,
51 futures::channel::mpsc,
52 futures::future::{self, Either},
53 futures::select_biased,
54 futures::stream::BoxStream,
55 futures::task::{SpawnError, SpawnExt as _},
56 futures::{AsyncRead, AsyncWrite, Stream},
57 futures::{FutureExt as _, SinkExt as _, StreamExt as _, TryStreamExt as _},
58 itertools::{chain, Itertools as _},
59 postage::{broadcast, watch},
60 rand::Rng,
61 rand_core::{CryptoRng, RngCore},
62 serde::{Deserialize, Deserializer, Serialize, Serializer},
63 thiserror::Error,
64 tracing::{debug, error, info, trace, warn},
65 void::{ResultVoidErrExt as _, Void},
66};
67
68pub(crate) use {
71 oneshot_fused_workaround as oneshot,
72 retry_error::RetryError,
73 safelog::{sensitive, Redactable as _},
74 tor_async_utils::mpsc_channel_no_memquota,
75 tor_async_utils::{DropNotifyWatchSender, PostageWatchSenderExt as _},
76 tor_basic_utils::{impl_debug_hex, retry::RetryDelay, PathExt as _, RngExt as _},
77 tor_cell::relaycell::{msg::AnyRelayMsg, RelayMsg as _},
78 tor_circmgr::hspool::{HsCircKind, HsCircPool},
79 tor_config::{ConfigBuildError, Reconfigure, ReconfigureError},
80 tor_dirclient::request::HsDescUploadRequest,
81 tor_dirclient::{send_request, Error as DirClientError, RequestFailedError},
82 tor_error::define_asref_dyn_std_error,
83 tor_error::{bad_api_usage, internal, into_bad_api_usage, into_internal},
84 tor_error::{debug_report, error_report, info_report, warn_report},
85 tor_error::{Bug, ErrorKind, ErrorReport as _, HasKind},
86 tor_hscrypto::ope::AesOpeKey,
87 tor_hscrypto::pk::{
88 HsBlindId, HsBlindIdKey, HsBlindIdKeypair, HsClientDescEncKey, HsDescSigningKeypair,
89 HsIdKey, HsIdKeypair, HsIntroPtSessionIdKey, HsIntroPtSessionIdKeypair, HsSvcNtorKeypair,
90 },
91 tor_hscrypto::time::TimePeriod,
92 tor_hscrypto::RevisionCounter,
93 tor_keymgr::{
94 derive_deftly_template_KeySpecifier, KeyMgr, KeySpecifier,
95 KeySpecifierComponentViaDisplayFromStr, KeySpecifierPattern as _, KeystoreSelector,
96 {ArtiPathRange, KeySpecifierComponent},
97 },
98 tor_linkspec::{
99 CircTarget, HasRelayIds as _, OwnedChanTargetBuilder, OwnedCircTarget, RelayIds,
100 },
101 tor_llcrypto::pk::{curve25519, ed25519},
102 tor_log_ratelim::log_ratelim,
103 tor_netdir::{HsDirParams, NetDirProvider, Relay, Timeliness},
104 tor_netdoc::doc::hsdesc::{create_desc_sign_key_cert, HsDescBuilder},
105 tor_netdoc::NetdocBuilder,
106 tor_persist::slug::Slug,
107 tor_persist::state_dir::{
108 ContainsInstanceStateGuard as _, InstanceRawSubdir, LockFileGuard, StateDirectory,
109 },
110 tor_proto::circuit::{ClientCirc, MetaCellDisposition},
111 tor_proto::stream::DataStream,
112 tor_rtcompat::SleepProvider,
113 tor_rtcompat::{Runtime, SleepProviderExt as _},
114};
115
116pub(crate) use {
119 crate::err::IptStoreError,
120 crate::err::StateExpiryError,
121 crate::ipt_lid::{InvalidIptLocalId, IptLocalId},
122 crate::ipt_mgr::CreateIptError,
123 crate::ipt_mgr::IptManager,
124 crate::ipt_set::IptSet,
125 crate::ipt_set::IptsManagerView,
126 crate::ipt_set::IptsPublisherUploadView,
127 crate::ipt_set::IptsPublisherView,
128 crate::ipt_set::{self, PublishIptSet},
129 crate::keys::expire_publisher_keys,
130 crate::keys::{IptKeyRole, IptKeySpecifier, IptKeySpecifierPattern},
131 crate::publish::Publisher,
132 crate::replay::IptReplayLog,
133 crate::replay::ReplayError,
134 crate::status::PublisherStatusSender,
135 crate::status::State,
136 crate::status::{IptMgrStatusSender, State as IptMgrState},
137 crate::status::{OnionServiceStatus, OnionServiceStatusStream, StatusSender},
138 crate::time_store,
139 crate::timeout_track::{TrackingInstantOffsetNow, TrackingNow, Update as _},
140 crate::OnionServiceConfig,
141 crate::StartupError,
142 crate::StreamRequest,
143 crate::{ipt_establish, ShutdownStatus},
144 crate::{
145 keys::BlindIdKeypairSpecifierPattern,
146 rend_handshake::{self, RendCircConnector},
147 ClientError,
148 },
149 crate::{req::RendRequestContext, HsNickname, LinkSpecs, NtorPublicKey},
150 crate::{
151 BlindIdKeypairSpecifier, DescSigningKeypairSpecifier, HsIdKeypairSpecifier,
152 HsIdPublicKeySpecifier,
153 },
154 crate::{DescUploadError, IptError},
155 crate::{FatalError, RendRequest},
156 ipt_establish::{IptEstablisher, IptParameters, IptStatus, IptStatusStatus, IptWantsToRetire},
157};