1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::client::QueryResponseFut;
8use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
9use fidl::endpoints::{ControlHandle as _, Responder as _};
10pub use fidl_fuchsia_kms__common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, PartialEq)]
15pub struct AsymmetricPrivateKeySignRequest {
16 pub data: fidl_fuchsia_mem::Buffer,
17}
18
19impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
20 for AsymmetricPrivateKeySignRequest
21{
22}
23
24#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
25pub struct KeyManagerGenerateAsymmetricKeyRequest {
26 pub key_name: String,
27 pub key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
28}
29
30impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
31 for KeyManagerGenerateAsymmetricKeyRequest
32{
33}
34
35#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
36pub struct KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest {
37 pub key_name: String,
38 pub key_algorithm: AsymmetricKeyAlgorithm,
39 pub key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
40}
41
42impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
43 for KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest
44{
45}
46
47#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
48pub struct KeyManagerGetAsymmetricPrivateKeyRequest {
49 pub key_name: String,
50 pub key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
51}
52
53impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
54 for KeyManagerGetAsymmetricPrivateKeyRequest
55{
56}
57
58#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
59pub struct KeyManagerImportAsymmetricPrivateKeyRequest {
60 pub data: Vec<u8>,
61 pub key_name: String,
62 pub key_algorithm: AsymmetricKeyAlgorithm,
63 pub key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
64}
65
66impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
67 for KeyManagerImportAsymmetricPrivateKeyRequest
68{
69}
70
71#[derive(Debug, PartialEq)]
72pub struct KeyManagerSealDataRequest {
73 pub plain_text: fidl_fuchsia_mem::Buffer,
74}
75
76impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for KeyManagerSealDataRequest {}
77
78#[derive(Debug, PartialEq)]
79pub struct KeyManagerUnsealDataRequest {
80 pub cipher_text: fidl_fuchsia_mem::Buffer,
81}
82
83impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
84 for KeyManagerUnsealDataRequest
85{
86}
87
88#[derive(Debug, PartialEq)]
89pub struct KeyManagerSealDataResponse {
90 pub cipher_text: fidl_fuchsia_mem::Buffer,
91}
92
93impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
94 for KeyManagerSealDataResponse
95{
96}
97
98#[derive(Debug, PartialEq)]
99pub struct KeyManagerUnsealDataResponse {
100 pub plain_text: fidl_fuchsia_mem::Buffer,
101}
102
103impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
104 for KeyManagerUnsealDataResponse
105{
106}
107
108#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
109pub struct AsymmetricPrivateKeyMarker;
110
111impl fidl::endpoints::ProtocolMarker for AsymmetricPrivateKeyMarker {
112 type Proxy = AsymmetricPrivateKeyProxy;
113 type RequestStream = AsymmetricPrivateKeyRequestStream;
114 #[cfg(target_os = "fuchsia")]
115 type SynchronousProxy = AsymmetricPrivateKeySynchronousProxy;
116
117 const DEBUG_NAME: &'static str = "(anonymous) AsymmetricPrivateKey";
118}
119pub type AsymmetricPrivateKeySignResult = Result<Signature, Error>;
120pub type AsymmetricPrivateKeyGetPublicKeyResult = Result<PublicKey, Error>;
121pub type AsymmetricPrivateKeyGetKeyAlgorithmResult = Result<AsymmetricKeyAlgorithm, Error>;
122
123pub trait AsymmetricPrivateKeyProxyInterface: Send + Sync {
124 type GetKeyOriginResponseFut: std::future::Future<Output = Result<KeyGetKeyOriginResult, fidl::Error>>
125 + Send;
126 fn r#get_key_origin(&self) -> Self::GetKeyOriginResponseFut;
127 type GetKeyProviderResponseFut: std::future::Future<Output = Result<KeyGetKeyProviderResult, fidl::Error>>
128 + Send;
129 fn r#get_key_provider(&self) -> Self::GetKeyProviderResponseFut;
130 type SignResponseFut: std::future::Future<Output = Result<AsymmetricPrivateKeySignResult, fidl::Error>>
131 + Send;
132 fn r#sign(&self, data: fidl_fuchsia_mem::Buffer) -> Self::SignResponseFut;
133 type GetPublicKeyResponseFut: std::future::Future<Output = Result<AsymmetricPrivateKeyGetPublicKeyResult, fidl::Error>>
134 + Send;
135 fn r#get_public_key(&self) -> Self::GetPublicKeyResponseFut;
136 type GetKeyAlgorithmResponseFut: std::future::Future<Output = Result<AsymmetricPrivateKeyGetKeyAlgorithmResult, fidl::Error>>
137 + Send;
138 fn r#get_key_algorithm(&self) -> Self::GetKeyAlgorithmResponseFut;
139}
140#[derive(Debug)]
141#[cfg(target_os = "fuchsia")]
142pub struct AsymmetricPrivateKeySynchronousProxy {
143 client: fidl::client::sync::Client,
144}
145
146#[cfg(target_os = "fuchsia")]
147impl fidl::endpoints::SynchronousProxy for AsymmetricPrivateKeySynchronousProxy {
148 type Proxy = AsymmetricPrivateKeyProxy;
149 type Protocol = AsymmetricPrivateKeyMarker;
150
151 fn from_channel(inner: fidl::Channel) -> Self {
152 Self::new(inner)
153 }
154
155 fn into_channel(self) -> fidl::Channel {
156 self.client.into_channel()
157 }
158
159 fn as_channel(&self) -> &fidl::Channel {
160 self.client.as_channel()
161 }
162}
163
164#[cfg(target_os = "fuchsia")]
165impl AsymmetricPrivateKeySynchronousProxy {
166 pub fn new(channel: fidl::Channel) -> Self {
167 Self { client: fidl::client::sync::Client::new(channel) }
168 }
169
170 pub fn into_channel(self) -> fidl::Channel {
171 self.client.into_channel()
172 }
173
174 pub fn wait_for_event(
177 &self,
178 deadline: zx::MonotonicInstant,
179 ) -> Result<AsymmetricPrivateKeyEvent, fidl::Error> {
180 AsymmetricPrivateKeyEvent::decode(
181 self.client.wait_for_event::<AsymmetricPrivateKeyMarker>(deadline)?,
182 )
183 }
184
185 pub fn r#get_key_origin(
187 &self,
188 ___deadline: zx::MonotonicInstant,
189 ) -> Result<KeyGetKeyOriginResult, fidl::Error> {
190 let _response = self.client.send_query::<
191 fidl::encoding::EmptyPayload,
192 fidl::encoding::ResultType<KeyGetKeyOriginResponse, Error>,
193 AsymmetricPrivateKeyMarker,
194 >(
195 (),
196 0x3e439554159e7b86,
197 fidl::encoding::DynamicFlags::empty(),
198 ___deadline,
199 )?;
200 Ok(_response.map(|x| x.key_origin))
201 }
202
203 pub fn r#get_key_provider(
205 &self,
206 ___deadline: zx::MonotonicInstant,
207 ) -> Result<KeyGetKeyProviderResult, fidl::Error> {
208 let _response = self.client.send_query::<
209 fidl::encoding::EmptyPayload,
210 fidl::encoding::ResultType<KeyGetKeyProviderResponse, Error>,
211 AsymmetricPrivateKeyMarker,
212 >(
213 (),
214 0x68e2cd7ec0532e0c,
215 fidl::encoding::DynamicFlags::empty(),
216 ___deadline,
217 )?;
218 Ok(_response.map(|x| x.key_provider))
219 }
220
221 pub fn r#sign(
223 &self,
224 mut data: fidl_fuchsia_mem::Buffer,
225 ___deadline: zx::MonotonicInstant,
226 ) -> Result<AsymmetricPrivateKeySignResult, fidl::Error> {
227 let _response = self.client.send_query::<
228 AsymmetricPrivateKeySignRequest,
229 fidl::encoding::ResultType<AsymmetricPrivateKeySignResponse, Error>,
230 AsymmetricPrivateKeyMarker,
231 >(
232 (&mut data,),
233 0x524ba8b350c2542e,
234 fidl::encoding::DynamicFlags::empty(),
235 ___deadline,
236 )?;
237 Ok(_response.map(|x| x.signature))
238 }
239
240 pub fn r#get_public_key(
242 &self,
243 ___deadline: zx::MonotonicInstant,
244 ) -> Result<AsymmetricPrivateKeyGetPublicKeyResult, fidl::Error> {
245 let _response =
246 self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
247 AsymmetricPrivateKeyGetPublicKeyResponse,
248 Error,
249 >, AsymmetricPrivateKeyMarker>(
250 (),
251 0x5439aff00ed261f3,
252 fidl::encoding::DynamicFlags::empty(),
253 ___deadline,
254 )?;
255 Ok(_response.map(|x| x.public_key))
256 }
257
258 pub fn r#get_key_algorithm(
260 &self,
261 ___deadline: zx::MonotonicInstant,
262 ) -> Result<AsymmetricPrivateKeyGetKeyAlgorithmResult, fidl::Error> {
263 let _response =
264 self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
265 AsymmetricPrivateKeyGetKeyAlgorithmResponse,
266 Error,
267 >, AsymmetricPrivateKeyMarker>(
268 (),
269 0xe0ce6b5b815b1ae,
270 fidl::encoding::DynamicFlags::empty(),
271 ___deadline,
272 )?;
273 Ok(_response.map(|x| x.key_algorithm))
274 }
275}
276
277#[cfg(target_os = "fuchsia")]
278impl From<AsymmetricPrivateKeySynchronousProxy> for zx::NullableHandle {
279 fn from(value: AsymmetricPrivateKeySynchronousProxy) -> Self {
280 value.into_channel().into()
281 }
282}
283
284#[cfg(target_os = "fuchsia")]
285impl From<fidl::Channel> for AsymmetricPrivateKeySynchronousProxy {
286 fn from(value: fidl::Channel) -> Self {
287 Self::new(value)
288 }
289}
290
291#[cfg(target_os = "fuchsia")]
292impl fidl::endpoints::FromClient for AsymmetricPrivateKeySynchronousProxy {
293 type Protocol = AsymmetricPrivateKeyMarker;
294
295 fn from_client(value: fidl::endpoints::ClientEnd<AsymmetricPrivateKeyMarker>) -> Self {
296 Self::new(value.into_channel())
297 }
298}
299
300#[derive(Debug, Clone)]
301pub struct AsymmetricPrivateKeyProxy {
302 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
303}
304
305impl fidl::endpoints::Proxy for AsymmetricPrivateKeyProxy {
306 type Protocol = AsymmetricPrivateKeyMarker;
307
308 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
309 Self::new(inner)
310 }
311
312 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
313 self.client.into_channel().map_err(|client| Self { client })
314 }
315
316 fn as_channel(&self) -> &::fidl::AsyncChannel {
317 self.client.as_channel()
318 }
319}
320
321impl AsymmetricPrivateKeyProxy {
322 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
324 let protocol_name =
325 <AsymmetricPrivateKeyMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
326 Self { client: fidl::client::Client::new(channel, protocol_name) }
327 }
328
329 pub fn take_event_stream(&self) -> AsymmetricPrivateKeyEventStream {
335 AsymmetricPrivateKeyEventStream { event_receiver: self.client.take_event_receiver() }
336 }
337
338 pub fn r#get_key_origin(
340 &self,
341 ) -> fidl::client::QueryResponseFut<
342 KeyGetKeyOriginResult,
343 fidl::encoding::DefaultFuchsiaResourceDialect,
344 > {
345 AsymmetricPrivateKeyProxyInterface::r#get_key_origin(self)
346 }
347
348 pub fn r#get_key_provider(
350 &self,
351 ) -> fidl::client::QueryResponseFut<
352 KeyGetKeyProviderResult,
353 fidl::encoding::DefaultFuchsiaResourceDialect,
354 > {
355 AsymmetricPrivateKeyProxyInterface::r#get_key_provider(self)
356 }
357
358 pub fn r#sign(
360 &self,
361 mut data: fidl_fuchsia_mem::Buffer,
362 ) -> fidl::client::QueryResponseFut<
363 AsymmetricPrivateKeySignResult,
364 fidl::encoding::DefaultFuchsiaResourceDialect,
365 > {
366 AsymmetricPrivateKeyProxyInterface::r#sign(self, data)
367 }
368
369 pub fn r#get_public_key(
371 &self,
372 ) -> fidl::client::QueryResponseFut<
373 AsymmetricPrivateKeyGetPublicKeyResult,
374 fidl::encoding::DefaultFuchsiaResourceDialect,
375 > {
376 AsymmetricPrivateKeyProxyInterface::r#get_public_key(self)
377 }
378
379 pub fn r#get_key_algorithm(
381 &self,
382 ) -> fidl::client::QueryResponseFut<
383 AsymmetricPrivateKeyGetKeyAlgorithmResult,
384 fidl::encoding::DefaultFuchsiaResourceDialect,
385 > {
386 AsymmetricPrivateKeyProxyInterface::r#get_key_algorithm(self)
387 }
388}
389
390impl AsymmetricPrivateKeyProxyInterface for AsymmetricPrivateKeyProxy {
391 type GetKeyOriginResponseFut = fidl::client::QueryResponseFut<
392 KeyGetKeyOriginResult,
393 fidl::encoding::DefaultFuchsiaResourceDialect,
394 >;
395 fn r#get_key_origin(&self) -> Self::GetKeyOriginResponseFut {
396 fn _decode(
397 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
398 ) -> Result<KeyGetKeyOriginResult, fidl::Error> {
399 let _response = fidl::client::decode_transaction_body::<
400 fidl::encoding::ResultType<KeyGetKeyOriginResponse, Error>,
401 fidl::encoding::DefaultFuchsiaResourceDialect,
402 0x3e439554159e7b86,
403 >(_buf?)?;
404 Ok(_response.map(|x| x.key_origin))
405 }
406 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, KeyGetKeyOriginResult>(
407 (),
408 0x3e439554159e7b86,
409 fidl::encoding::DynamicFlags::empty(),
410 _decode,
411 )
412 }
413
414 type GetKeyProviderResponseFut = fidl::client::QueryResponseFut<
415 KeyGetKeyProviderResult,
416 fidl::encoding::DefaultFuchsiaResourceDialect,
417 >;
418 fn r#get_key_provider(&self) -> Self::GetKeyProviderResponseFut {
419 fn _decode(
420 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
421 ) -> Result<KeyGetKeyProviderResult, fidl::Error> {
422 let _response = fidl::client::decode_transaction_body::<
423 fidl::encoding::ResultType<KeyGetKeyProviderResponse, Error>,
424 fidl::encoding::DefaultFuchsiaResourceDialect,
425 0x68e2cd7ec0532e0c,
426 >(_buf?)?;
427 Ok(_response.map(|x| x.key_provider))
428 }
429 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, KeyGetKeyProviderResult>(
430 (),
431 0x68e2cd7ec0532e0c,
432 fidl::encoding::DynamicFlags::empty(),
433 _decode,
434 )
435 }
436
437 type SignResponseFut = fidl::client::QueryResponseFut<
438 AsymmetricPrivateKeySignResult,
439 fidl::encoding::DefaultFuchsiaResourceDialect,
440 >;
441 fn r#sign(&self, mut data: fidl_fuchsia_mem::Buffer) -> Self::SignResponseFut {
442 fn _decode(
443 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
444 ) -> Result<AsymmetricPrivateKeySignResult, fidl::Error> {
445 let _response = fidl::client::decode_transaction_body::<
446 fidl::encoding::ResultType<AsymmetricPrivateKeySignResponse, Error>,
447 fidl::encoding::DefaultFuchsiaResourceDialect,
448 0x524ba8b350c2542e,
449 >(_buf?)?;
450 Ok(_response.map(|x| x.signature))
451 }
452 self.client.send_query_and_decode::<
453 AsymmetricPrivateKeySignRequest,
454 AsymmetricPrivateKeySignResult,
455 >(
456 (&mut data,),
457 0x524ba8b350c2542e,
458 fidl::encoding::DynamicFlags::empty(),
459 _decode,
460 )
461 }
462
463 type GetPublicKeyResponseFut = fidl::client::QueryResponseFut<
464 AsymmetricPrivateKeyGetPublicKeyResult,
465 fidl::encoding::DefaultFuchsiaResourceDialect,
466 >;
467 fn r#get_public_key(&self) -> Self::GetPublicKeyResponseFut {
468 fn _decode(
469 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
470 ) -> Result<AsymmetricPrivateKeyGetPublicKeyResult, fidl::Error> {
471 let _response = fidl::client::decode_transaction_body::<
472 fidl::encoding::ResultType<AsymmetricPrivateKeyGetPublicKeyResponse, Error>,
473 fidl::encoding::DefaultFuchsiaResourceDialect,
474 0x5439aff00ed261f3,
475 >(_buf?)?;
476 Ok(_response.map(|x| x.public_key))
477 }
478 self.client.send_query_and_decode::<
479 fidl::encoding::EmptyPayload,
480 AsymmetricPrivateKeyGetPublicKeyResult,
481 >(
482 (),
483 0x5439aff00ed261f3,
484 fidl::encoding::DynamicFlags::empty(),
485 _decode,
486 )
487 }
488
489 type GetKeyAlgorithmResponseFut = fidl::client::QueryResponseFut<
490 AsymmetricPrivateKeyGetKeyAlgorithmResult,
491 fidl::encoding::DefaultFuchsiaResourceDialect,
492 >;
493 fn r#get_key_algorithm(&self) -> Self::GetKeyAlgorithmResponseFut {
494 fn _decode(
495 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
496 ) -> Result<AsymmetricPrivateKeyGetKeyAlgorithmResult, fidl::Error> {
497 let _response = fidl::client::decode_transaction_body::<
498 fidl::encoding::ResultType<AsymmetricPrivateKeyGetKeyAlgorithmResponse, Error>,
499 fidl::encoding::DefaultFuchsiaResourceDialect,
500 0xe0ce6b5b815b1ae,
501 >(_buf?)?;
502 Ok(_response.map(|x| x.key_algorithm))
503 }
504 self.client.send_query_and_decode::<
505 fidl::encoding::EmptyPayload,
506 AsymmetricPrivateKeyGetKeyAlgorithmResult,
507 >(
508 (),
509 0xe0ce6b5b815b1ae,
510 fidl::encoding::DynamicFlags::empty(),
511 _decode,
512 )
513 }
514}
515
516pub struct AsymmetricPrivateKeyEventStream {
517 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
518}
519
520impl std::marker::Unpin for AsymmetricPrivateKeyEventStream {}
521
522impl futures::stream::FusedStream for AsymmetricPrivateKeyEventStream {
523 fn is_terminated(&self) -> bool {
524 self.event_receiver.is_terminated()
525 }
526}
527
528impl futures::Stream for AsymmetricPrivateKeyEventStream {
529 type Item = Result<AsymmetricPrivateKeyEvent, fidl::Error>;
530
531 fn poll_next(
532 mut self: std::pin::Pin<&mut Self>,
533 cx: &mut std::task::Context<'_>,
534 ) -> std::task::Poll<Option<Self::Item>> {
535 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
536 &mut self.event_receiver,
537 cx
538 )?) {
539 Some(buf) => std::task::Poll::Ready(Some(AsymmetricPrivateKeyEvent::decode(buf))),
540 None => std::task::Poll::Ready(None),
541 }
542 }
543}
544
545#[derive(Debug)]
546pub enum AsymmetricPrivateKeyEvent {}
547
548impl AsymmetricPrivateKeyEvent {
549 fn decode(
551 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
552 ) -> Result<AsymmetricPrivateKeyEvent, fidl::Error> {
553 let (bytes, _handles) = buf.split_mut();
554 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
555 debug_assert_eq!(tx_header.tx_id, 0);
556 match tx_header.ordinal {
557 _ => Err(fidl::Error::UnknownOrdinal {
558 ordinal: tx_header.ordinal,
559 protocol_name:
560 <AsymmetricPrivateKeyMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
561 }),
562 }
563 }
564}
565
566pub struct AsymmetricPrivateKeyRequestStream {
568 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
569 is_terminated: bool,
570}
571
572impl std::marker::Unpin for AsymmetricPrivateKeyRequestStream {}
573
574impl futures::stream::FusedStream for AsymmetricPrivateKeyRequestStream {
575 fn is_terminated(&self) -> bool {
576 self.is_terminated
577 }
578}
579
580impl fidl::endpoints::RequestStream for AsymmetricPrivateKeyRequestStream {
581 type Protocol = AsymmetricPrivateKeyMarker;
582 type ControlHandle = AsymmetricPrivateKeyControlHandle;
583
584 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
585 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
586 }
587
588 fn control_handle(&self) -> Self::ControlHandle {
589 AsymmetricPrivateKeyControlHandle { inner: self.inner.clone() }
590 }
591
592 fn into_inner(
593 self,
594 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
595 {
596 (self.inner, self.is_terminated)
597 }
598
599 fn from_inner(
600 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
601 is_terminated: bool,
602 ) -> Self {
603 Self { inner, is_terminated }
604 }
605}
606
607impl futures::Stream for AsymmetricPrivateKeyRequestStream {
608 type Item = Result<AsymmetricPrivateKeyRequest, fidl::Error>;
609
610 fn poll_next(
611 mut self: std::pin::Pin<&mut Self>,
612 cx: &mut std::task::Context<'_>,
613 ) -> std::task::Poll<Option<Self::Item>> {
614 let this = &mut *self;
615 if this.inner.check_shutdown(cx) {
616 this.is_terminated = true;
617 return std::task::Poll::Ready(None);
618 }
619 if this.is_terminated {
620 panic!("polled AsymmetricPrivateKeyRequestStream after completion");
621 }
622 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
623 |bytes, handles| {
624 match this.inner.channel().read_etc(cx, bytes, handles) {
625 std::task::Poll::Ready(Ok(())) => {}
626 std::task::Poll::Pending => return std::task::Poll::Pending,
627 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
628 this.is_terminated = true;
629 return std::task::Poll::Ready(None);
630 }
631 std::task::Poll::Ready(Err(e)) => {
632 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
633 e.into(),
634 ))));
635 }
636 }
637
638 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
640
641 std::task::Poll::Ready(Some(match header.ordinal {
642 0x3e439554159e7b86 => {
643 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
644 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
645 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
646 let control_handle = AsymmetricPrivateKeyControlHandle {
647 inner: this.inner.clone(),
648 };
649 Ok(AsymmetricPrivateKeyRequest::GetKeyOrigin {
650 responder: AsymmetricPrivateKeyGetKeyOriginResponder {
651 control_handle: std::mem::ManuallyDrop::new(control_handle),
652 tx_id: header.tx_id,
653 },
654 })
655 }
656 0x68e2cd7ec0532e0c => {
657 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
658 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
659 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
660 let control_handle = AsymmetricPrivateKeyControlHandle {
661 inner: this.inner.clone(),
662 };
663 Ok(AsymmetricPrivateKeyRequest::GetKeyProvider {
664 responder: AsymmetricPrivateKeyGetKeyProviderResponder {
665 control_handle: std::mem::ManuallyDrop::new(control_handle),
666 tx_id: header.tx_id,
667 },
668 })
669 }
670 0x524ba8b350c2542e => {
671 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
672 let mut req = fidl::new_empty!(AsymmetricPrivateKeySignRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
673 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<AsymmetricPrivateKeySignRequest>(&header, _body_bytes, handles, &mut req)?;
674 let control_handle = AsymmetricPrivateKeyControlHandle {
675 inner: this.inner.clone(),
676 };
677 Ok(AsymmetricPrivateKeyRequest::Sign {data: req.data,
678
679 responder: AsymmetricPrivateKeySignResponder {
680 control_handle: std::mem::ManuallyDrop::new(control_handle),
681 tx_id: header.tx_id,
682 },
683 })
684 }
685 0x5439aff00ed261f3 => {
686 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
687 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
688 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
689 let control_handle = AsymmetricPrivateKeyControlHandle {
690 inner: this.inner.clone(),
691 };
692 Ok(AsymmetricPrivateKeyRequest::GetPublicKey {
693 responder: AsymmetricPrivateKeyGetPublicKeyResponder {
694 control_handle: std::mem::ManuallyDrop::new(control_handle),
695 tx_id: header.tx_id,
696 },
697 })
698 }
699 0xe0ce6b5b815b1ae => {
700 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
701 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
702 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
703 let control_handle = AsymmetricPrivateKeyControlHandle {
704 inner: this.inner.clone(),
705 };
706 Ok(AsymmetricPrivateKeyRequest::GetKeyAlgorithm {
707 responder: AsymmetricPrivateKeyGetKeyAlgorithmResponder {
708 control_handle: std::mem::ManuallyDrop::new(control_handle),
709 tx_id: header.tx_id,
710 },
711 })
712 }
713 _ => Err(fidl::Error::UnknownOrdinal {
714 ordinal: header.ordinal,
715 protocol_name: <AsymmetricPrivateKeyMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
716 }),
717 }))
718 },
719 )
720 }
721}
722
723#[derive(Debug)]
724pub enum AsymmetricPrivateKeyRequest {
725 GetKeyOrigin { responder: AsymmetricPrivateKeyGetKeyOriginResponder },
727 GetKeyProvider { responder: AsymmetricPrivateKeyGetKeyProviderResponder },
729 Sign { data: fidl_fuchsia_mem::Buffer, responder: AsymmetricPrivateKeySignResponder },
731 GetPublicKey { responder: AsymmetricPrivateKeyGetPublicKeyResponder },
733 GetKeyAlgorithm { responder: AsymmetricPrivateKeyGetKeyAlgorithmResponder },
735}
736
737impl AsymmetricPrivateKeyRequest {
738 #[allow(irrefutable_let_patterns)]
739 pub fn into_get_key_origin(self) -> Option<(AsymmetricPrivateKeyGetKeyOriginResponder)> {
740 if let AsymmetricPrivateKeyRequest::GetKeyOrigin { responder } = self {
741 Some((responder))
742 } else {
743 None
744 }
745 }
746
747 #[allow(irrefutable_let_patterns)]
748 pub fn into_get_key_provider(self) -> Option<(AsymmetricPrivateKeyGetKeyProviderResponder)> {
749 if let AsymmetricPrivateKeyRequest::GetKeyProvider { responder } = self {
750 Some((responder))
751 } else {
752 None
753 }
754 }
755
756 #[allow(irrefutable_let_patterns)]
757 pub fn into_sign(
758 self,
759 ) -> Option<(fidl_fuchsia_mem::Buffer, AsymmetricPrivateKeySignResponder)> {
760 if let AsymmetricPrivateKeyRequest::Sign { data, responder } = self {
761 Some((data, responder))
762 } else {
763 None
764 }
765 }
766
767 #[allow(irrefutable_let_patterns)]
768 pub fn into_get_public_key(self) -> Option<(AsymmetricPrivateKeyGetPublicKeyResponder)> {
769 if let AsymmetricPrivateKeyRequest::GetPublicKey { responder } = self {
770 Some((responder))
771 } else {
772 None
773 }
774 }
775
776 #[allow(irrefutable_let_patterns)]
777 pub fn into_get_key_algorithm(self) -> Option<(AsymmetricPrivateKeyGetKeyAlgorithmResponder)> {
778 if let AsymmetricPrivateKeyRequest::GetKeyAlgorithm { responder } = self {
779 Some((responder))
780 } else {
781 None
782 }
783 }
784
785 pub fn method_name(&self) -> &'static str {
787 match *self {
788 AsymmetricPrivateKeyRequest::GetKeyOrigin { .. } => "get_key_origin",
789 AsymmetricPrivateKeyRequest::GetKeyProvider { .. } => "get_key_provider",
790 AsymmetricPrivateKeyRequest::Sign { .. } => "sign",
791 AsymmetricPrivateKeyRequest::GetPublicKey { .. } => "get_public_key",
792 AsymmetricPrivateKeyRequest::GetKeyAlgorithm { .. } => "get_key_algorithm",
793 }
794 }
795}
796
797#[derive(Debug, Clone)]
798pub struct AsymmetricPrivateKeyControlHandle {
799 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
800}
801
802impl fidl::endpoints::ControlHandle for AsymmetricPrivateKeyControlHandle {
803 fn shutdown(&self) {
804 self.inner.shutdown()
805 }
806
807 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
808 self.inner.shutdown_with_epitaph(status)
809 }
810
811 fn is_closed(&self) -> bool {
812 self.inner.channel().is_closed()
813 }
814 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
815 self.inner.channel().on_closed()
816 }
817
818 #[cfg(target_os = "fuchsia")]
819 fn signal_peer(
820 &self,
821 clear_mask: zx::Signals,
822 set_mask: zx::Signals,
823 ) -> Result<(), zx_status::Status> {
824 use fidl::Peered;
825 self.inner.channel().signal_peer(clear_mask, set_mask)
826 }
827}
828
829impl AsymmetricPrivateKeyControlHandle {}
830
831#[must_use = "FIDL methods require a response to be sent"]
832#[derive(Debug)]
833pub struct AsymmetricPrivateKeyGetKeyOriginResponder {
834 control_handle: std::mem::ManuallyDrop<AsymmetricPrivateKeyControlHandle>,
835 tx_id: u32,
836}
837
838impl std::ops::Drop for AsymmetricPrivateKeyGetKeyOriginResponder {
842 fn drop(&mut self) {
843 self.control_handle.shutdown();
844 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
846 }
847}
848
849impl fidl::endpoints::Responder for AsymmetricPrivateKeyGetKeyOriginResponder {
850 type ControlHandle = AsymmetricPrivateKeyControlHandle;
851
852 fn control_handle(&self) -> &AsymmetricPrivateKeyControlHandle {
853 &self.control_handle
854 }
855
856 fn drop_without_shutdown(mut self) {
857 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
859 std::mem::forget(self);
861 }
862}
863
864impl AsymmetricPrivateKeyGetKeyOriginResponder {
865 pub fn send(self, mut result: Result<KeyOrigin, Error>) -> Result<(), fidl::Error> {
869 let _result = self.send_raw(result);
870 if _result.is_err() {
871 self.control_handle.shutdown();
872 }
873 self.drop_without_shutdown();
874 _result
875 }
876
877 pub fn send_no_shutdown_on_err(
879 self,
880 mut result: Result<KeyOrigin, Error>,
881 ) -> Result<(), fidl::Error> {
882 let _result = self.send_raw(result);
883 self.drop_without_shutdown();
884 _result
885 }
886
887 fn send_raw(&self, mut result: Result<KeyOrigin, Error>) -> Result<(), fidl::Error> {
888 self.control_handle
889 .inner
890 .send::<fidl::encoding::ResultType<KeyGetKeyOriginResponse, Error>>(
891 result.map(|key_origin| (key_origin,)),
892 self.tx_id,
893 0x3e439554159e7b86,
894 fidl::encoding::DynamicFlags::empty(),
895 )
896 }
897}
898
899#[must_use = "FIDL methods require a response to be sent"]
900#[derive(Debug)]
901pub struct AsymmetricPrivateKeyGetKeyProviderResponder {
902 control_handle: std::mem::ManuallyDrop<AsymmetricPrivateKeyControlHandle>,
903 tx_id: u32,
904}
905
906impl std::ops::Drop for AsymmetricPrivateKeyGetKeyProviderResponder {
910 fn drop(&mut self) {
911 self.control_handle.shutdown();
912 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
914 }
915}
916
917impl fidl::endpoints::Responder for AsymmetricPrivateKeyGetKeyProviderResponder {
918 type ControlHandle = AsymmetricPrivateKeyControlHandle;
919
920 fn control_handle(&self) -> &AsymmetricPrivateKeyControlHandle {
921 &self.control_handle
922 }
923
924 fn drop_without_shutdown(mut self) {
925 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
927 std::mem::forget(self);
929 }
930}
931
932impl AsymmetricPrivateKeyGetKeyProviderResponder {
933 pub fn send(self, mut result: Result<KeyProvider, Error>) -> Result<(), fidl::Error> {
937 let _result = self.send_raw(result);
938 if _result.is_err() {
939 self.control_handle.shutdown();
940 }
941 self.drop_without_shutdown();
942 _result
943 }
944
945 pub fn send_no_shutdown_on_err(
947 self,
948 mut result: Result<KeyProvider, Error>,
949 ) -> Result<(), fidl::Error> {
950 let _result = self.send_raw(result);
951 self.drop_without_shutdown();
952 _result
953 }
954
955 fn send_raw(&self, mut result: Result<KeyProvider, Error>) -> Result<(), fidl::Error> {
956 self.control_handle
957 .inner
958 .send::<fidl::encoding::ResultType<KeyGetKeyProviderResponse, Error>>(
959 result.map(|key_provider| (key_provider,)),
960 self.tx_id,
961 0x68e2cd7ec0532e0c,
962 fidl::encoding::DynamicFlags::empty(),
963 )
964 }
965}
966
967#[must_use = "FIDL methods require a response to be sent"]
968#[derive(Debug)]
969pub struct AsymmetricPrivateKeySignResponder {
970 control_handle: std::mem::ManuallyDrop<AsymmetricPrivateKeyControlHandle>,
971 tx_id: u32,
972}
973
974impl std::ops::Drop for AsymmetricPrivateKeySignResponder {
978 fn drop(&mut self) {
979 self.control_handle.shutdown();
980 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
982 }
983}
984
985impl fidl::endpoints::Responder for AsymmetricPrivateKeySignResponder {
986 type ControlHandle = AsymmetricPrivateKeyControlHandle;
987
988 fn control_handle(&self) -> &AsymmetricPrivateKeyControlHandle {
989 &self.control_handle
990 }
991
992 fn drop_without_shutdown(mut self) {
993 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
995 std::mem::forget(self);
997 }
998}
999
1000impl AsymmetricPrivateKeySignResponder {
1001 pub fn send(self, mut result: Result<&Signature, Error>) -> Result<(), fidl::Error> {
1005 let _result = self.send_raw(result);
1006 if _result.is_err() {
1007 self.control_handle.shutdown();
1008 }
1009 self.drop_without_shutdown();
1010 _result
1011 }
1012
1013 pub fn send_no_shutdown_on_err(
1015 self,
1016 mut result: Result<&Signature, Error>,
1017 ) -> Result<(), fidl::Error> {
1018 let _result = self.send_raw(result);
1019 self.drop_without_shutdown();
1020 _result
1021 }
1022
1023 fn send_raw(&self, mut result: Result<&Signature, Error>) -> Result<(), fidl::Error> {
1024 self.control_handle
1025 .inner
1026 .send::<fidl::encoding::ResultType<AsymmetricPrivateKeySignResponse, Error>>(
1027 result.map(|signature| (signature,)),
1028 self.tx_id,
1029 0x524ba8b350c2542e,
1030 fidl::encoding::DynamicFlags::empty(),
1031 )
1032 }
1033}
1034
1035#[must_use = "FIDL methods require a response to be sent"]
1036#[derive(Debug)]
1037pub struct AsymmetricPrivateKeyGetPublicKeyResponder {
1038 control_handle: std::mem::ManuallyDrop<AsymmetricPrivateKeyControlHandle>,
1039 tx_id: u32,
1040}
1041
1042impl std::ops::Drop for AsymmetricPrivateKeyGetPublicKeyResponder {
1046 fn drop(&mut self) {
1047 self.control_handle.shutdown();
1048 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1050 }
1051}
1052
1053impl fidl::endpoints::Responder for AsymmetricPrivateKeyGetPublicKeyResponder {
1054 type ControlHandle = AsymmetricPrivateKeyControlHandle;
1055
1056 fn control_handle(&self) -> &AsymmetricPrivateKeyControlHandle {
1057 &self.control_handle
1058 }
1059
1060 fn drop_without_shutdown(mut self) {
1061 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1063 std::mem::forget(self);
1065 }
1066}
1067
1068impl AsymmetricPrivateKeyGetPublicKeyResponder {
1069 pub fn send(self, mut result: Result<&PublicKey, Error>) -> Result<(), fidl::Error> {
1073 let _result = self.send_raw(result);
1074 if _result.is_err() {
1075 self.control_handle.shutdown();
1076 }
1077 self.drop_without_shutdown();
1078 _result
1079 }
1080
1081 pub fn send_no_shutdown_on_err(
1083 self,
1084 mut result: Result<&PublicKey, Error>,
1085 ) -> Result<(), fidl::Error> {
1086 let _result = self.send_raw(result);
1087 self.drop_without_shutdown();
1088 _result
1089 }
1090
1091 fn send_raw(&self, mut result: Result<&PublicKey, Error>) -> Result<(), fidl::Error> {
1092 self.control_handle.inner.send::<fidl::encoding::ResultType<
1093 AsymmetricPrivateKeyGetPublicKeyResponse,
1094 Error,
1095 >>(
1096 result.map(|public_key| (public_key,)),
1097 self.tx_id,
1098 0x5439aff00ed261f3,
1099 fidl::encoding::DynamicFlags::empty(),
1100 )
1101 }
1102}
1103
1104#[must_use = "FIDL methods require a response to be sent"]
1105#[derive(Debug)]
1106pub struct AsymmetricPrivateKeyGetKeyAlgorithmResponder {
1107 control_handle: std::mem::ManuallyDrop<AsymmetricPrivateKeyControlHandle>,
1108 tx_id: u32,
1109}
1110
1111impl std::ops::Drop for AsymmetricPrivateKeyGetKeyAlgorithmResponder {
1115 fn drop(&mut self) {
1116 self.control_handle.shutdown();
1117 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1119 }
1120}
1121
1122impl fidl::endpoints::Responder for AsymmetricPrivateKeyGetKeyAlgorithmResponder {
1123 type ControlHandle = AsymmetricPrivateKeyControlHandle;
1124
1125 fn control_handle(&self) -> &AsymmetricPrivateKeyControlHandle {
1126 &self.control_handle
1127 }
1128
1129 fn drop_without_shutdown(mut self) {
1130 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1132 std::mem::forget(self);
1134 }
1135}
1136
1137impl AsymmetricPrivateKeyGetKeyAlgorithmResponder {
1138 pub fn send(
1142 self,
1143 mut result: Result<AsymmetricKeyAlgorithm, Error>,
1144 ) -> Result<(), fidl::Error> {
1145 let _result = self.send_raw(result);
1146 if _result.is_err() {
1147 self.control_handle.shutdown();
1148 }
1149 self.drop_without_shutdown();
1150 _result
1151 }
1152
1153 pub fn send_no_shutdown_on_err(
1155 self,
1156 mut result: Result<AsymmetricKeyAlgorithm, Error>,
1157 ) -> Result<(), fidl::Error> {
1158 let _result = self.send_raw(result);
1159 self.drop_without_shutdown();
1160 _result
1161 }
1162
1163 fn send_raw(
1164 &self,
1165 mut result: Result<AsymmetricKeyAlgorithm, Error>,
1166 ) -> Result<(), fidl::Error> {
1167 self.control_handle.inner.send::<fidl::encoding::ResultType<
1168 AsymmetricPrivateKeyGetKeyAlgorithmResponse,
1169 Error,
1170 >>(
1171 result.map(|key_algorithm| (key_algorithm,)),
1172 self.tx_id,
1173 0xe0ce6b5b815b1ae,
1174 fidl::encoding::DynamicFlags::empty(),
1175 )
1176 }
1177}
1178
1179#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1180pub struct KeyMarker;
1181
1182impl fidl::endpoints::ProtocolMarker for KeyMarker {
1183 type Proxy = KeyProxy;
1184 type RequestStream = KeyRequestStream;
1185 #[cfg(target_os = "fuchsia")]
1186 type SynchronousProxy = KeySynchronousProxy;
1187
1188 const DEBUG_NAME: &'static str = "(anonymous) Key";
1189}
1190pub type KeyGetKeyOriginResult = Result<KeyOrigin, Error>;
1191pub type KeyGetKeyProviderResult = Result<KeyProvider, Error>;
1192
1193pub trait KeyProxyInterface: Send + Sync {
1194 type GetKeyOriginResponseFut: std::future::Future<Output = Result<KeyGetKeyOriginResult, fidl::Error>>
1195 + Send;
1196 fn r#get_key_origin(&self) -> Self::GetKeyOriginResponseFut;
1197 type GetKeyProviderResponseFut: std::future::Future<Output = Result<KeyGetKeyProviderResult, fidl::Error>>
1198 + Send;
1199 fn r#get_key_provider(&self) -> Self::GetKeyProviderResponseFut;
1200}
1201#[derive(Debug)]
1202#[cfg(target_os = "fuchsia")]
1203pub struct KeySynchronousProxy {
1204 client: fidl::client::sync::Client,
1205}
1206
1207#[cfg(target_os = "fuchsia")]
1208impl fidl::endpoints::SynchronousProxy for KeySynchronousProxy {
1209 type Proxy = KeyProxy;
1210 type Protocol = KeyMarker;
1211
1212 fn from_channel(inner: fidl::Channel) -> Self {
1213 Self::new(inner)
1214 }
1215
1216 fn into_channel(self) -> fidl::Channel {
1217 self.client.into_channel()
1218 }
1219
1220 fn as_channel(&self) -> &fidl::Channel {
1221 self.client.as_channel()
1222 }
1223}
1224
1225#[cfg(target_os = "fuchsia")]
1226impl KeySynchronousProxy {
1227 pub fn new(channel: fidl::Channel) -> Self {
1228 Self { client: fidl::client::sync::Client::new(channel) }
1229 }
1230
1231 pub fn into_channel(self) -> fidl::Channel {
1232 self.client.into_channel()
1233 }
1234
1235 pub fn wait_for_event(&self, deadline: zx::MonotonicInstant) -> Result<KeyEvent, fidl::Error> {
1238 KeyEvent::decode(self.client.wait_for_event::<KeyMarker>(deadline)?)
1239 }
1240
1241 pub fn r#get_key_origin(
1243 &self,
1244 ___deadline: zx::MonotonicInstant,
1245 ) -> Result<KeyGetKeyOriginResult, fidl::Error> {
1246 let _response = self.client.send_query::<
1247 fidl::encoding::EmptyPayload,
1248 fidl::encoding::ResultType<KeyGetKeyOriginResponse, Error>,
1249 KeyMarker,
1250 >(
1251 (),
1252 0x3e439554159e7b86,
1253 fidl::encoding::DynamicFlags::empty(),
1254 ___deadline,
1255 )?;
1256 Ok(_response.map(|x| x.key_origin))
1257 }
1258
1259 pub fn r#get_key_provider(
1261 &self,
1262 ___deadline: zx::MonotonicInstant,
1263 ) -> Result<KeyGetKeyProviderResult, fidl::Error> {
1264 let _response = self.client.send_query::<
1265 fidl::encoding::EmptyPayload,
1266 fidl::encoding::ResultType<KeyGetKeyProviderResponse, Error>,
1267 KeyMarker,
1268 >(
1269 (),
1270 0x68e2cd7ec0532e0c,
1271 fidl::encoding::DynamicFlags::empty(),
1272 ___deadline,
1273 )?;
1274 Ok(_response.map(|x| x.key_provider))
1275 }
1276}
1277
1278#[cfg(target_os = "fuchsia")]
1279impl From<KeySynchronousProxy> for zx::NullableHandle {
1280 fn from(value: KeySynchronousProxy) -> Self {
1281 value.into_channel().into()
1282 }
1283}
1284
1285#[cfg(target_os = "fuchsia")]
1286impl From<fidl::Channel> for KeySynchronousProxy {
1287 fn from(value: fidl::Channel) -> Self {
1288 Self::new(value)
1289 }
1290}
1291
1292#[cfg(target_os = "fuchsia")]
1293impl fidl::endpoints::FromClient for KeySynchronousProxy {
1294 type Protocol = KeyMarker;
1295
1296 fn from_client(value: fidl::endpoints::ClientEnd<KeyMarker>) -> Self {
1297 Self::new(value.into_channel())
1298 }
1299}
1300
1301#[derive(Debug, Clone)]
1302pub struct KeyProxy {
1303 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1304}
1305
1306impl fidl::endpoints::Proxy for KeyProxy {
1307 type Protocol = KeyMarker;
1308
1309 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1310 Self::new(inner)
1311 }
1312
1313 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1314 self.client.into_channel().map_err(|client| Self { client })
1315 }
1316
1317 fn as_channel(&self) -> &::fidl::AsyncChannel {
1318 self.client.as_channel()
1319 }
1320}
1321
1322impl KeyProxy {
1323 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1325 let protocol_name = <KeyMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1326 Self { client: fidl::client::Client::new(channel, protocol_name) }
1327 }
1328
1329 pub fn take_event_stream(&self) -> KeyEventStream {
1335 KeyEventStream { event_receiver: self.client.take_event_receiver() }
1336 }
1337
1338 pub fn r#get_key_origin(
1340 &self,
1341 ) -> fidl::client::QueryResponseFut<
1342 KeyGetKeyOriginResult,
1343 fidl::encoding::DefaultFuchsiaResourceDialect,
1344 > {
1345 KeyProxyInterface::r#get_key_origin(self)
1346 }
1347
1348 pub fn r#get_key_provider(
1350 &self,
1351 ) -> fidl::client::QueryResponseFut<
1352 KeyGetKeyProviderResult,
1353 fidl::encoding::DefaultFuchsiaResourceDialect,
1354 > {
1355 KeyProxyInterface::r#get_key_provider(self)
1356 }
1357}
1358
1359impl KeyProxyInterface for KeyProxy {
1360 type GetKeyOriginResponseFut = fidl::client::QueryResponseFut<
1361 KeyGetKeyOriginResult,
1362 fidl::encoding::DefaultFuchsiaResourceDialect,
1363 >;
1364 fn r#get_key_origin(&self) -> Self::GetKeyOriginResponseFut {
1365 fn _decode(
1366 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1367 ) -> Result<KeyGetKeyOriginResult, fidl::Error> {
1368 let _response = fidl::client::decode_transaction_body::<
1369 fidl::encoding::ResultType<KeyGetKeyOriginResponse, Error>,
1370 fidl::encoding::DefaultFuchsiaResourceDialect,
1371 0x3e439554159e7b86,
1372 >(_buf?)?;
1373 Ok(_response.map(|x| x.key_origin))
1374 }
1375 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, KeyGetKeyOriginResult>(
1376 (),
1377 0x3e439554159e7b86,
1378 fidl::encoding::DynamicFlags::empty(),
1379 _decode,
1380 )
1381 }
1382
1383 type GetKeyProviderResponseFut = fidl::client::QueryResponseFut<
1384 KeyGetKeyProviderResult,
1385 fidl::encoding::DefaultFuchsiaResourceDialect,
1386 >;
1387 fn r#get_key_provider(&self) -> Self::GetKeyProviderResponseFut {
1388 fn _decode(
1389 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1390 ) -> Result<KeyGetKeyProviderResult, fidl::Error> {
1391 let _response = fidl::client::decode_transaction_body::<
1392 fidl::encoding::ResultType<KeyGetKeyProviderResponse, Error>,
1393 fidl::encoding::DefaultFuchsiaResourceDialect,
1394 0x68e2cd7ec0532e0c,
1395 >(_buf?)?;
1396 Ok(_response.map(|x| x.key_provider))
1397 }
1398 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, KeyGetKeyProviderResult>(
1399 (),
1400 0x68e2cd7ec0532e0c,
1401 fidl::encoding::DynamicFlags::empty(),
1402 _decode,
1403 )
1404 }
1405}
1406
1407pub struct KeyEventStream {
1408 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1409}
1410
1411impl std::marker::Unpin for KeyEventStream {}
1412
1413impl futures::stream::FusedStream for KeyEventStream {
1414 fn is_terminated(&self) -> bool {
1415 self.event_receiver.is_terminated()
1416 }
1417}
1418
1419impl futures::Stream for KeyEventStream {
1420 type Item = Result<KeyEvent, fidl::Error>;
1421
1422 fn poll_next(
1423 mut self: std::pin::Pin<&mut Self>,
1424 cx: &mut std::task::Context<'_>,
1425 ) -> std::task::Poll<Option<Self::Item>> {
1426 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1427 &mut self.event_receiver,
1428 cx
1429 )?) {
1430 Some(buf) => std::task::Poll::Ready(Some(KeyEvent::decode(buf))),
1431 None => std::task::Poll::Ready(None),
1432 }
1433 }
1434}
1435
1436#[derive(Debug)]
1437pub enum KeyEvent {}
1438
1439impl KeyEvent {
1440 fn decode(
1442 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1443 ) -> Result<KeyEvent, fidl::Error> {
1444 let (bytes, _handles) = buf.split_mut();
1445 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1446 debug_assert_eq!(tx_header.tx_id, 0);
1447 match tx_header.ordinal {
1448 _ => Err(fidl::Error::UnknownOrdinal {
1449 ordinal: tx_header.ordinal,
1450 protocol_name: <KeyMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1451 }),
1452 }
1453 }
1454}
1455
1456pub struct KeyRequestStream {
1458 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1459 is_terminated: bool,
1460}
1461
1462impl std::marker::Unpin for KeyRequestStream {}
1463
1464impl futures::stream::FusedStream for KeyRequestStream {
1465 fn is_terminated(&self) -> bool {
1466 self.is_terminated
1467 }
1468}
1469
1470impl fidl::endpoints::RequestStream for KeyRequestStream {
1471 type Protocol = KeyMarker;
1472 type ControlHandle = KeyControlHandle;
1473
1474 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1475 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1476 }
1477
1478 fn control_handle(&self) -> Self::ControlHandle {
1479 KeyControlHandle { inner: self.inner.clone() }
1480 }
1481
1482 fn into_inner(
1483 self,
1484 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1485 {
1486 (self.inner, self.is_terminated)
1487 }
1488
1489 fn from_inner(
1490 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1491 is_terminated: bool,
1492 ) -> Self {
1493 Self { inner, is_terminated }
1494 }
1495}
1496
1497impl futures::Stream for KeyRequestStream {
1498 type Item = Result<KeyRequest, fidl::Error>;
1499
1500 fn poll_next(
1501 mut self: std::pin::Pin<&mut Self>,
1502 cx: &mut std::task::Context<'_>,
1503 ) -> std::task::Poll<Option<Self::Item>> {
1504 let this = &mut *self;
1505 if this.inner.check_shutdown(cx) {
1506 this.is_terminated = true;
1507 return std::task::Poll::Ready(None);
1508 }
1509 if this.is_terminated {
1510 panic!("polled KeyRequestStream after completion");
1511 }
1512 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1513 |bytes, handles| {
1514 match this.inner.channel().read_etc(cx, bytes, handles) {
1515 std::task::Poll::Ready(Ok(())) => {}
1516 std::task::Poll::Pending => return std::task::Poll::Pending,
1517 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1518 this.is_terminated = true;
1519 return std::task::Poll::Ready(None);
1520 }
1521 std::task::Poll::Ready(Err(e)) => {
1522 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1523 e.into(),
1524 ))));
1525 }
1526 }
1527
1528 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1530
1531 std::task::Poll::Ready(Some(match header.ordinal {
1532 0x3e439554159e7b86 => {
1533 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1534 let mut req = fidl::new_empty!(
1535 fidl::encoding::EmptyPayload,
1536 fidl::encoding::DefaultFuchsiaResourceDialect
1537 );
1538 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1539 let control_handle = KeyControlHandle { inner: this.inner.clone() };
1540 Ok(KeyRequest::GetKeyOrigin {
1541 responder: KeyGetKeyOriginResponder {
1542 control_handle: std::mem::ManuallyDrop::new(control_handle),
1543 tx_id: header.tx_id,
1544 },
1545 })
1546 }
1547 0x68e2cd7ec0532e0c => {
1548 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1549 let mut req = fidl::new_empty!(
1550 fidl::encoding::EmptyPayload,
1551 fidl::encoding::DefaultFuchsiaResourceDialect
1552 );
1553 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1554 let control_handle = KeyControlHandle { inner: this.inner.clone() };
1555 Ok(KeyRequest::GetKeyProvider {
1556 responder: KeyGetKeyProviderResponder {
1557 control_handle: std::mem::ManuallyDrop::new(control_handle),
1558 tx_id: header.tx_id,
1559 },
1560 })
1561 }
1562 _ => Err(fidl::Error::UnknownOrdinal {
1563 ordinal: header.ordinal,
1564 protocol_name: <KeyMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1565 }),
1566 }))
1567 },
1568 )
1569 }
1570}
1571
1572#[derive(Debug)]
1573pub enum KeyRequest {
1574 GetKeyOrigin { responder: KeyGetKeyOriginResponder },
1576 GetKeyProvider { responder: KeyGetKeyProviderResponder },
1578}
1579
1580impl KeyRequest {
1581 #[allow(irrefutable_let_patterns)]
1582 pub fn into_get_key_origin(self) -> Option<(KeyGetKeyOriginResponder)> {
1583 if let KeyRequest::GetKeyOrigin { responder } = self { Some((responder)) } else { None }
1584 }
1585
1586 #[allow(irrefutable_let_patterns)]
1587 pub fn into_get_key_provider(self) -> Option<(KeyGetKeyProviderResponder)> {
1588 if let KeyRequest::GetKeyProvider { responder } = self { Some((responder)) } else { None }
1589 }
1590
1591 pub fn method_name(&self) -> &'static str {
1593 match *self {
1594 KeyRequest::GetKeyOrigin { .. } => "get_key_origin",
1595 KeyRequest::GetKeyProvider { .. } => "get_key_provider",
1596 }
1597 }
1598}
1599
1600#[derive(Debug, Clone)]
1601pub struct KeyControlHandle {
1602 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1603}
1604
1605impl fidl::endpoints::ControlHandle for KeyControlHandle {
1606 fn shutdown(&self) {
1607 self.inner.shutdown()
1608 }
1609
1610 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1611 self.inner.shutdown_with_epitaph(status)
1612 }
1613
1614 fn is_closed(&self) -> bool {
1615 self.inner.channel().is_closed()
1616 }
1617 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1618 self.inner.channel().on_closed()
1619 }
1620
1621 #[cfg(target_os = "fuchsia")]
1622 fn signal_peer(
1623 &self,
1624 clear_mask: zx::Signals,
1625 set_mask: zx::Signals,
1626 ) -> Result<(), zx_status::Status> {
1627 use fidl::Peered;
1628 self.inner.channel().signal_peer(clear_mask, set_mask)
1629 }
1630}
1631
1632impl KeyControlHandle {}
1633
1634#[must_use = "FIDL methods require a response to be sent"]
1635#[derive(Debug)]
1636pub struct KeyGetKeyOriginResponder {
1637 control_handle: std::mem::ManuallyDrop<KeyControlHandle>,
1638 tx_id: u32,
1639}
1640
1641impl std::ops::Drop for KeyGetKeyOriginResponder {
1645 fn drop(&mut self) {
1646 self.control_handle.shutdown();
1647 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1649 }
1650}
1651
1652impl fidl::endpoints::Responder for KeyGetKeyOriginResponder {
1653 type ControlHandle = KeyControlHandle;
1654
1655 fn control_handle(&self) -> &KeyControlHandle {
1656 &self.control_handle
1657 }
1658
1659 fn drop_without_shutdown(mut self) {
1660 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1662 std::mem::forget(self);
1664 }
1665}
1666
1667impl KeyGetKeyOriginResponder {
1668 pub fn send(self, mut result: Result<KeyOrigin, Error>) -> Result<(), fidl::Error> {
1672 let _result = self.send_raw(result);
1673 if _result.is_err() {
1674 self.control_handle.shutdown();
1675 }
1676 self.drop_without_shutdown();
1677 _result
1678 }
1679
1680 pub fn send_no_shutdown_on_err(
1682 self,
1683 mut result: Result<KeyOrigin, Error>,
1684 ) -> Result<(), fidl::Error> {
1685 let _result = self.send_raw(result);
1686 self.drop_without_shutdown();
1687 _result
1688 }
1689
1690 fn send_raw(&self, mut result: Result<KeyOrigin, Error>) -> Result<(), fidl::Error> {
1691 self.control_handle
1692 .inner
1693 .send::<fidl::encoding::ResultType<KeyGetKeyOriginResponse, Error>>(
1694 result.map(|key_origin| (key_origin,)),
1695 self.tx_id,
1696 0x3e439554159e7b86,
1697 fidl::encoding::DynamicFlags::empty(),
1698 )
1699 }
1700}
1701
1702#[must_use = "FIDL methods require a response to be sent"]
1703#[derive(Debug)]
1704pub struct KeyGetKeyProviderResponder {
1705 control_handle: std::mem::ManuallyDrop<KeyControlHandle>,
1706 tx_id: u32,
1707}
1708
1709impl std::ops::Drop for KeyGetKeyProviderResponder {
1713 fn drop(&mut self) {
1714 self.control_handle.shutdown();
1715 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1717 }
1718}
1719
1720impl fidl::endpoints::Responder for KeyGetKeyProviderResponder {
1721 type ControlHandle = KeyControlHandle;
1722
1723 fn control_handle(&self) -> &KeyControlHandle {
1724 &self.control_handle
1725 }
1726
1727 fn drop_without_shutdown(mut self) {
1728 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1730 std::mem::forget(self);
1732 }
1733}
1734
1735impl KeyGetKeyProviderResponder {
1736 pub fn send(self, mut result: Result<KeyProvider, Error>) -> Result<(), fidl::Error> {
1740 let _result = self.send_raw(result);
1741 if _result.is_err() {
1742 self.control_handle.shutdown();
1743 }
1744 self.drop_without_shutdown();
1745 _result
1746 }
1747
1748 pub fn send_no_shutdown_on_err(
1750 self,
1751 mut result: Result<KeyProvider, Error>,
1752 ) -> Result<(), fidl::Error> {
1753 let _result = self.send_raw(result);
1754 self.drop_without_shutdown();
1755 _result
1756 }
1757
1758 fn send_raw(&self, mut result: Result<KeyProvider, Error>) -> Result<(), fidl::Error> {
1759 self.control_handle
1760 .inner
1761 .send::<fidl::encoding::ResultType<KeyGetKeyProviderResponse, Error>>(
1762 result.map(|key_provider| (key_provider,)),
1763 self.tx_id,
1764 0x68e2cd7ec0532e0c,
1765 fidl::encoding::DynamicFlags::empty(),
1766 )
1767 }
1768}
1769
1770#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1771pub struct KeyManagerMarker;
1772
1773impl fidl::endpoints::ProtocolMarker for KeyManagerMarker {
1774 type Proxy = KeyManagerProxy;
1775 type RequestStream = KeyManagerRequestStream;
1776 #[cfg(target_os = "fuchsia")]
1777 type SynchronousProxy = KeyManagerSynchronousProxy;
1778
1779 const DEBUG_NAME: &'static str = "fuchsia.kms.KeyManager";
1780}
1781impl fidl::endpoints::DiscoverableProtocolMarker for KeyManagerMarker {}
1782pub type KeyManagerSealDataResult = Result<fidl_fuchsia_mem::Buffer, Error>;
1783pub type KeyManagerUnsealDataResult = Result<fidl_fuchsia_mem::Buffer, Error>;
1784pub type KeyManagerGenerateAsymmetricKeyResult = Result<(), Error>;
1785pub type KeyManagerGenerateAsymmetricKeyWithAlgorithmResult = Result<(), Error>;
1786pub type KeyManagerImportAsymmetricPrivateKeyResult = Result<(), Error>;
1787pub type KeyManagerGetAsymmetricPrivateKeyResult = Result<(), Error>;
1788pub type KeyManagerDeleteKeyResult = Result<(), Error>;
1789
1790pub trait KeyManagerProxyInterface: Send + Sync {
1791 type SealDataResponseFut: std::future::Future<Output = Result<KeyManagerSealDataResult, fidl::Error>>
1792 + Send;
1793 fn r#seal_data(&self, plain_text: fidl_fuchsia_mem::Buffer) -> Self::SealDataResponseFut;
1794 type UnsealDataResponseFut: std::future::Future<Output = Result<KeyManagerUnsealDataResult, fidl::Error>>
1795 + Send;
1796 fn r#unseal_data(&self, cipher_text: fidl_fuchsia_mem::Buffer) -> Self::UnsealDataResponseFut;
1797 type GenerateAsymmetricKeyResponseFut: std::future::Future<Output = Result<KeyManagerGenerateAsymmetricKeyResult, fidl::Error>>
1798 + Send;
1799 fn r#generate_asymmetric_key(
1800 &self,
1801 key_name: &str,
1802 key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
1803 ) -> Self::GenerateAsymmetricKeyResponseFut;
1804 type GenerateAsymmetricKeyWithAlgorithmResponseFut: std::future::Future<
1805 Output = Result<KeyManagerGenerateAsymmetricKeyWithAlgorithmResult, fidl::Error>,
1806 > + Send;
1807 fn r#generate_asymmetric_key_with_algorithm(
1808 &self,
1809 key_name: &str,
1810 key_algorithm: AsymmetricKeyAlgorithm,
1811 key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
1812 ) -> Self::GenerateAsymmetricKeyWithAlgorithmResponseFut;
1813 type ImportAsymmetricPrivateKeyResponseFut: std::future::Future<
1814 Output = Result<KeyManagerImportAsymmetricPrivateKeyResult, fidl::Error>,
1815 > + Send;
1816 fn r#import_asymmetric_private_key(
1817 &self,
1818 data: &[u8],
1819 key_name: &str,
1820 key_algorithm: AsymmetricKeyAlgorithm,
1821 key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
1822 ) -> Self::ImportAsymmetricPrivateKeyResponseFut;
1823 type GetAsymmetricPrivateKeyResponseFut: std::future::Future<Output = Result<KeyManagerGetAsymmetricPrivateKeyResult, fidl::Error>>
1824 + Send;
1825 fn r#get_asymmetric_private_key(
1826 &self,
1827 key_name: &str,
1828 key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
1829 ) -> Self::GetAsymmetricPrivateKeyResponseFut;
1830 type DeleteKeyResponseFut: std::future::Future<Output = Result<KeyManagerDeleteKeyResult, fidl::Error>>
1831 + Send;
1832 fn r#delete_key(&self, key_name: &str) -> Self::DeleteKeyResponseFut;
1833}
1834#[derive(Debug)]
1835#[cfg(target_os = "fuchsia")]
1836pub struct KeyManagerSynchronousProxy {
1837 client: fidl::client::sync::Client,
1838}
1839
1840#[cfg(target_os = "fuchsia")]
1841impl fidl::endpoints::SynchronousProxy for KeyManagerSynchronousProxy {
1842 type Proxy = KeyManagerProxy;
1843 type Protocol = KeyManagerMarker;
1844
1845 fn from_channel(inner: fidl::Channel) -> Self {
1846 Self::new(inner)
1847 }
1848
1849 fn into_channel(self) -> fidl::Channel {
1850 self.client.into_channel()
1851 }
1852
1853 fn as_channel(&self) -> &fidl::Channel {
1854 self.client.as_channel()
1855 }
1856}
1857
1858#[cfg(target_os = "fuchsia")]
1859impl KeyManagerSynchronousProxy {
1860 pub fn new(channel: fidl::Channel) -> Self {
1861 Self { client: fidl::client::sync::Client::new(channel) }
1862 }
1863
1864 pub fn into_channel(self) -> fidl::Channel {
1865 self.client.into_channel()
1866 }
1867
1868 pub fn wait_for_event(
1871 &self,
1872 deadline: zx::MonotonicInstant,
1873 ) -> Result<KeyManagerEvent, fidl::Error> {
1874 KeyManagerEvent::decode(self.client.wait_for_event::<KeyManagerMarker>(deadline)?)
1875 }
1876
1877 pub fn r#seal_data(
1882 &self,
1883 mut plain_text: fidl_fuchsia_mem::Buffer,
1884 ___deadline: zx::MonotonicInstant,
1885 ) -> Result<KeyManagerSealDataResult, fidl::Error> {
1886 let _response = self.client.send_query::<
1887 KeyManagerSealDataRequest,
1888 fidl::encoding::ResultType<KeyManagerSealDataResponse, Error>,
1889 KeyManagerMarker,
1890 >(
1891 (&mut plain_text,),
1892 0x3d2fcd85d11c96bb,
1893 fidl::encoding::DynamicFlags::empty(),
1894 ___deadline,
1895 )?;
1896 Ok(_response.map(|x| x.cipher_text))
1897 }
1898
1899 pub fn r#unseal_data(
1903 &self,
1904 mut cipher_text: fidl_fuchsia_mem::Buffer,
1905 ___deadline: zx::MonotonicInstant,
1906 ) -> Result<KeyManagerUnsealDataResult, fidl::Error> {
1907 let _response = self.client.send_query::<
1908 KeyManagerUnsealDataRequest,
1909 fidl::encoding::ResultType<KeyManagerUnsealDataResponse, Error>,
1910 KeyManagerMarker,
1911 >(
1912 (&mut cipher_text,),
1913 0x72dafc3131c1bca6,
1914 fidl::encoding::DynamicFlags::empty(),
1915 ___deadline,
1916 )?;
1917 Ok(_response.map(|x| x.plain_text))
1918 }
1919
1920 pub fn r#generate_asymmetric_key(
1927 &self,
1928 mut key_name: &str,
1929 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
1930 ___deadline: zx::MonotonicInstant,
1931 ) -> Result<KeyManagerGenerateAsymmetricKeyResult, fidl::Error> {
1932 let _response = self.client.send_query::<
1933 KeyManagerGenerateAsymmetricKeyRequest,
1934 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
1935 KeyManagerMarker,
1936 >(
1937 (key_name, key,),
1938 0x66f1aa7ff5eb183d,
1939 fidl::encoding::DynamicFlags::empty(),
1940 ___deadline,
1941 )?;
1942 Ok(_response.map(|x| x))
1943 }
1944
1945 pub fn r#generate_asymmetric_key_with_algorithm(
1951 &self,
1952 mut key_name: &str,
1953 mut key_algorithm: AsymmetricKeyAlgorithm,
1954 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
1955 ___deadline: zx::MonotonicInstant,
1956 ) -> Result<KeyManagerGenerateAsymmetricKeyWithAlgorithmResult, fidl::Error> {
1957 let _response = self.client.send_query::<
1958 KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest,
1959 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
1960 KeyManagerMarker,
1961 >(
1962 (key_name, key_algorithm, key,),
1963 0x2b9eac3ad0bc8a45,
1964 fidl::encoding::DynamicFlags::empty(),
1965 ___deadline,
1966 )?;
1967 Ok(_response.map(|x| x))
1968 }
1969
1970 pub fn r#import_asymmetric_private_key(
1977 &self,
1978 mut data: &[u8],
1979 mut key_name: &str,
1980 mut key_algorithm: AsymmetricKeyAlgorithm,
1981 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
1982 ___deadline: zx::MonotonicInstant,
1983 ) -> Result<KeyManagerImportAsymmetricPrivateKeyResult, fidl::Error> {
1984 let _response = self.client.send_query::<
1985 KeyManagerImportAsymmetricPrivateKeyRequest,
1986 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
1987 KeyManagerMarker,
1988 >(
1989 (data, key_name, key_algorithm, key,),
1990 0x14c78f1ebb4eee71,
1991 fidl::encoding::DynamicFlags::empty(),
1992 ___deadline,
1993 )?;
1994 Ok(_response.map(|x| x))
1995 }
1996
1997 pub fn r#get_asymmetric_private_key(
2002 &self,
2003 mut key_name: &str,
2004 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2005 ___deadline: zx::MonotonicInstant,
2006 ) -> Result<KeyManagerGetAsymmetricPrivateKeyResult, fidl::Error> {
2007 let _response = self.client.send_query::<
2008 KeyManagerGetAsymmetricPrivateKeyRequest,
2009 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
2010 KeyManagerMarker,
2011 >(
2012 (key_name, key,),
2013 0x3a257fc6b6ccc5cd,
2014 fidl::encoding::DynamicFlags::empty(),
2015 ___deadline,
2016 )?;
2017 Ok(_response.map(|x| x))
2018 }
2019
2020 pub fn r#delete_key(
2026 &self,
2027 mut key_name: &str,
2028 ___deadline: zx::MonotonicInstant,
2029 ) -> Result<KeyManagerDeleteKeyResult, fidl::Error> {
2030 let _response = self.client.send_query::<
2031 KeyManagerDeleteKeyRequest,
2032 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
2033 KeyManagerMarker,
2034 >(
2035 (key_name,),
2036 0x55521e617d023aad,
2037 fidl::encoding::DynamicFlags::empty(),
2038 ___deadline,
2039 )?;
2040 Ok(_response.map(|x| x))
2041 }
2042}
2043
2044#[cfg(target_os = "fuchsia")]
2045impl From<KeyManagerSynchronousProxy> for zx::NullableHandle {
2046 fn from(value: KeyManagerSynchronousProxy) -> Self {
2047 value.into_channel().into()
2048 }
2049}
2050
2051#[cfg(target_os = "fuchsia")]
2052impl From<fidl::Channel> for KeyManagerSynchronousProxy {
2053 fn from(value: fidl::Channel) -> Self {
2054 Self::new(value)
2055 }
2056}
2057
2058#[cfg(target_os = "fuchsia")]
2059impl fidl::endpoints::FromClient for KeyManagerSynchronousProxy {
2060 type Protocol = KeyManagerMarker;
2061
2062 fn from_client(value: fidl::endpoints::ClientEnd<KeyManagerMarker>) -> Self {
2063 Self::new(value.into_channel())
2064 }
2065}
2066
2067#[derive(Debug, Clone)]
2068pub struct KeyManagerProxy {
2069 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
2070}
2071
2072impl fidl::endpoints::Proxy for KeyManagerProxy {
2073 type Protocol = KeyManagerMarker;
2074
2075 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
2076 Self::new(inner)
2077 }
2078
2079 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
2080 self.client.into_channel().map_err(|client| Self { client })
2081 }
2082
2083 fn as_channel(&self) -> &::fidl::AsyncChannel {
2084 self.client.as_channel()
2085 }
2086}
2087
2088impl KeyManagerProxy {
2089 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
2091 let protocol_name = <KeyManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2092 Self { client: fidl::client::Client::new(channel, protocol_name) }
2093 }
2094
2095 pub fn take_event_stream(&self) -> KeyManagerEventStream {
2101 KeyManagerEventStream { event_receiver: self.client.take_event_receiver() }
2102 }
2103
2104 pub fn r#seal_data(
2109 &self,
2110 mut plain_text: fidl_fuchsia_mem::Buffer,
2111 ) -> fidl::client::QueryResponseFut<
2112 KeyManagerSealDataResult,
2113 fidl::encoding::DefaultFuchsiaResourceDialect,
2114 > {
2115 KeyManagerProxyInterface::r#seal_data(self, plain_text)
2116 }
2117
2118 pub fn r#unseal_data(
2122 &self,
2123 mut cipher_text: fidl_fuchsia_mem::Buffer,
2124 ) -> fidl::client::QueryResponseFut<
2125 KeyManagerUnsealDataResult,
2126 fidl::encoding::DefaultFuchsiaResourceDialect,
2127 > {
2128 KeyManagerProxyInterface::r#unseal_data(self, cipher_text)
2129 }
2130
2131 pub fn r#generate_asymmetric_key(
2138 &self,
2139 mut key_name: &str,
2140 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2141 ) -> fidl::client::QueryResponseFut<
2142 KeyManagerGenerateAsymmetricKeyResult,
2143 fidl::encoding::DefaultFuchsiaResourceDialect,
2144 > {
2145 KeyManagerProxyInterface::r#generate_asymmetric_key(self, key_name, key)
2146 }
2147
2148 pub fn r#generate_asymmetric_key_with_algorithm(
2154 &self,
2155 mut key_name: &str,
2156 mut key_algorithm: AsymmetricKeyAlgorithm,
2157 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2158 ) -> fidl::client::QueryResponseFut<
2159 KeyManagerGenerateAsymmetricKeyWithAlgorithmResult,
2160 fidl::encoding::DefaultFuchsiaResourceDialect,
2161 > {
2162 KeyManagerProxyInterface::r#generate_asymmetric_key_with_algorithm(
2163 self,
2164 key_name,
2165 key_algorithm,
2166 key,
2167 )
2168 }
2169
2170 pub fn r#import_asymmetric_private_key(
2177 &self,
2178 mut data: &[u8],
2179 mut key_name: &str,
2180 mut key_algorithm: AsymmetricKeyAlgorithm,
2181 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2182 ) -> fidl::client::QueryResponseFut<
2183 KeyManagerImportAsymmetricPrivateKeyResult,
2184 fidl::encoding::DefaultFuchsiaResourceDialect,
2185 > {
2186 KeyManagerProxyInterface::r#import_asymmetric_private_key(
2187 self,
2188 data,
2189 key_name,
2190 key_algorithm,
2191 key,
2192 )
2193 }
2194
2195 pub fn r#get_asymmetric_private_key(
2200 &self,
2201 mut key_name: &str,
2202 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2203 ) -> fidl::client::QueryResponseFut<
2204 KeyManagerGetAsymmetricPrivateKeyResult,
2205 fidl::encoding::DefaultFuchsiaResourceDialect,
2206 > {
2207 KeyManagerProxyInterface::r#get_asymmetric_private_key(self, key_name, key)
2208 }
2209
2210 pub fn r#delete_key(
2216 &self,
2217 mut key_name: &str,
2218 ) -> fidl::client::QueryResponseFut<
2219 KeyManagerDeleteKeyResult,
2220 fidl::encoding::DefaultFuchsiaResourceDialect,
2221 > {
2222 KeyManagerProxyInterface::r#delete_key(self, key_name)
2223 }
2224}
2225
2226impl KeyManagerProxyInterface for KeyManagerProxy {
2227 type SealDataResponseFut = fidl::client::QueryResponseFut<
2228 KeyManagerSealDataResult,
2229 fidl::encoding::DefaultFuchsiaResourceDialect,
2230 >;
2231 fn r#seal_data(&self, mut plain_text: fidl_fuchsia_mem::Buffer) -> Self::SealDataResponseFut {
2232 fn _decode(
2233 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2234 ) -> Result<KeyManagerSealDataResult, fidl::Error> {
2235 let _response = fidl::client::decode_transaction_body::<
2236 fidl::encoding::ResultType<KeyManagerSealDataResponse, Error>,
2237 fidl::encoding::DefaultFuchsiaResourceDialect,
2238 0x3d2fcd85d11c96bb,
2239 >(_buf?)?;
2240 Ok(_response.map(|x| x.cipher_text))
2241 }
2242 self.client.send_query_and_decode::<KeyManagerSealDataRequest, KeyManagerSealDataResult>(
2243 (&mut plain_text,),
2244 0x3d2fcd85d11c96bb,
2245 fidl::encoding::DynamicFlags::empty(),
2246 _decode,
2247 )
2248 }
2249
2250 type UnsealDataResponseFut = fidl::client::QueryResponseFut<
2251 KeyManagerUnsealDataResult,
2252 fidl::encoding::DefaultFuchsiaResourceDialect,
2253 >;
2254 fn r#unseal_data(
2255 &self,
2256 mut cipher_text: fidl_fuchsia_mem::Buffer,
2257 ) -> Self::UnsealDataResponseFut {
2258 fn _decode(
2259 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2260 ) -> Result<KeyManagerUnsealDataResult, fidl::Error> {
2261 let _response = fidl::client::decode_transaction_body::<
2262 fidl::encoding::ResultType<KeyManagerUnsealDataResponse, Error>,
2263 fidl::encoding::DefaultFuchsiaResourceDialect,
2264 0x72dafc3131c1bca6,
2265 >(_buf?)?;
2266 Ok(_response.map(|x| x.plain_text))
2267 }
2268 self.client
2269 .send_query_and_decode::<KeyManagerUnsealDataRequest, KeyManagerUnsealDataResult>(
2270 (&mut cipher_text,),
2271 0x72dafc3131c1bca6,
2272 fidl::encoding::DynamicFlags::empty(),
2273 _decode,
2274 )
2275 }
2276
2277 type GenerateAsymmetricKeyResponseFut = fidl::client::QueryResponseFut<
2278 KeyManagerGenerateAsymmetricKeyResult,
2279 fidl::encoding::DefaultFuchsiaResourceDialect,
2280 >;
2281 fn r#generate_asymmetric_key(
2282 &self,
2283 mut key_name: &str,
2284 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2285 ) -> Self::GenerateAsymmetricKeyResponseFut {
2286 fn _decode(
2287 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2288 ) -> Result<KeyManagerGenerateAsymmetricKeyResult, fidl::Error> {
2289 let _response = fidl::client::decode_transaction_body::<
2290 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
2291 fidl::encoding::DefaultFuchsiaResourceDialect,
2292 0x66f1aa7ff5eb183d,
2293 >(_buf?)?;
2294 Ok(_response.map(|x| x))
2295 }
2296 self.client.send_query_and_decode::<
2297 KeyManagerGenerateAsymmetricKeyRequest,
2298 KeyManagerGenerateAsymmetricKeyResult,
2299 >(
2300 (key_name, key,),
2301 0x66f1aa7ff5eb183d,
2302 fidl::encoding::DynamicFlags::empty(),
2303 _decode,
2304 )
2305 }
2306
2307 type GenerateAsymmetricKeyWithAlgorithmResponseFut = fidl::client::QueryResponseFut<
2308 KeyManagerGenerateAsymmetricKeyWithAlgorithmResult,
2309 fidl::encoding::DefaultFuchsiaResourceDialect,
2310 >;
2311 fn r#generate_asymmetric_key_with_algorithm(
2312 &self,
2313 mut key_name: &str,
2314 mut key_algorithm: AsymmetricKeyAlgorithm,
2315 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2316 ) -> Self::GenerateAsymmetricKeyWithAlgorithmResponseFut {
2317 fn _decode(
2318 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2319 ) -> Result<KeyManagerGenerateAsymmetricKeyWithAlgorithmResult, fidl::Error> {
2320 let _response = fidl::client::decode_transaction_body::<
2321 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
2322 fidl::encoding::DefaultFuchsiaResourceDialect,
2323 0x2b9eac3ad0bc8a45,
2324 >(_buf?)?;
2325 Ok(_response.map(|x| x))
2326 }
2327 self.client.send_query_and_decode::<
2328 KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest,
2329 KeyManagerGenerateAsymmetricKeyWithAlgorithmResult,
2330 >(
2331 (key_name, key_algorithm, key,),
2332 0x2b9eac3ad0bc8a45,
2333 fidl::encoding::DynamicFlags::empty(),
2334 _decode,
2335 )
2336 }
2337
2338 type ImportAsymmetricPrivateKeyResponseFut = fidl::client::QueryResponseFut<
2339 KeyManagerImportAsymmetricPrivateKeyResult,
2340 fidl::encoding::DefaultFuchsiaResourceDialect,
2341 >;
2342 fn r#import_asymmetric_private_key(
2343 &self,
2344 mut data: &[u8],
2345 mut key_name: &str,
2346 mut key_algorithm: AsymmetricKeyAlgorithm,
2347 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2348 ) -> Self::ImportAsymmetricPrivateKeyResponseFut {
2349 fn _decode(
2350 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2351 ) -> Result<KeyManagerImportAsymmetricPrivateKeyResult, fidl::Error> {
2352 let _response = fidl::client::decode_transaction_body::<
2353 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
2354 fidl::encoding::DefaultFuchsiaResourceDialect,
2355 0x14c78f1ebb4eee71,
2356 >(_buf?)?;
2357 Ok(_response.map(|x| x))
2358 }
2359 self.client.send_query_and_decode::<
2360 KeyManagerImportAsymmetricPrivateKeyRequest,
2361 KeyManagerImportAsymmetricPrivateKeyResult,
2362 >(
2363 (data, key_name, key_algorithm, key,),
2364 0x14c78f1ebb4eee71,
2365 fidl::encoding::DynamicFlags::empty(),
2366 _decode,
2367 )
2368 }
2369
2370 type GetAsymmetricPrivateKeyResponseFut = fidl::client::QueryResponseFut<
2371 KeyManagerGetAsymmetricPrivateKeyResult,
2372 fidl::encoding::DefaultFuchsiaResourceDialect,
2373 >;
2374 fn r#get_asymmetric_private_key(
2375 &self,
2376 mut key_name: &str,
2377 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2378 ) -> Self::GetAsymmetricPrivateKeyResponseFut {
2379 fn _decode(
2380 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2381 ) -> Result<KeyManagerGetAsymmetricPrivateKeyResult, fidl::Error> {
2382 let _response = fidl::client::decode_transaction_body::<
2383 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
2384 fidl::encoding::DefaultFuchsiaResourceDialect,
2385 0x3a257fc6b6ccc5cd,
2386 >(_buf?)?;
2387 Ok(_response.map(|x| x))
2388 }
2389 self.client.send_query_and_decode::<
2390 KeyManagerGetAsymmetricPrivateKeyRequest,
2391 KeyManagerGetAsymmetricPrivateKeyResult,
2392 >(
2393 (key_name, key,),
2394 0x3a257fc6b6ccc5cd,
2395 fidl::encoding::DynamicFlags::empty(),
2396 _decode,
2397 )
2398 }
2399
2400 type DeleteKeyResponseFut = fidl::client::QueryResponseFut<
2401 KeyManagerDeleteKeyResult,
2402 fidl::encoding::DefaultFuchsiaResourceDialect,
2403 >;
2404 fn r#delete_key(&self, mut key_name: &str) -> Self::DeleteKeyResponseFut {
2405 fn _decode(
2406 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2407 ) -> Result<KeyManagerDeleteKeyResult, fidl::Error> {
2408 let _response = fidl::client::decode_transaction_body::<
2409 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
2410 fidl::encoding::DefaultFuchsiaResourceDialect,
2411 0x55521e617d023aad,
2412 >(_buf?)?;
2413 Ok(_response.map(|x| x))
2414 }
2415 self.client.send_query_and_decode::<KeyManagerDeleteKeyRequest, KeyManagerDeleteKeyResult>(
2416 (key_name,),
2417 0x55521e617d023aad,
2418 fidl::encoding::DynamicFlags::empty(),
2419 _decode,
2420 )
2421 }
2422}
2423
2424pub struct KeyManagerEventStream {
2425 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
2426}
2427
2428impl std::marker::Unpin for KeyManagerEventStream {}
2429
2430impl futures::stream::FusedStream for KeyManagerEventStream {
2431 fn is_terminated(&self) -> bool {
2432 self.event_receiver.is_terminated()
2433 }
2434}
2435
2436impl futures::Stream for KeyManagerEventStream {
2437 type Item = Result<KeyManagerEvent, fidl::Error>;
2438
2439 fn poll_next(
2440 mut self: std::pin::Pin<&mut Self>,
2441 cx: &mut std::task::Context<'_>,
2442 ) -> std::task::Poll<Option<Self::Item>> {
2443 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
2444 &mut self.event_receiver,
2445 cx
2446 )?) {
2447 Some(buf) => std::task::Poll::Ready(Some(KeyManagerEvent::decode(buf))),
2448 None => std::task::Poll::Ready(None),
2449 }
2450 }
2451}
2452
2453#[derive(Debug)]
2454pub enum KeyManagerEvent {}
2455
2456impl KeyManagerEvent {
2457 fn decode(
2459 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
2460 ) -> Result<KeyManagerEvent, fidl::Error> {
2461 let (bytes, _handles) = buf.split_mut();
2462 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2463 debug_assert_eq!(tx_header.tx_id, 0);
2464 match tx_header.ordinal {
2465 _ => Err(fidl::Error::UnknownOrdinal {
2466 ordinal: tx_header.ordinal,
2467 protocol_name: <KeyManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2468 }),
2469 }
2470 }
2471}
2472
2473pub struct KeyManagerRequestStream {
2475 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2476 is_terminated: bool,
2477}
2478
2479impl std::marker::Unpin for KeyManagerRequestStream {}
2480
2481impl futures::stream::FusedStream for KeyManagerRequestStream {
2482 fn is_terminated(&self) -> bool {
2483 self.is_terminated
2484 }
2485}
2486
2487impl fidl::endpoints::RequestStream for KeyManagerRequestStream {
2488 type Protocol = KeyManagerMarker;
2489 type ControlHandle = KeyManagerControlHandle;
2490
2491 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
2492 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
2493 }
2494
2495 fn control_handle(&self) -> Self::ControlHandle {
2496 KeyManagerControlHandle { inner: self.inner.clone() }
2497 }
2498
2499 fn into_inner(
2500 self,
2501 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
2502 {
2503 (self.inner, self.is_terminated)
2504 }
2505
2506 fn from_inner(
2507 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2508 is_terminated: bool,
2509 ) -> Self {
2510 Self { inner, is_terminated }
2511 }
2512}
2513
2514impl futures::Stream for KeyManagerRequestStream {
2515 type Item = Result<KeyManagerRequest, fidl::Error>;
2516
2517 fn poll_next(
2518 mut self: std::pin::Pin<&mut Self>,
2519 cx: &mut std::task::Context<'_>,
2520 ) -> std::task::Poll<Option<Self::Item>> {
2521 let this = &mut *self;
2522 if this.inner.check_shutdown(cx) {
2523 this.is_terminated = true;
2524 return std::task::Poll::Ready(None);
2525 }
2526 if this.is_terminated {
2527 panic!("polled KeyManagerRequestStream after completion");
2528 }
2529 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
2530 |bytes, handles| {
2531 match this.inner.channel().read_etc(cx, bytes, handles) {
2532 std::task::Poll::Ready(Ok(())) => {}
2533 std::task::Poll::Pending => return std::task::Poll::Pending,
2534 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
2535 this.is_terminated = true;
2536 return std::task::Poll::Ready(None);
2537 }
2538 std::task::Poll::Ready(Err(e)) => {
2539 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
2540 e.into(),
2541 ))));
2542 }
2543 }
2544
2545 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2547
2548 std::task::Poll::Ready(Some(match header.ordinal {
2549 0x3d2fcd85d11c96bb => {
2550 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2551 let mut req = fidl::new_empty!(
2552 KeyManagerSealDataRequest,
2553 fidl::encoding::DefaultFuchsiaResourceDialect
2554 );
2555 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<KeyManagerSealDataRequest>(&header, _body_bytes, handles, &mut req)?;
2556 let control_handle = KeyManagerControlHandle { inner: this.inner.clone() };
2557 Ok(KeyManagerRequest::SealData {
2558 plain_text: req.plain_text,
2559
2560 responder: KeyManagerSealDataResponder {
2561 control_handle: std::mem::ManuallyDrop::new(control_handle),
2562 tx_id: header.tx_id,
2563 },
2564 })
2565 }
2566 0x72dafc3131c1bca6 => {
2567 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2568 let mut req = fidl::new_empty!(
2569 KeyManagerUnsealDataRequest,
2570 fidl::encoding::DefaultFuchsiaResourceDialect
2571 );
2572 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<KeyManagerUnsealDataRequest>(&header, _body_bytes, handles, &mut req)?;
2573 let control_handle = KeyManagerControlHandle { inner: this.inner.clone() };
2574 Ok(KeyManagerRequest::UnsealData {
2575 cipher_text: req.cipher_text,
2576
2577 responder: KeyManagerUnsealDataResponder {
2578 control_handle: std::mem::ManuallyDrop::new(control_handle),
2579 tx_id: header.tx_id,
2580 },
2581 })
2582 }
2583 0x66f1aa7ff5eb183d => {
2584 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2585 let mut req = fidl::new_empty!(
2586 KeyManagerGenerateAsymmetricKeyRequest,
2587 fidl::encoding::DefaultFuchsiaResourceDialect
2588 );
2589 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<KeyManagerGenerateAsymmetricKeyRequest>(&header, _body_bytes, handles, &mut req)?;
2590 let control_handle = KeyManagerControlHandle { inner: this.inner.clone() };
2591 Ok(KeyManagerRequest::GenerateAsymmetricKey {
2592 key_name: req.key_name,
2593 key: req.key,
2594
2595 responder: KeyManagerGenerateAsymmetricKeyResponder {
2596 control_handle: std::mem::ManuallyDrop::new(control_handle),
2597 tx_id: header.tx_id,
2598 },
2599 })
2600 }
2601 0x2b9eac3ad0bc8a45 => {
2602 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2603 let mut req = fidl::new_empty!(
2604 KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest,
2605 fidl::encoding::DefaultFuchsiaResourceDialect
2606 );
2607 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest>(&header, _body_bytes, handles, &mut req)?;
2608 let control_handle = KeyManagerControlHandle { inner: this.inner.clone() };
2609 Ok(KeyManagerRequest::GenerateAsymmetricKeyWithAlgorithm {
2610 key_name: req.key_name,
2611 key_algorithm: req.key_algorithm,
2612 key: req.key,
2613
2614 responder: KeyManagerGenerateAsymmetricKeyWithAlgorithmResponder {
2615 control_handle: std::mem::ManuallyDrop::new(control_handle),
2616 tx_id: header.tx_id,
2617 },
2618 })
2619 }
2620 0x14c78f1ebb4eee71 => {
2621 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2622 let mut req = fidl::new_empty!(
2623 KeyManagerImportAsymmetricPrivateKeyRequest,
2624 fidl::encoding::DefaultFuchsiaResourceDialect
2625 );
2626 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<KeyManagerImportAsymmetricPrivateKeyRequest>(&header, _body_bytes, handles, &mut req)?;
2627 let control_handle = KeyManagerControlHandle { inner: this.inner.clone() };
2628 Ok(KeyManagerRequest::ImportAsymmetricPrivateKey {
2629 data: req.data,
2630 key_name: req.key_name,
2631 key_algorithm: req.key_algorithm,
2632 key: req.key,
2633
2634 responder: KeyManagerImportAsymmetricPrivateKeyResponder {
2635 control_handle: std::mem::ManuallyDrop::new(control_handle),
2636 tx_id: header.tx_id,
2637 },
2638 })
2639 }
2640 0x3a257fc6b6ccc5cd => {
2641 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2642 let mut req = fidl::new_empty!(
2643 KeyManagerGetAsymmetricPrivateKeyRequest,
2644 fidl::encoding::DefaultFuchsiaResourceDialect
2645 );
2646 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<KeyManagerGetAsymmetricPrivateKeyRequest>(&header, _body_bytes, handles, &mut req)?;
2647 let control_handle = KeyManagerControlHandle { inner: this.inner.clone() };
2648 Ok(KeyManagerRequest::GetAsymmetricPrivateKey {
2649 key_name: req.key_name,
2650 key: req.key,
2651
2652 responder: KeyManagerGetAsymmetricPrivateKeyResponder {
2653 control_handle: std::mem::ManuallyDrop::new(control_handle),
2654 tx_id: header.tx_id,
2655 },
2656 })
2657 }
2658 0x55521e617d023aad => {
2659 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2660 let mut req = fidl::new_empty!(
2661 KeyManagerDeleteKeyRequest,
2662 fidl::encoding::DefaultFuchsiaResourceDialect
2663 );
2664 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<KeyManagerDeleteKeyRequest>(&header, _body_bytes, handles, &mut req)?;
2665 let control_handle = KeyManagerControlHandle { inner: this.inner.clone() };
2666 Ok(KeyManagerRequest::DeleteKey {
2667 key_name: req.key_name,
2668
2669 responder: KeyManagerDeleteKeyResponder {
2670 control_handle: std::mem::ManuallyDrop::new(control_handle),
2671 tx_id: header.tx_id,
2672 },
2673 })
2674 }
2675 _ => Err(fidl::Error::UnknownOrdinal {
2676 ordinal: header.ordinal,
2677 protocol_name:
2678 <KeyManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2679 }),
2680 }))
2681 },
2682 )
2683 }
2684}
2685
2686#[derive(Debug)]
2687pub enum KeyManagerRequest {
2688 SealData { plain_text: fidl_fuchsia_mem::Buffer, responder: KeyManagerSealDataResponder },
2693 UnsealData { cipher_text: fidl_fuchsia_mem::Buffer, responder: KeyManagerUnsealDataResponder },
2697 GenerateAsymmetricKey {
2704 key_name: String,
2705 key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2706 responder: KeyManagerGenerateAsymmetricKeyResponder,
2707 },
2708 GenerateAsymmetricKeyWithAlgorithm {
2714 key_name: String,
2715 key_algorithm: AsymmetricKeyAlgorithm,
2716 key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2717 responder: KeyManagerGenerateAsymmetricKeyWithAlgorithmResponder,
2718 },
2719 ImportAsymmetricPrivateKey {
2726 data: Vec<u8>,
2727 key_name: String,
2728 key_algorithm: AsymmetricKeyAlgorithm,
2729 key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2730 responder: KeyManagerImportAsymmetricPrivateKeyResponder,
2731 },
2732 GetAsymmetricPrivateKey {
2737 key_name: String,
2738 key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2739 responder: KeyManagerGetAsymmetricPrivateKeyResponder,
2740 },
2741 DeleteKey { key_name: String, responder: KeyManagerDeleteKeyResponder },
2747}
2748
2749impl KeyManagerRequest {
2750 #[allow(irrefutable_let_patterns)]
2751 pub fn into_seal_data(self) -> Option<(fidl_fuchsia_mem::Buffer, KeyManagerSealDataResponder)> {
2752 if let KeyManagerRequest::SealData { plain_text, responder } = self {
2753 Some((plain_text, responder))
2754 } else {
2755 None
2756 }
2757 }
2758
2759 #[allow(irrefutable_let_patterns)]
2760 pub fn into_unseal_data(
2761 self,
2762 ) -> Option<(fidl_fuchsia_mem::Buffer, KeyManagerUnsealDataResponder)> {
2763 if let KeyManagerRequest::UnsealData { cipher_text, responder } = self {
2764 Some((cipher_text, responder))
2765 } else {
2766 None
2767 }
2768 }
2769
2770 #[allow(irrefutable_let_patterns)]
2771 pub fn into_generate_asymmetric_key(
2772 self,
2773 ) -> Option<(
2774 String,
2775 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2776 KeyManagerGenerateAsymmetricKeyResponder,
2777 )> {
2778 if let KeyManagerRequest::GenerateAsymmetricKey { key_name, key, responder } = self {
2779 Some((key_name, key, responder))
2780 } else {
2781 None
2782 }
2783 }
2784
2785 #[allow(irrefutable_let_patterns)]
2786 pub fn into_generate_asymmetric_key_with_algorithm(
2787 self,
2788 ) -> Option<(
2789 String,
2790 AsymmetricKeyAlgorithm,
2791 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2792 KeyManagerGenerateAsymmetricKeyWithAlgorithmResponder,
2793 )> {
2794 if let KeyManagerRequest::GenerateAsymmetricKeyWithAlgorithm {
2795 key_name,
2796 key_algorithm,
2797 key,
2798 responder,
2799 } = self
2800 {
2801 Some((key_name, key_algorithm, key, responder))
2802 } else {
2803 None
2804 }
2805 }
2806
2807 #[allow(irrefutable_let_patterns)]
2808 pub fn into_import_asymmetric_private_key(
2809 self,
2810 ) -> Option<(
2811 Vec<u8>,
2812 String,
2813 AsymmetricKeyAlgorithm,
2814 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2815 KeyManagerImportAsymmetricPrivateKeyResponder,
2816 )> {
2817 if let KeyManagerRequest::ImportAsymmetricPrivateKey {
2818 data,
2819 key_name,
2820 key_algorithm,
2821 key,
2822 responder,
2823 } = self
2824 {
2825 Some((data, key_name, key_algorithm, key, responder))
2826 } else {
2827 None
2828 }
2829 }
2830
2831 #[allow(irrefutable_let_patterns)]
2832 pub fn into_get_asymmetric_private_key(
2833 self,
2834 ) -> Option<(
2835 String,
2836 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2837 KeyManagerGetAsymmetricPrivateKeyResponder,
2838 )> {
2839 if let KeyManagerRequest::GetAsymmetricPrivateKey { key_name, key, responder } = self {
2840 Some((key_name, key, responder))
2841 } else {
2842 None
2843 }
2844 }
2845
2846 #[allow(irrefutable_let_patterns)]
2847 pub fn into_delete_key(self) -> Option<(String, KeyManagerDeleteKeyResponder)> {
2848 if let KeyManagerRequest::DeleteKey { key_name, responder } = self {
2849 Some((key_name, responder))
2850 } else {
2851 None
2852 }
2853 }
2854
2855 pub fn method_name(&self) -> &'static str {
2857 match *self {
2858 KeyManagerRequest::SealData { .. } => "seal_data",
2859 KeyManagerRequest::UnsealData { .. } => "unseal_data",
2860 KeyManagerRequest::GenerateAsymmetricKey { .. } => "generate_asymmetric_key",
2861 KeyManagerRequest::GenerateAsymmetricKeyWithAlgorithm { .. } => {
2862 "generate_asymmetric_key_with_algorithm"
2863 }
2864 KeyManagerRequest::ImportAsymmetricPrivateKey { .. } => "import_asymmetric_private_key",
2865 KeyManagerRequest::GetAsymmetricPrivateKey { .. } => "get_asymmetric_private_key",
2866 KeyManagerRequest::DeleteKey { .. } => "delete_key",
2867 }
2868 }
2869}
2870
2871#[derive(Debug, Clone)]
2872pub struct KeyManagerControlHandle {
2873 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2874}
2875
2876impl fidl::endpoints::ControlHandle for KeyManagerControlHandle {
2877 fn shutdown(&self) {
2878 self.inner.shutdown()
2879 }
2880
2881 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
2882 self.inner.shutdown_with_epitaph(status)
2883 }
2884
2885 fn is_closed(&self) -> bool {
2886 self.inner.channel().is_closed()
2887 }
2888 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2889 self.inner.channel().on_closed()
2890 }
2891
2892 #[cfg(target_os = "fuchsia")]
2893 fn signal_peer(
2894 &self,
2895 clear_mask: zx::Signals,
2896 set_mask: zx::Signals,
2897 ) -> Result<(), zx_status::Status> {
2898 use fidl::Peered;
2899 self.inner.channel().signal_peer(clear_mask, set_mask)
2900 }
2901}
2902
2903impl KeyManagerControlHandle {}
2904
2905#[must_use = "FIDL methods require a response to be sent"]
2906#[derive(Debug)]
2907pub struct KeyManagerSealDataResponder {
2908 control_handle: std::mem::ManuallyDrop<KeyManagerControlHandle>,
2909 tx_id: u32,
2910}
2911
2912impl std::ops::Drop for KeyManagerSealDataResponder {
2916 fn drop(&mut self) {
2917 self.control_handle.shutdown();
2918 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2920 }
2921}
2922
2923impl fidl::endpoints::Responder for KeyManagerSealDataResponder {
2924 type ControlHandle = KeyManagerControlHandle;
2925
2926 fn control_handle(&self) -> &KeyManagerControlHandle {
2927 &self.control_handle
2928 }
2929
2930 fn drop_without_shutdown(mut self) {
2931 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2933 std::mem::forget(self);
2935 }
2936}
2937
2938impl KeyManagerSealDataResponder {
2939 pub fn send(
2943 self,
2944 mut result: Result<fidl_fuchsia_mem::Buffer, Error>,
2945 ) -> Result<(), fidl::Error> {
2946 let _result = self.send_raw(result);
2947 if _result.is_err() {
2948 self.control_handle.shutdown();
2949 }
2950 self.drop_without_shutdown();
2951 _result
2952 }
2953
2954 pub fn send_no_shutdown_on_err(
2956 self,
2957 mut result: Result<fidl_fuchsia_mem::Buffer, Error>,
2958 ) -> Result<(), fidl::Error> {
2959 let _result = self.send_raw(result);
2960 self.drop_without_shutdown();
2961 _result
2962 }
2963
2964 fn send_raw(
2965 &self,
2966 mut result: Result<fidl_fuchsia_mem::Buffer, Error>,
2967 ) -> Result<(), fidl::Error> {
2968 self.control_handle
2969 .inner
2970 .send::<fidl::encoding::ResultType<KeyManagerSealDataResponse, Error>>(
2971 result.as_mut().map_err(|e| *e).map(|cipher_text| (cipher_text,)),
2972 self.tx_id,
2973 0x3d2fcd85d11c96bb,
2974 fidl::encoding::DynamicFlags::empty(),
2975 )
2976 }
2977}
2978
2979#[must_use = "FIDL methods require a response to be sent"]
2980#[derive(Debug)]
2981pub struct KeyManagerUnsealDataResponder {
2982 control_handle: std::mem::ManuallyDrop<KeyManagerControlHandle>,
2983 tx_id: u32,
2984}
2985
2986impl std::ops::Drop for KeyManagerUnsealDataResponder {
2990 fn drop(&mut self) {
2991 self.control_handle.shutdown();
2992 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2994 }
2995}
2996
2997impl fidl::endpoints::Responder for KeyManagerUnsealDataResponder {
2998 type ControlHandle = KeyManagerControlHandle;
2999
3000 fn control_handle(&self) -> &KeyManagerControlHandle {
3001 &self.control_handle
3002 }
3003
3004 fn drop_without_shutdown(mut self) {
3005 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3007 std::mem::forget(self);
3009 }
3010}
3011
3012impl KeyManagerUnsealDataResponder {
3013 pub fn send(
3017 self,
3018 mut result: Result<fidl_fuchsia_mem::Buffer, Error>,
3019 ) -> Result<(), fidl::Error> {
3020 let _result = self.send_raw(result);
3021 if _result.is_err() {
3022 self.control_handle.shutdown();
3023 }
3024 self.drop_without_shutdown();
3025 _result
3026 }
3027
3028 pub fn send_no_shutdown_on_err(
3030 self,
3031 mut result: Result<fidl_fuchsia_mem::Buffer, Error>,
3032 ) -> Result<(), fidl::Error> {
3033 let _result = self.send_raw(result);
3034 self.drop_without_shutdown();
3035 _result
3036 }
3037
3038 fn send_raw(
3039 &self,
3040 mut result: Result<fidl_fuchsia_mem::Buffer, Error>,
3041 ) -> Result<(), fidl::Error> {
3042 self.control_handle
3043 .inner
3044 .send::<fidl::encoding::ResultType<KeyManagerUnsealDataResponse, Error>>(
3045 result.as_mut().map_err(|e| *e).map(|plain_text| (plain_text,)),
3046 self.tx_id,
3047 0x72dafc3131c1bca6,
3048 fidl::encoding::DynamicFlags::empty(),
3049 )
3050 }
3051}
3052
3053#[must_use = "FIDL methods require a response to be sent"]
3054#[derive(Debug)]
3055pub struct KeyManagerGenerateAsymmetricKeyResponder {
3056 control_handle: std::mem::ManuallyDrop<KeyManagerControlHandle>,
3057 tx_id: u32,
3058}
3059
3060impl std::ops::Drop for KeyManagerGenerateAsymmetricKeyResponder {
3064 fn drop(&mut self) {
3065 self.control_handle.shutdown();
3066 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3068 }
3069}
3070
3071impl fidl::endpoints::Responder for KeyManagerGenerateAsymmetricKeyResponder {
3072 type ControlHandle = KeyManagerControlHandle;
3073
3074 fn control_handle(&self) -> &KeyManagerControlHandle {
3075 &self.control_handle
3076 }
3077
3078 fn drop_without_shutdown(mut self) {
3079 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3081 std::mem::forget(self);
3083 }
3084}
3085
3086impl KeyManagerGenerateAsymmetricKeyResponder {
3087 pub fn send(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3091 let _result = self.send_raw(result);
3092 if _result.is_err() {
3093 self.control_handle.shutdown();
3094 }
3095 self.drop_without_shutdown();
3096 _result
3097 }
3098
3099 pub fn send_no_shutdown_on_err(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3101 let _result = self.send_raw(result);
3102 self.drop_without_shutdown();
3103 _result
3104 }
3105
3106 fn send_raw(&self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3107 self.control_handle
3108 .inner
3109 .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>>(
3110 result,
3111 self.tx_id,
3112 0x66f1aa7ff5eb183d,
3113 fidl::encoding::DynamicFlags::empty(),
3114 )
3115 }
3116}
3117
3118#[must_use = "FIDL methods require a response to be sent"]
3119#[derive(Debug)]
3120pub struct KeyManagerGenerateAsymmetricKeyWithAlgorithmResponder {
3121 control_handle: std::mem::ManuallyDrop<KeyManagerControlHandle>,
3122 tx_id: u32,
3123}
3124
3125impl std::ops::Drop for KeyManagerGenerateAsymmetricKeyWithAlgorithmResponder {
3129 fn drop(&mut self) {
3130 self.control_handle.shutdown();
3131 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3133 }
3134}
3135
3136impl fidl::endpoints::Responder for KeyManagerGenerateAsymmetricKeyWithAlgorithmResponder {
3137 type ControlHandle = KeyManagerControlHandle;
3138
3139 fn control_handle(&self) -> &KeyManagerControlHandle {
3140 &self.control_handle
3141 }
3142
3143 fn drop_without_shutdown(mut self) {
3144 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3146 std::mem::forget(self);
3148 }
3149}
3150
3151impl KeyManagerGenerateAsymmetricKeyWithAlgorithmResponder {
3152 pub fn send(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3156 let _result = self.send_raw(result);
3157 if _result.is_err() {
3158 self.control_handle.shutdown();
3159 }
3160 self.drop_without_shutdown();
3161 _result
3162 }
3163
3164 pub fn send_no_shutdown_on_err(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3166 let _result = self.send_raw(result);
3167 self.drop_without_shutdown();
3168 _result
3169 }
3170
3171 fn send_raw(&self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3172 self.control_handle
3173 .inner
3174 .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>>(
3175 result,
3176 self.tx_id,
3177 0x2b9eac3ad0bc8a45,
3178 fidl::encoding::DynamicFlags::empty(),
3179 )
3180 }
3181}
3182
3183#[must_use = "FIDL methods require a response to be sent"]
3184#[derive(Debug)]
3185pub struct KeyManagerImportAsymmetricPrivateKeyResponder {
3186 control_handle: std::mem::ManuallyDrop<KeyManagerControlHandle>,
3187 tx_id: u32,
3188}
3189
3190impl std::ops::Drop for KeyManagerImportAsymmetricPrivateKeyResponder {
3194 fn drop(&mut self) {
3195 self.control_handle.shutdown();
3196 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3198 }
3199}
3200
3201impl fidl::endpoints::Responder for KeyManagerImportAsymmetricPrivateKeyResponder {
3202 type ControlHandle = KeyManagerControlHandle;
3203
3204 fn control_handle(&self) -> &KeyManagerControlHandle {
3205 &self.control_handle
3206 }
3207
3208 fn drop_without_shutdown(mut self) {
3209 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3211 std::mem::forget(self);
3213 }
3214}
3215
3216impl KeyManagerImportAsymmetricPrivateKeyResponder {
3217 pub fn send(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3221 let _result = self.send_raw(result);
3222 if _result.is_err() {
3223 self.control_handle.shutdown();
3224 }
3225 self.drop_without_shutdown();
3226 _result
3227 }
3228
3229 pub fn send_no_shutdown_on_err(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3231 let _result = self.send_raw(result);
3232 self.drop_without_shutdown();
3233 _result
3234 }
3235
3236 fn send_raw(&self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3237 self.control_handle
3238 .inner
3239 .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>>(
3240 result,
3241 self.tx_id,
3242 0x14c78f1ebb4eee71,
3243 fidl::encoding::DynamicFlags::empty(),
3244 )
3245 }
3246}
3247
3248#[must_use = "FIDL methods require a response to be sent"]
3249#[derive(Debug)]
3250pub struct KeyManagerGetAsymmetricPrivateKeyResponder {
3251 control_handle: std::mem::ManuallyDrop<KeyManagerControlHandle>,
3252 tx_id: u32,
3253}
3254
3255impl std::ops::Drop for KeyManagerGetAsymmetricPrivateKeyResponder {
3259 fn drop(&mut self) {
3260 self.control_handle.shutdown();
3261 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3263 }
3264}
3265
3266impl fidl::endpoints::Responder for KeyManagerGetAsymmetricPrivateKeyResponder {
3267 type ControlHandle = KeyManagerControlHandle;
3268
3269 fn control_handle(&self) -> &KeyManagerControlHandle {
3270 &self.control_handle
3271 }
3272
3273 fn drop_without_shutdown(mut self) {
3274 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3276 std::mem::forget(self);
3278 }
3279}
3280
3281impl KeyManagerGetAsymmetricPrivateKeyResponder {
3282 pub fn send(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3286 let _result = self.send_raw(result);
3287 if _result.is_err() {
3288 self.control_handle.shutdown();
3289 }
3290 self.drop_without_shutdown();
3291 _result
3292 }
3293
3294 pub fn send_no_shutdown_on_err(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3296 let _result = self.send_raw(result);
3297 self.drop_without_shutdown();
3298 _result
3299 }
3300
3301 fn send_raw(&self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3302 self.control_handle
3303 .inner
3304 .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>>(
3305 result,
3306 self.tx_id,
3307 0x3a257fc6b6ccc5cd,
3308 fidl::encoding::DynamicFlags::empty(),
3309 )
3310 }
3311}
3312
3313#[must_use = "FIDL methods require a response to be sent"]
3314#[derive(Debug)]
3315pub struct KeyManagerDeleteKeyResponder {
3316 control_handle: std::mem::ManuallyDrop<KeyManagerControlHandle>,
3317 tx_id: u32,
3318}
3319
3320impl std::ops::Drop for KeyManagerDeleteKeyResponder {
3324 fn drop(&mut self) {
3325 self.control_handle.shutdown();
3326 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3328 }
3329}
3330
3331impl fidl::endpoints::Responder for KeyManagerDeleteKeyResponder {
3332 type ControlHandle = KeyManagerControlHandle;
3333
3334 fn control_handle(&self) -> &KeyManagerControlHandle {
3335 &self.control_handle
3336 }
3337
3338 fn drop_without_shutdown(mut self) {
3339 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3341 std::mem::forget(self);
3343 }
3344}
3345
3346impl KeyManagerDeleteKeyResponder {
3347 pub fn send(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3351 let _result = self.send_raw(result);
3352 if _result.is_err() {
3353 self.control_handle.shutdown();
3354 }
3355 self.drop_without_shutdown();
3356 _result
3357 }
3358
3359 pub fn send_no_shutdown_on_err(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3361 let _result = self.send_raw(result);
3362 self.drop_without_shutdown();
3363 _result
3364 }
3365
3366 fn send_raw(&self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3367 self.control_handle
3368 .inner
3369 .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>>(
3370 result,
3371 self.tx_id,
3372 0x55521e617d023aad,
3373 fidl::encoding::DynamicFlags::empty(),
3374 )
3375 }
3376}
3377
3378#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
3379pub struct StatelessKeyManagerMarker;
3380
3381impl fidl::endpoints::ProtocolMarker for StatelessKeyManagerMarker {
3382 type Proxy = StatelessKeyManagerProxy;
3383 type RequestStream = StatelessKeyManagerRequestStream;
3384 #[cfg(target_os = "fuchsia")]
3385 type SynchronousProxy = StatelessKeyManagerSynchronousProxy;
3386
3387 const DEBUG_NAME: &'static str = "fuchsia.kms.StatelessKeyManager";
3388}
3389impl fidl::endpoints::DiscoverableProtocolMarker for StatelessKeyManagerMarker {}
3390pub type StatelessKeyManagerGetHardwareDerivedKeyResult = Result<Vec<u8>, Error>;
3391
3392pub trait StatelessKeyManagerProxyInterface: Send + Sync {
3393 type GetHardwareDerivedKeyResponseFut: std::future::Future<
3394 Output = Result<StatelessKeyManagerGetHardwareDerivedKeyResult, fidl::Error>,
3395 > + Send;
3396 fn r#get_hardware_derived_key(&self, key_info: &[u8])
3397 -> Self::GetHardwareDerivedKeyResponseFut;
3398}
3399#[derive(Debug)]
3400#[cfg(target_os = "fuchsia")]
3401pub struct StatelessKeyManagerSynchronousProxy {
3402 client: fidl::client::sync::Client,
3403}
3404
3405#[cfg(target_os = "fuchsia")]
3406impl fidl::endpoints::SynchronousProxy for StatelessKeyManagerSynchronousProxy {
3407 type Proxy = StatelessKeyManagerProxy;
3408 type Protocol = StatelessKeyManagerMarker;
3409
3410 fn from_channel(inner: fidl::Channel) -> Self {
3411 Self::new(inner)
3412 }
3413
3414 fn into_channel(self) -> fidl::Channel {
3415 self.client.into_channel()
3416 }
3417
3418 fn as_channel(&self) -> &fidl::Channel {
3419 self.client.as_channel()
3420 }
3421}
3422
3423#[cfg(target_os = "fuchsia")]
3424impl StatelessKeyManagerSynchronousProxy {
3425 pub fn new(channel: fidl::Channel) -> Self {
3426 Self { client: fidl::client::sync::Client::new(channel) }
3427 }
3428
3429 pub fn into_channel(self) -> fidl::Channel {
3430 self.client.into_channel()
3431 }
3432
3433 pub fn wait_for_event(
3436 &self,
3437 deadline: zx::MonotonicInstant,
3438 ) -> Result<StatelessKeyManagerEvent, fidl::Error> {
3439 StatelessKeyManagerEvent::decode(
3440 self.client.wait_for_event::<StatelessKeyManagerMarker>(deadline)?,
3441 )
3442 }
3443
3444 pub fn r#get_hardware_derived_key(
3451 &self,
3452 mut key_info: &[u8],
3453 ___deadline: zx::MonotonicInstant,
3454 ) -> Result<StatelessKeyManagerGetHardwareDerivedKeyResult, fidl::Error> {
3455 let _response = self.client.send_query::<
3456 StatelessKeyManagerGetHardwareDerivedKeyRequest,
3457 fidl::encoding::ResultType<StatelessKeyManagerGetHardwareDerivedKeyResponse, Error>,
3458 StatelessKeyManagerMarker,
3459 >(
3460 (key_info,),
3461 0x685043d9e68d5f86,
3462 fidl::encoding::DynamicFlags::empty(),
3463 ___deadline,
3464 )?;
3465 Ok(_response.map(|x| x.derived_key))
3466 }
3467}
3468
3469#[cfg(target_os = "fuchsia")]
3470impl From<StatelessKeyManagerSynchronousProxy> for zx::NullableHandle {
3471 fn from(value: StatelessKeyManagerSynchronousProxy) -> Self {
3472 value.into_channel().into()
3473 }
3474}
3475
3476#[cfg(target_os = "fuchsia")]
3477impl From<fidl::Channel> for StatelessKeyManagerSynchronousProxy {
3478 fn from(value: fidl::Channel) -> Self {
3479 Self::new(value)
3480 }
3481}
3482
3483#[cfg(target_os = "fuchsia")]
3484impl fidl::endpoints::FromClient for StatelessKeyManagerSynchronousProxy {
3485 type Protocol = StatelessKeyManagerMarker;
3486
3487 fn from_client(value: fidl::endpoints::ClientEnd<StatelessKeyManagerMarker>) -> Self {
3488 Self::new(value.into_channel())
3489 }
3490}
3491
3492#[derive(Debug, Clone)]
3493pub struct StatelessKeyManagerProxy {
3494 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
3495}
3496
3497impl fidl::endpoints::Proxy for StatelessKeyManagerProxy {
3498 type Protocol = StatelessKeyManagerMarker;
3499
3500 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
3501 Self::new(inner)
3502 }
3503
3504 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
3505 self.client.into_channel().map_err(|client| Self { client })
3506 }
3507
3508 fn as_channel(&self) -> &::fidl::AsyncChannel {
3509 self.client.as_channel()
3510 }
3511}
3512
3513impl StatelessKeyManagerProxy {
3514 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
3516 let protocol_name =
3517 <StatelessKeyManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
3518 Self { client: fidl::client::Client::new(channel, protocol_name) }
3519 }
3520
3521 pub fn take_event_stream(&self) -> StatelessKeyManagerEventStream {
3527 StatelessKeyManagerEventStream { event_receiver: self.client.take_event_receiver() }
3528 }
3529
3530 pub fn r#get_hardware_derived_key(
3537 &self,
3538 mut key_info: &[u8],
3539 ) -> fidl::client::QueryResponseFut<
3540 StatelessKeyManagerGetHardwareDerivedKeyResult,
3541 fidl::encoding::DefaultFuchsiaResourceDialect,
3542 > {
3543 StatelessKeyManagerProxyInterface::r#get_hardware_derived_key(self, key_info)
3544 }
3545}
3546
3547impl StatelessKeyManagerProxyInterface for StatelessKeyManagerProxy {
3548 type GetHardwareDerivedKeyResponseFut = fidl::client::QueryResponseFut<
3549 StatelessKeyManagerGetHardwareDerivedKeyResult,
3550 fidl::encoding::DefaultFuchsiaResourceDialect,
3551 >;
3552 fn r#get_hardware_derived_key(
3553 &self,
3554 mut key_info: &[u8],
3555 ) -> Self::GetHardwareDerivedKeyResponseFut {
3556 fn _decode(
3557 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3558 ) -> Result<StatelessKeyManagerGetHardwareDerivedKeyResult, fidl::Error> {
3559 let _response = fidl::client::decode_transaction_body::<
3560 fidl::encoding::ResultType<StatelessKeyManagerGetHardwareDerivedKeyResponse, Error>,
3561 fidl::encoding::DefaultFuchsiaResourceDialect,
3562 0x685043d9e68d5f86,
3563 >(_buf?)?;
3564 Ok(_response.map(|x| x.derived_key))
3565 }
3566 self.client.send_query_and_decode::<
3567 StatelessKeyManagerGetHardwareDerivedKeyRequest,
3568 StatelessKeyManagerGetHardwareDerivedKeyResult,
3569 >(
3570 (key_info,),
3571 0x685043d9e68d5f86,
3572 fidl::encoding::DynamicFlags::empty(),
3573 _decode,
3574 )
3575 }
3576}
3577
3578pub struct StatelessKeyManagerEventStream {
3579 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
3580}
3581
3582impl std::marker::Unpin for StatelessKeyManagerEventStream {}
3583
3584impl futures::stream::FusedStream for StatelessKeyManagerEventStream {
3585 fn is_terminated(&self) -> bool {
3586 self.event_receiver.is_terminated()
3587 }
3588}
3589
3590impl futures::Stream for StatelessKeyManagerEventStream {
3591 type Item = Result<StatelessKeyManagerEvent, fidl::Error>;
3592
3593 fn poll_next(
3594 mut self: std::pin::Pin<&mut Self>,
3595 cx: &mut std::task::Context<'_>,
3596 ) -> std::task::Poll<Option<Self::Item>> {
3597 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
3598 &mut self.event_receiver,
3599 cx
3600 )?) {
3601 Some(buf) => std::task::Poll::Ready(Some(StatelessKeyManagerEvent::decode(buf))),
3602 None => std::task::Poll::Ready(None),
3603 }
3604 }
3605}
3606
3607#[derive(Debug)]
3608pub enum StatelessKeyManagerEvent {}
3609
3610impl StatelessKeyManagerEvent {
3611 fn decode(
3613 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
3614 ) -> Result<StatelessKeyManagerEvent, fidl::Error> {
3615 let (bytes, _handles) = buf.split_mut();
3616 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3617 debug_assert_eq!(tx_header.tx_id, 0);
3618 match tx_header.ordinal {
3619 _ => Err(fidl::Error::UnknownOrdinal {
3620 ordinal: tx_header.ordinal,
3621 protocol_name:
3622 <StatelessKeyManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3623 }),
3624 }
3625 }
3626}
3627
3628pub struct StatelessKeyManagerRequestStream {
3630 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3631 is_terminated: bool,
3632}
3633
3634impl std::marker::Unpin for StatelessKeyManagerRequestStream {}
3635
3636impl futures::stream::FusedStream for StatelessKeyManagerRequestStream {
3637 fn is_terminated(&self) -> bool {
3638 self.is_terminated
3639 }
3640}
3641
3642impl fidl::endpoints::RequestStream for StatelessKeyManagerRequestStream {
3643 type Protocol = StatelessKeyManagerMarker;
3644 type ControlHandle = StatelessKeyManagerControlHandle;
3645
3646 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
3647 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
3648 }
3649
3650 fn control_handle(&self) -> Self::ControlHandle {
3651 StatelessKeyManagerControlHandle { inner: self.inner.clone() }
3652 }
3653
3654 fn into_inner(
3655 self,
3656 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
3657 {
3658 (self.inner, self.is_terminated)
3659 }
3660
3661 fn from_inner(
3662 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3663 is_terminated: bool,
3664 ) -> Self {
3665 Self { inner, is_terminated }
3666 }
3667}
3668
3669impl futures::Stream for StatelessKeyManagerRequestStream {
3670 type Item = Result<StatelessKeyManagerRequest, fidl::Error>;
3671
3672 fn poll_next(
3673 mut self: std::pin::Pin<&mut Self>,
3674 cx: &mut std::task::Context<'_>,
3675 ) -> std::task::Poll<Option<Self::Item>> {
3676 let this = &mut *self;
3677 if this.inner.check_shutdown(cx) {
3678 this.is_terminated = true;
3679 return std::task::Poll::Ready(None);
3680 }
3681 if this.is_terminated {
3682 panic!("polled StatelessKeyManagerRequestStream after completion");
3683 }
3684 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
3685 |bytes, handles| {
3686 match this.inner.channel().read_etc(cx, bytes, handles) {
3687 std::task::Poll::Ready(Ok(())) => {}
3688 std::task::Poll::Pending => return std::task::Poll::Pending,
3689 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
3690 this.is_terminated = true;
3691 return std::task::Poll::Ready(None);
3692 }
3693 std::task::Poll::Ready(Err(e)) => {
3694 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
3695 e.into(),
3696 ))));
3697 }
3698 }
3699
3700 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3702
3703 std::task::Poll::Ready(Some(match header.ordinal {
3704 0x685043d9e68d5f86 => {
3705 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3706 let mut req = fidl::new_empty!(StatelessKeyManagerGetHardwareDerivedKeyRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
3707 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StatelessKeyManagerGetHardwareDerivedKeyRequest>(&header, _body_bytes, handles, &mut req)?;
3708 let control_handle = StatelessKeyManagerControlHandle {
3709 inner: this.inner.clone(),
3710 };
3711 Ok(StatelessKeyManagerRequest::GetHardwareDerivedKey {key_info: req.key_info,
3712
3713 responder: StatelessKeyManagerGetHardwareDerivedKeyResponder {
3714 control_handle: std::mem::ManuallyDrop::new(control_handle),
3715 tx_id: header.tx_id,
3716 },
3717 })
3718 }
3719 _ => Err(fidl::Error::UnknownOrdinal {
3720 ordinal: header.ordinal,
3721 protocol_name: <StatelessKeyManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3722 }),
3723 }))
3724 },
3725 )
3726 }
3727}
3728
3729#[derive(Debug)]
3730pub enum StatelessKeyManagerRequest {
3731 GetHardwareDerivedKey {
3738 key_info: Vec<u8>,
3739 responder: StatelessKeyManagerGetHardwareDerivedKeyResponder,
3740 },
3741}
3742
3743impl StatelessKeyManagerRequest {
3744 #[allow(irrefutable_let_patterns)]
3745 pub fn into_get_hardware_derived_key(
3746 self,
3747 ) -> Option<(Vec<u8>, StatelessKeyManagerGetHardwareDerivedKeyResponder)> {
3748 if let StatelessKeyManagerRequest::GetHardwareDerivedKey { key_info, responder } = self {
3749 Some((key_info, responder))
3750 } else {
3751 None
3752 }
3753 }
3754
3755 pub fn method_name(&self) -> &'static str {
3757 match *self {
3758 StatelessKeyManagerRequest::GetHardwareDerivedKey { .. } => "get_hardware_derived_key",
3759 }
3760 }
3761}
3762
3763#[derive(Debug, Clone)]
3764pub struct StatelessKeyManagerControlHandle {
3765 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3766}
3767
3768impl fidl::endpoints::ControlHandle for StatelessKeyManagerControlHandle {
3769 fn shutdown(&self) {
3770 self.inner.shutdown()
3771 }
3772
3773 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
3774 self.inner.shutdown_with_epitaph(status)
3775 }
3776
3777 fn is_closed(&self) -> bool {
3778 self.inner.channel().is_closed()
3779 }
3780 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
3781 self.inner.channel().on_closed()
3782 }
3783
3784 #[cfg(target_os = "fuchsia")]
3785 fn signal_peer(
3786 &self,
3787 clear_mask: zx::Signals,
3788 set_mask: zx::Signals,
3789 ) -> Result<(), zx_status::Status> {
3790 use fidl::Peered;
3791 self.inner.channel().signal_peer(clear_mask, set_mask)
3792 }
3793}
3794
3795impl StatelessKeyManagerControlHandle {}
3796
3797#[must_use = "FIDL methods require a response to be sent"]
3798#[derive(Debug)]
3799pub struct StatelessKeyManagerGetHardwareDerivedKeyResponder {
3800 control_handle: std::mem::ManuallyDrop<StatelessKeyManagerControlHandle>,
3801 tx_id: u32,
3802}
3803
3804impl std::ops::Drop for StatelessKeyManagerGetHardwareDerivedKeyResponder {
3808 fn drop(&mut self) {
3809 self.control_handle.shutdown();
3810 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3812 }
3813}
3814
3815impl fidl::endpoints::Responder for StatelessKeyManagerGetHardwareDerivedKeyResponder {
3816 type ControlHandle = StatelessKeyManagerControlHandle;
3817
3818 fn control_handle(&self) -> &StatelessKeyManagerControlHandle {
3819 &self.control_handle
3820 }
3821
3822 fn drop_without_shutdown(mut self) {
3823 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3825 std::mem::forget(self);
3827 }
3828}
3829
3830impl StatelessKeyManagerGetHardwareDerivedKeyResponder {
3831 pub fn send(self, mut result: Result<&[u8], Error>) -> Result<(), fidl::Error> {
3835 let _result = self.send_raw(result);
3836 if _result.is_err() {
3837 self.control_handle.shutdown();
3838 }
3839 self.drop_without_shutdown();
3840 _result
3841 }
3842
3843 pub fn send_no_shutdown_on_err(
3845 self,
3846 mut result: Result<&[u8], Error>,
3847 ) -> Result<(), fidl::Error> {
3848 let _result = self.send_raw(result);
3849 self.drop_without_shutdown();
3850 _result
3851 }
3852
3853 fn send_raw(&self, mut result: Result<&[u8], Error>) -> Result<(), fidl::Error> {
3854 self.control_handle.inner.send::<fidl::encoding::ResultType<
3855 StatelessKeyManagerGetHardwareDerivedKeyResponse,
3856 Error,
3857 >>(
3858 result.map(|derived_key| (derived_key,)),
3859 self.tx_id,
3860 0x685043d9e68d5f86,
3861 fidl::encoding::DynamicFlags::empty(),
3862 )
3863 }
3864}
3865
3866mod internal {
3867 use super::*;
3868
3869 impl fidl::encoding::ResourceTypeMarker for AsymmetricPrivateKeySignRequest {
3870 type Borrowed<'a> = &'a mut Self;
3871 fn take_or_borrow<'a>(
3872 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
3873 ) -> Self::Borrowed<'a> {
3874 value
3875 }
3876 }
3877
3878 unsafe impl fidl::encoding::TypeMarker for AsymmetricPrivateKeySignRequest {
3879 type Owned = Self;
3880
3881 #[inline(always)]
3882 fn inline_align(_context: fidl::encoding::Context) -> usize {
3883 8
3884 }
3885
3886 #[inline(always)]
3887 fn inline_size(_context: fidl::encoding::Context) -> usize {
3888 16
3889 }
3890 }
3891
3892 unsafe impl
3893 fidl::encoding::Encode<
3894 AsymmetricPrivateKeySignRequest,
3895 fidl::encoding::DefaultFuchsiaResourceDialect,
3896 > for &mut AsymmetricPrivateKeySignRequest
3897 {
3898 #[inline]
3899 unsafe fn encode(
3900 self,
3901 encoder: &mut fidl::encoding::Encoder<
3902 '_,
3903 fidl::encoding::DefaultFuchsiaResourceDialect,
3904 >,
3905 offset: usize,
3906 _depth: fidl::encoding::Depth,
3907 ) -> fidl::Result<()> {
3908 encoder.debug_check_bounds::<AsymmetricPrivateKeySignRequest>(offset);
3909 fidl::encoding::Encode::<
3911 AsymmetricPrivateKeySignRequest,
3912 fidl::encoding::DefaultFuchsiaResourceDialect,
3913 >::encode(
3914 (<fidl_fuchsia_mem::Buffer as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
3915 &mut self.data,
3916 ),),
3917 encoder,
3918 offset,
3919 _depth,
3920 )
3921 }
3922 }
3923 unsafe impl<
3924 T0: fidl::encoding::Encode<
3925 fidl_fuchsia_mem::Buffer,
3926 fidl::encoding::DefaultFuchsiaResourceDialect,
3927 >,
3928 >
3929 fidl::encoding::Encode<
3930 AsymmetricPrivateKeySignRequest,
3931 fidl::encoding::DefaultFuchsiaResourceDialect,
3932 > for (T0,)
3933 {
3934 #[inline]
3935 unsafe fn encode(
3936 self,
3937 encoder: &mut fidl::encoding::Encoder<
3938 '_,
3939 fidl::encoding::DefaultFuchsiaResourceDialect,
3940 >,
3941 offset: usize,
3942 depth: fidl::encoding::Depth,
3943 ) -> fidl::Result<()> {
3944 encoder.debug_check_bounds::<AsymmetricPrivateKeySignRequest>(offset);
3945 self.0.encode(encoder, offset + 0, depth)?;
3949 Ok(())
3950 }
3951 }
3952
3953 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
3954 for AsymmetricPrivateKeySignRequest
3955 {
3956 #[inline(always)]
3957 fn new_empty() -> Self {
3958 Self {
3959 data: fidl::new_empty!(
3960 fidl_fuchsia_mem::Buffer,
3961 fidl::encoding::DefaultFuchsiaResourceDialect
3962 ),
3963 }
3964 }
3965
3966 #[inline]
3967 unsafe fn decode(
3968 &mut self,
3969 decoder: &mut fidl::encoding::Decoder<
3970 '_,
3971 fidl::encoding::DefaultFuchsiaResourceDialect,
3972 >,
3973 offset: usize,
3974 _depth: fidl::encoding::Depth,
3975 ) -> fidl::Result<()> {
3976 decoder.debug_check_bounds::<Self>(offset);
3977 fidl::decode!(
3979 fidl_fuchsia_mem::Buffer,
3980 fidl::encoding::DefaultFuchsiaResourceDialect,
3981 &mut self.data,
3982 decoder,
3983 offset + 0,
3984 _depth
3985 )?;
3986 Ok(())
3987 }
3988 }
3989
3990 impl fidl::encoding::ResourceTypeMarker for KeyManagerGenerateAsymmetricKeyRequest {
3991 type Borrowed<'a> = &'a mut Self;
3992 fn take_or_borrow<'a>(
3993 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
3994 ) -> Self::Borrowed<'a> {
3995 value
3996 }
3997 }
3998
3999 unsafe impl fidl::encoding::TypeMarker for KeyManagerGenerateAsymmetricKeyRequest {
4000 type Owned = Self;
4001
4002 #[inline(always)]
4003 fn inline_align(_context: fidl::encoding::Context) -> usize {
4004 8
4005 }
4006
4007 #[inline(always)]
4008 fn inline_size(_context: fidl::encoding::Context) -> usize {
4009 24
4010 }
4011 }
4012
4013 unsafe impl
4014 fidl::encoding::Encode<
4015 KeyManagerGenerateAsymmetricKeyRequest,
4016 fidl::encoding::DefaultFuchsiaResourceDialect,
4017 > for &mut KeyManagerGenerateAsymmetricKeyRequest
4018 {
4019 #[inline]
4020 unsafe fn encode(
4021 self,
4022 encoder: &mut fidl::encoding::Encoder<
4023 '_,
4024 fidl::encoding::DefaultFuchsiaResourceDialect,
4025 >,
4026 offset: usize,
4027 _depth: fidl::encoding::Depth,
4028 ) -> fidl::Result<()> {
4029 encoder.debug_check_bounds::<KeyManagerGenerateAsymmetricKeyRequest>(offset);
4030 fidl::encoding::Encode::<
4032 KeyManagerGenerateAsymmetricKeyRequest,
4033 fidl::encoding::DefaultFuchsiaResourceDialect,
4034 >::encode(
4035 (
4036 <fidl::encoding::BoundedString<32> as fidl::encoding::ValueTypeMarker>::borrow(
4037 &self.key_name,
4038 ),
4039 <fidl::encoding::Endpoint<
4040 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
4041 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
4042 &mut self.key
4043 ),
4044 ),
4045 encoder,
4046 offset,
4047 _depth,
4048 )
4049 }
4050 }
4051 unsafe impl<
4052 T0: fidl::encoding::Encode<
4053 fidl::encoding::BoundedString<32>,
4054 fidl::encoding::DefaultFuchsiaResourceDialect,
4055 >,
4056 T1: fidl::encoding::Encode<
4057 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>>,
4058 fidl::encoding::DefaultFuchsiaResourceDialect,
4059 >,
4060 >
4061 fidl::encoding::Encode<
4062 KeyManagerGenerateAsymmetricKeyRequest,
4063 fidl::encoding::DefaultFuchsiaResourceDialect,
4064 > for (T0, T1)
4065 {
4066 #[inline]
4067 unsafe fn encode(
4068 self,
4069 encoder: &mut fidl::encoding::Encoder<
4070 '_,
4071 fidl::encoding::DefaultFuchsiaResourceDialect,
4072 >,
4073 offset: usize,
4074 depth: fidl::encoding::Depth,
4075 ) -> fidl::Result<()> {
4076 encoder.debug_check_bounds::<KeyManagerGenerateAsymmetricKeyRequest>(offset);
4077 unsafe {
4080 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
4081 (ptr as *mut u64).write_unaligned(0);
4082 }
4083 self.0.encode(encoder, offset + 0, depth)?;
4085 self.1.encode(encoder, offset + 16, depth)?;
4086 Ok(())
4087 }
4088 }
4089
4090 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
4091 for KeyManagerGenerateAsymmetricKeyRequest
4092 {
4093 #[inline(always)]
4094 fn new_empty() -> Self {
4095 Self {
4096 key_name: fidl::new_empty!(
4097 fidl::encoding::BoundedString<32>,
4098 fidl::encoding::DefaultFuchsiaResourceDialect
4099 ),
4100 key: fidl::new_empty!(
4101 fidl::encoding::Endpoint<
4102 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
4103 >,
4104 fidl::encoding::DefaultFuchsiaResourceDialect
4105 ),
4106 }
4107 }
4108
4109 #[inline]
4110 unsafe fn decode(
4111 &mut self,
4112 decoder: &mut fidl::encoding::Decoder<
4113 '_,
4114 fidl::encoding::DefaultFuchsiaResourceDialect,
4115 >,
4116 offset: usize,
4117 _depth: fidl::encoding::Depth,
4118 ) -> fidl::Result<()> {
4119 decoder.debug_check_bounds::<Self>(offset);
4120 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
4122 let padval = unsafe { (ptr as *const u64).read_unaligned() };
4123 let mask = 0xffffffff00000000u64;
4124 let maskedval = padval & mask;
4125 if maskedval != 0 {
4126 return Err(fidl::Error::NonZeroPadding {
4127 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
4128 });
4129 }
4130 fidl::decode!(
4131 fidl::encoding::BoundedString<32>,
4132 fidl::encoding::DefaultFuchsiaResourceDialect,
4133 &mut self.key_name,
4134 decoder,
4135 offset + 0,
4136 _depth
4137 )?;
4138 fidl::decode!(
4139 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>>,
4140 fidl::encoding::DefaultFuchsiaResourceDialect,
4141 &mut self.key,
4142 decoder,
4143 offset + 16,
4144 _depth
4145 )?;
4146 Ok(())
4147 }
4148 }
4149
4150 impl fidl::encoding::ResourceTypeMarker for KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest {
4151 type Borrowed<'a> = &'a mut Self;
4152 fn take_or_borrow<'a>(
4153 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
4154 ) -> Self::Borrowed<'a> {
4155 value
4156 }
4157 }
4158
4159 unsafe impl fidl::encoding::TypeMarker for KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest {
4160 type Owned = Self;
4161
4162 #[inline(always)]
4163 fn inline_align(_context: fidl::encoding::Context) -> usize {
4164 8
4165 }
4166
4167 #[inline(always)]
4168 fn inline_size(_context: fidl::encoding::Context) -> usize {
4169 24
4170 }
4171 }
4172
4173 unsafe impl
4174 fidl::encoding::Encode<
4175 KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest,
4176 fidl::encoding::DefaultFuchsiaResourceDialect,
4177 > for &mut KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest
4178 {
4179 #[inline]
4180 unsafe fn encode(
4181 self,
4182 encoder: &mut fidl::encoding::Encoder<
4183 '_,
4184 fidl::encoding::DefaultFuchsiaResourceDialect,
4185 >,
4186 offset: usize,
4187 _depth: fidl::encoding::Depth,
4188 ) -> fidl::Result<()> {
4189 encoder
4190 .debug_check_bounds::<KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest>(offset);
4191 fidl::encoding::Encode::<
4193 KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest,
4194 fidl::encoding::DefaultFuchsiaResourceDialect,
4195 >::encode(
4196 (
4197 <fidl::encoding::BoundedString<32> as fidl::encoding::ValueTypeMarker>::borrow(
4198 &self.key_name,
4199 ),
4200 <AsymmetricKeyAlgorithm as fidl::encoding::ValueTypeMarker>::borrow(
4201 &self.key_algorithm,
4202 ),
4203 <fidl::encoding::Endpoint<
4204 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
4205 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
4206 &mut self.key
4207 ),
4208 ),
4209 encoder,
4210 offset,
4211 _depth,
4212 )
4213 }
4214 }
4215 unsafe impl<
4216 T0: fidl::encoding::Encode<
4217 fidl::encoding::BoundedString<32>,
4218 fidl::encoding::DefaultFuchsiaResourceDialect,
4219 >,
4220 T1: fidl::encoding::Encode<
4221 AsymmetricKeyAlgorithm,
4222 fidl::encoding::DefaultFuchsiaResourceDialect,
4223 >,
4224 T2: fidl::encoding::Encode<
4225 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>>,
4226 fidl::encoding::DefaultFuchsiaResourceDialect,
4227 >,
4228 >
4229 fidl::encoding::Encode<
4230 KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest,
4231 fidl::encoding::DefaultFuchsiaResourceDialect,
4232 > for (T0, T1, T2)
4233 {
4234 #[inline]
4235 unsafe fn encode(
4236 self,
4237 encoder: &mut fidl::encoding::Encoder<
4238 '_,
4239 fidl::encoding::DefaultFuchsiaResourceDialect,
4240 >,
4241 offset: usize,
4242 depth: fidl::encoding::Depth,
4243 ) -> fidl::Result<()> {
4244 encoder
4245 .debug_check_bounds::<KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest>(offset);
4246 self.0.encode(encoder, offset + 0, depth)?;
4250 self.1.encode(encoder, offset + 16, depth)?;
4251 self.2.encode(encoder, offset + 20, depth)?;
4252 Ok(())
4253 }
4254 }
4255
4256 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
4257 for KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest
4258 {
4259 #[inline(always)]
4260 fn new_empty() -> Self {
4261 Self {
4262 key_name: fidl::new_empty!(
4263 fidl::encoding::BoundedString<32>,
4264 fidl::encoding::DefaultFuchsiaResourceDialect
4265 ),
4266 key_algorithm: fidl::new_empty!(
4267 AsymmetricKeyAlgorithm,
4268 fidl::encoding::DefaultFuchsiaResourceDialect
4269 ),
4270 key: fidl::new_empty!(
4271 fidl::encoding::Endpoint<
4272 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
4273 >,
4274 fidl::encoding::DefaultFuchsiaResourceDialect
4275 ),
4276 }
4277 }
4278
4279 #[inline]
4280 unsafe fn decode(
4281 &mut self,
4282 decoder: &mut fidl::encoding::Decoder<
4283 '_,
4284 fidl::encoding::DefaultFuchsiaResourceDialect,
4285 >,
4286 offset: usize,
4287 _depth: fidl::encoding::Depth,
4288 ) -> fidl::Result<()> {
4289 decoder.debug_check_bounds::<Self>(offset);
4290 fidl::decode!(
4292 fidl::encoding::BoundedString<32>,
4293 fidl::encoding::DefaultFuchsiaResourceDialect,
4294 &mut self.key_name,
4295 decoder,
4296 offset + 0,
4297 _depth
4298 )?;
4299 fidl::decode!(
4300 AsymmetricKeyAlgorithm,
4301 fidl::encoding::DefaultFuchsiaResourceDialect,
4302 &mut self.key_algorithm,
4303 decoder,
4304 offset + 16,
4305 _depth
4306 )?;
4307 fidl::decode!(
4308 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>>,
4309 fidl::encoding::DefaultFuchsiaResourceDialect,
4310 &mut self.key,
4311 decoder,
4312 offset + 20,
4313 _depth
4314 )?;
4315 Ok(())
4316 }
4317 }
4318
4319 impl fidl::encoding::ResourceTypeMarker for KeyManagerGetAsymmetricPrivateKeyRequest {
4320 type Borrowed<'a> = &'a mut Self;
4321 fn take_or_borrow<'a>(
4322 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
4323 ) -> Self::Borrowed<'a> {
4324 value
4325 }
4326 }
4327
4328 unsafe impl fidl::encoding::TypeMarker for KeyManagerGetAsymmetricPrivateKeyRequest {
4329 type Owned = Self;
4330
4331 #[inline(always)]
4332 fn inline_align(_context: fidl::encoding::Context) -> usize {
4333 8
4334 }
4335
4336 #[inline(always)]
4337 fn inline_size(_context: fidl::encoding::Context) -> usize {
4338 24
4339 }
4340 }
4341
4342 unsafe impl
4343 fidl::encoding::Encode<
4344 KeyManagerGetAsymmetricPrivateKeyRequest,
4345 fidl::encoding::DefaultFuchsiaResourceDialect,
4346 > for &mut KeyManagerGetAsymmetricPrivateKeyRequest
4347 {
4348 #[inline]
4349 unsafe fn encode(
4350 self,
4351 encoder: &mut fidl::encoding::Encoder<
4352 '_,
4353 fidl::encoding::DefaultFuchsiaResourceDialect,
4354 >,
4355 offset: usize,
4356 _depth: fidl::encoding::Depth,
4357 ) -> fidl::Result<()> {
4358 encoder.debug_check_bounds::<KeyManagerGetAsymmetricPrivateKeyRequest>(offset);
4359 fidl::encoding::Encode::<
4361 KeyManagerGetAsymmetricPrivateKeyRequest,
4362 fidl::encoding::DefaultFuchsiaResourceDialect,
4363 >::encode(
4364 (
4365 <fidl::encoding::BoundedString<32> as fidl::encoding::ValueTypeMarker>::borrow(
4366 &self.key_name,
4367 ),
4368 <fidl::encoding::Endpoint<
4369 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
4370 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
4371 &mut self.key
4372 ),
4373 ),
4374 encoder,
4375 offset,
4376 _depth,
4377 )
4378 }
4379 }
4380 unsafe impl<
4381 T0: fidl::encoding::Encode<
4382 fidl::encoding::BoundedString<32>,
4383 fidl::encoding::DefaultFuchsiaResourceDialect,
4384 >,
4385 T1: fidl::encoding::Encode<
4386 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>>,
4387 fidl::encoding::DefaultFuchsiaResourceDialect,
4388 >,
4389 >
4390 fidl::encoding::Encode<
4391 KeyManagerGetAsymmetricPrivateKeyRequest,
4392 fidl::encoding::DefaultFuchsiaResourceDialect,
4393 > for (T0, T1)
4394 {
4395 #[inline]
4396 unsafe fn encode(
4397 self,
4398 encoder: &mut fidl::encoding::Encoder<
4399 '_,
4400 fidl::encoding::DefaultFuchsiaResourceDialect,
4401 >,
4402 offset: usize,
4403 depth: fidl::encoding::Depth,
4404 ) -> fidl::Result<()> {
4405 encoder.debug_check_bounds::<KeyManagerGetAsymmetricPrivateKeyRequest>(offset);
4406 unsafe {
4409 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
4410 (ptr as *mut u64).write_unaligned(0);
4411 }
4412 self.0.encode(encoder, offset + 0, depth)?;
4414 self.1.encode(encoder, offset + 16, depth)?;
4415 Ok(())
4416 }
4417 }
4418
4419 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
4420 for KeyManagerGetAsymmetricPrivateKeyRequest
4421 {
4422 #[inline(always)]
4423 fn new_empty() -> Self {
4424 Self {
4425 key_name: fidl::new_empty!(
4426 fidl::encoding::BoundedString<32>,
4427 fidl::encoding::DefaultFuchsiaResourceDialect
4428 ),
4429 key: fidl::new_empty!(
4430 fidl::encoding::Endpoint<
4431 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
4432 >,
4433 fidl::encoding::DefaultFuchsiaResourceDialect
4434 ),
4435 }
4436 }
4437
4438 #[inline]
4439 unsafe fn decode(
4440 &mut self,
4441 decoder: &mut fidl::encoding::Decoder<
4442 '_,
4443 fidl::encoding::DefaultFuchsiaResourceDialect,
4444 >,
4445 offset: usize,
4446 _depth: fidl::encoding::Depth,
4447 ) -> fidl::Result<()> {
4448 decoder.debug_check_bounds::<Self>(offset);
4449 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
4451 let padval = unsafe { (ptr as *const u64).read_unaligned() };
4452 let mask = 0xffffffff00000000u64;
4453 let maskedval = padval & mask;
4454 if maskedval != 0 {
4455 return Err(fidl::Error::NonZeroPadding {
4456 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
4457 });
4458 }
4459 fidl::decode!(
4460 fidl::encoding::BoundedString<32>,
4461 fidl::encoding::DefaultFuchsiaResourceDialect,
4462 &mut self.key_name,
4463 decoder,
4464 offset + 0,
4465 _depth
4466 )?;
4467 fidl::decode!(
4468 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>>,
4469 fidl::encoding::DefaultFuchsiaResourceDialect,
4470 &mut self.key,
4471 decoder,
4472 offset + 16,
4473 _depth
4474 )?;
4475 Ok(())
4476 }
4477 }
4478
4479 impl fidl::encoding::ResourceTypeMarker for KeyManagerImportAsymmetricPrivateKeyRequest {
4480 type Borrowed<'a> = &'a mut Self;
4481 fn take_or_borrow<'a>(
4482 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
4483 ) -> Self::Borrowed<'a> {
4484 value
4485 }
4486 }
4487
4488 unsafe impl fidl::encoding::TypeMarker for KeyManagerImportAsymmetricPrivateKeyRequest {
4489 type Owned = Self;
4490
4491 #[inline(always)]
4492 fn inline_align(_context: fidl::encoding::Context) -> usize {
4493 8
4494 }
4495
4496 #[inline(always)]
4497 fn inline_size(_context: fidl::encoding::Context) -> usize {
4498 40
4499 }
4500 }
4501
4502 unsafe impl
4503 fidl::encoding::Encode<
4504 KeyManagerImportAsymmetricPrivateKeyRequest,
4505 fidl::encoding::DefaultFuchsiaResourceDialect,
4506 > for &mut KeyManagerImportAsymmetricPrivateKeyRequest
4507 {
4508 #[inline]
4509 unsafe fn encode(
4510 self,
4511 encoder: &mut fidl::encoding::Encoder<
4512 '_,
4513 fidl::encoding::DefaultFuchsiaResourceDialect,
4514 >,
4515 offset: usize,
4516 _depth: fidl::encoding::Depth,
4517 ) -> fidl::Result<()> {
4518 encoder.debug_check_bounds::<KeyManagerImportAsymmetricPrivateKeyRequest>(offset);
4519 fidl::encoding::Encode::<KeyManagerImportAsymmetricPrivateKeyRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
4521 (
4522 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
4523 <fidl::encoding::BoundedString<32> as fidl::encoding::ValueTypeMarker>::borrow(&self.key_name),
4524 <AsymmetricKeyAlgorithm as fidl::encoding::ValueTypeMarker>::borrow(&self.key_algorithm),
4525 <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.key),
4526 ),
4527 encoder, offset, _depth
4528 )
4529 }
4530 }
4531 unsafe impl<
4532 T0: fidl::encoding::Encode<
4533 fidl::encoding::UnboundedVector<u8>,
4534 fidl::encoding::DefaultFuchsiaResourceDialect,
4535 >,
4536 T1: fidl::encoding::Encode<
4537 fidl::encoding::BoundedString<32>,
4538 fidl::encoding::DefaultFuchsiaResourceDialect,
4539 >,
4540 T2: fidl::encoding::Encode<
4541 AsymmetricKeyAlgorithm,
4542 fidl::encoding::DefaultFuchsiaResourceDialect,
4543 >,
4544 T3: fidl::encoding::Encode<
4545 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>>,
4546 fidl::encoding::DefaultFuchsiaResourceDialect,
4547 >,
4548 >
4549 fidl::encoding::Encode<
4550 KeyManagerImportAsymmetricPrivateKeyRequest,
4551 fidl::encoding::DefaultFuchsiaResourceDialect,
4552 > for (T0, T1, T2, T3)
4553 {
4554 #[inline]
4555 unsafe fn encode(
4556 self,
4557 encoder: &mut fidl::encoding::Encoder<
4558 '_,
4559 fidl::encoding::DefaultFuchsiaResourceDialect,
4560 >,
4561 offset: usize,
4562 depth: fidl::encoding::Depth,
4563 ) -> fidl::Result<()> {
4564 encoder.debug_check_bounds::<KeyManagerImportAsymmetricPrivateKeyRequest>(offset);
4565 self.0.encode(encoder, offset + 0, depth)?;
4569 self.1.encode(encoder, offset + 16, depth)?;
4570 self.2.encode(encoder, offset + 32, depth)?;
4571 self.3.encode(encoder, offset + 36, depth)?;
4572 Ok(())
4573 }
4574 }
4575
4576 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
4577 for KeyManagerImportAsymmetricPrivateKeyRequest
4578 {
4579 #[inline(always)]
4580 fn new_empty() -> Self {
4581 Self {
4582 data: fidl::new_empty!(
4583 fidl::encoding::UnboundedVector<u8>,
4584 fidl::encoding::DefaultFuchsiaResourceDialect
4585 ),
4586 key_name: fidl::new_empty!(
4587 fidl::encoding::BoundedString<32>,
4588 fidl::encoding::DefaultFuchsiaResourceDialect
4589 ),
4590 key_algorithm: fidl::new_empty!(
4591 AsymmetricKeyAlgorithm,
4592 fidl::encoding::DefaultFuchsiaResourceDialect
4593 ),
4594 key: fidl::new_empty!(
4595 fidl::encoding::Endpoint<
4596 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
4597 >,
4598 fidl::encoding::DefaultFuchsiaResourceDialect
4599 ),
4600 }
4601 }
4602
4603 #[inline]
4604 unsafe fn decode(
4605 &mut self,
4606 decoder: &mut fidl::encoding::Decoder<
4607 '_,
4608 fidl::encoding::DefaultFuchsiaResourceDialect,
4609 >,
4610 offset: usize,
4611 _depth: fidl::encoding::Depth,
4612 ) -> fidl::Result<()> {
4613 decoder.debug_check_bounds::<Self>(offset);
4614 fidl::decode!(
4616 fidl::encoding::UnboundedVector<u8>,
4617 fidl::encoding::DefaultFuchsiaResourceDialect,
4618 &mut self.data,
4619 decoder,
4620 offset + 0,
4621 _depth
4622 )?;
4623 fidl::decode!(
4624 fidl::encoding::BoundedString<32>,
4625 fidl::encoding::DefaultFuchsiaResourceDialect,
4626 &mut self.key_name,
4627 decoder,
4628 offset + 16,
4629 _depth
4630 )?;
4631 fidl::decode!(
4632 AsymmetricKeyAlgorithm,
4633 fidl::encoding::DefaultFuchsiaResourceDialect,
4634 &mut self.key_algorithm,
4635 decoder,
4636 offset + 32,
4637 _depth
4638 )?;
4639 fidl::decode!(
4640 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>>,
4641 fidl::encoding::DefaultFuchsiaResourceDialect,
4642 &mut self.key,
4643 decoder,
4644 offset + 36,
4645 _depth
4646 )?;
4647 Ok(())
4648 }
4649 }
4650
4651 impl fidl::encoding::ResourceTypeMarker for KeyManagerSealDataRequest {
4652 type Borrowed<'a> = &'a mut Self;
4653 fn take_or_borrow<'a>(
4654 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
4655 ) -> Self::Borrowed<'a> {
4656 value
4657 }
4658 }
4659
4660 unsafe impl fidl::encoding::TypeMarker for KeyManagerSealDataRequest {
4661 type Owned = Self;
4662
4663 #[inline(always)]
4664 fn inline_align(_context: fidl::encoding::Context) -> usize {
4665 8
4666 }
4667
4668 #[inline(always)]
4669 fn inline_size(_context: fidl::encoding::Context) -> usize {
4670 16
4671 }
4672 }
4673
4674 unsafe impl
4675 fidl::encoding::Encode<
4676 KeyManagerSealDataRequest,
4677 fidl::encoding::DefaultFuchsiaResourceDialect,
4678 > for &mut KeyManagerSealDataRequest
4679 {
4680 #[inline]
4681 unsafe fn encode(
4682 self,
4683 encoder: &mut fidl::encoding::Encoder<
4684 '_,
4685 fidl::encoding::DefaultFuchsiaResourceDialect,
4686 >,
4687 offset: usize,
4688 _depth: fidl::encoding::Depth,
4689 ) -> fidl::Result<()> {
4690 encoder.debug_check_bounds::<KeyManagerSealDataRequest>(offset);
4691 fidl::encoding::Encode::<
4693 KeyManagerSealDataRequest,
4694 fidl::encoding::DefaultFuchsiaResourceDialect,
4695 >::encode(
4696 (<fidl_fuchsia_mem::Buffer as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
4697 &mut self.plain_text,
4698 ),),
4699 encoder,
4700 offset,
4701 _depth,
4702 )
4703 }
4704 }
4705 unsafe impl<
4706 T0: fidl::encoding::Encode<
4707 fidl_fuchsia_mem::Buffer,
4708 fidl::encoding::DefaultFuchsiaResourceDialect,
4709 >,
4710 >
4711 fidl::encoding::Encode<
4712 KeyManagerSealDataRequest,
4713 fidl::encoding::DefaultFuchsiaResourceDialect,
4714 > for (T0,)
4715 {
4716 #[inline]
4717 unsafe fn encode(
4718 self,
4719 encoder: &mut fidl::encoding::Encoder<
4720 '_,
4721 fidl::encoding::DefaultFuchsiaResourceDialect,
4722 >,
4723 offset: usize,
4724 depth: fidl::encoding::Depth,
4725 ) -> fidl::Result<()> {
4726 encoder.debug_check_bounds::<KeyManagerSealDataRequest>(offset);
4727 self.0.encode(encoder, offset + 0, depth)?;
4731 Ok(())
4732 }
4733 }
4734
4735 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
4736 for KeyManagerSealDataRequest
4737 {
4738 #[inline(always)]
4739 fn new_empty() -> Self {
4740 Self {
4741 plain_text: fidl::new_empty!(
4742 fidl_fuchsia_mem::Buffer,
4743 fidl::encoding::DefaultFuchsiaResourceDialect
4744 ),
4745 }
4746 }
4747
4748 #[inline]
4749 unsafe fn decode(
4750 &mut self,
4751 decoder: &mut fidl::encoding::Decoder<
4752 '_,
4753 fidl::encoding::DefaultFuchsiaResourceDialect,
4754 >,
4755 offset: usize,
4756 _depth: fidl::encoding::Depth,
4757 ) -> fidl::Result<()> {
4758 decoder.debug_check_bounds::<Self>(offset);
4759 fidl::decode!(
4761 fidl_fuchsia_mem::Buffer,
4762 fidl::encoding::DefaultFuchsiaResourceDialect,
4763 &mut self.plain_text,
4764 decoder,
4765 offset + 0,
4766 _depth
4767 )?;
4768 Ok(())
4769 }
4770 }
4771
4772 impl fidl::encoding::ResourceTypeMarker for KeyManagerUnsealDataRequest {
4773 type Borrowed<'a> = &'a mut Self;
4774 fn take_or_borrow<'a>(
4775 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
4776 ) -> Self::Borrowed<'a> {
4777 value
4778 }
4779 }
4780
4781 unsafe impl fidl::encoding::TypeMarker for KeyManagerUnsealDataRequest {
4782 type Owned = Self;
4783
4784 #[inline(always)]
4785 fn inline_align(_context: fidl::encoding::Context) -> usize {
4786 8
4787 }
4788
4789 #[inline(always)]
4790 fn inline_size(_context: fidl::encoding::Context) -> usize {
4791 16
4792 }
4793 }
4794
4795 unsafe impl
4796 fidl::encoding::Encode<
4797 KeyManagerUnsealDataRequest,
4798 fidl::encoding::DefaultFuchsiaResourceDialect,
4799 > for &mut KeyManagerUnsealDataRequest
4800 {
4801 #[inline]
4802 unsafe fn encode(
4803 self,
4804 encoder: &mut fidl::encoding::Encoder<
4805 '_,
4806 fidl::encoding::DefaultFuchsiaResourceDialect,
4807 >,
4808 offset: usize,
4809 _depth: fidl::encoding::Depth,
4810 ) -> fidl::Result<()> {
4811 encoder.debug_check_bounds::<KeyManagerUnsealDataRequest>(offset);
4812 fidl::encoding::Encode::<
4814 KeyManagerUnsealDataRequest,
4815 fidl::encoding::DefaultFuchsiaResourceDialect,
4816 >::encode(
4817 (<fidl_fuchsia_mem::Buffer as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
4818 &mut self.cipher_text,
4819 ),),
4820 encoder,
4821 offset,
4822 _depth,
4823 )
4824 }
4825 }
4826 unsafe impl<
4827 T0: fidl::encoding::Encode<
4828 fidl_fuchsia_mem::Buffer,
4829 fidl::encoding::DefaultFuchsiaResourceDialect,
4830 >,
4831 >
4832 fidl::encoding::Encode<
4833 KeyManagerUnsealDataRequest,
4834 fidl::encoding::DefaultFuchsiaResourceDialect,
4835 > for (T0,)
4836 {
4837 #[inline]
4838 unsafe fn encode(
4839 self,
4840 encoder: &mut fidl::encoding::Encoder<
4841 '_,
4842 fidl::encoding::DefaultFuchsiaResourceDialect,
4843 >,
4844 offset: usize,
4845 depth: fidl::encoding::Depth,
4846 ) -> fidl::Result<()> {
4847 encoder.debug_check_bounds::<KeyManagerUnsealDataRequest>(offset);
4848 self.0.encode(encoder, offset + 0, depth)?;
4852 Ok(())
4853 }
4854 }
4855
4856 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
4857 for KeyManagerUnsealDataRequest
4858 {
4859 #[inline(always)]
4860 fn new_empty() -> Self {
4861 Self {
4862 cipher_text: fidl::new_empty!(
4863 fidl_fuchsia_mem::Buffer,
4864 fidl::encoding::DefaultFuchsiaResourceDialect
4865 ),
4866 }
4867 }
4868
4869 #[inline]
4870 unsafe fn decode(
4871 &mut self,
4872 decoder: &mut fidl::encoding::Decoder<
4873 '_,
4874 fidl::encoding::DefaultFuchsiaResourceDialect,
4875 >,
4876 offset: usize,
4877 _depth: fidl::encoding::Depth,
4878 ) -> fidl::Result<()> {
4879 decoder.debug_check_bounds::<Self>(offset);
4880 fidl::decode!(
4882 fidl_fuchsia_mem::Buffer,
4883 fidl::encoding::DefaultFuchsiaResourceDialect,
4884 &mut self.cipher_text,
4885 decoder,
4886 offset + 0,
4887 _depth
4888 )?;
4889 Ok(())
4890 }
4891 }
4892
4893 impl fidl::encoding::ResourceTypeMarker for KeyManagerSealDataResponse {
4894 type Borrowed<'a> = &'a mut Self;
4895 fn take_or_borrow<'a>(
4896 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
4897 ) -> Self::Borrowed<'a> {
4898 value
4899 }
4900 }
4901
4902 unsafe impl fidl::encoding::TypeMarker for KeyManagerSealDataResponse {
4903 type Owned = Self;
4904
4905 #[inline(always)]
4906 fn inline_align(_context: fidl::encoding::Context) -> usize {
4907 8
4908 }
4909
4910 #[inline(always)]
4911 fn inline_size(_context: fidl::encoding::Context) -> usize {
4912 16
4913 }
4914 }
4915
4916 unsafe impl
4917 fidl::encoding::Encode<
4918 KeyManagerSealDataResponse,
4919 fidl::encoding::DefaultFuchsiaResourceDialect,
4920 > for &mut KeyManagerSealDataResponse
4921 {
4922 #[inline]
4923 unsafe fn encode(
4924 self,
4925 encoder: &mut fidl::encoding::Encoder<
4926 '_,
4927 fidl::encoding::DefaultFuchsiaResourceDialect,
4928 >,
4929 offset: usize,
4930 _depth: fidl::encoding::Depth,
4931 ) -> fidl::Result<()> {
4932 encoder.debug_check_bounds::<KeyManagerSealDataResponse>(offset);
4933 fidl::encoding::Encode::<
4935 KeyManagerSealDataResponse,
4936 fidl::encoding::DefaultFuchsiaResourceDialect,
4937 >::encode(
4938 (<fidl_fuchsia_mem::Buffer as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
4939 &mut self.cipher_text,
4940 ),),
4941 encoder,
4942 offset,
4943 _depth,
4944 )
4945 }
4946 }
4947 unsafe impl<
4948 T0: fidl::encoding::Encode<
4949 fidl_fuchsia_mem::Buffer,
4950 fidl::encoding::DefaultFuchsiaResourceDialect,
4951 >,
4952 >
4953 fidl::encoding::Encode<
4954 KeyManagerSealDataResponse,
4955 fidl::encoding::DefaultFuchsiaResourceDialect,
4956 > for (T0,)
4957 {
4958 #[inline]
4959 unsafe fn encode(
4960 self,
4961 encoder: &mut fidl::encoding::Encoder<
4962 '_,
4963 fidl::encoding::DefaultFuchsiaResourceDialect,
4964 >,
4965 offset: usize,
4966 depth: fidl::encoding::Depth,
4967 ) -> fidl::Result<()> {
4968 encoder.debug_check_bounds::<KeyManagerSealDataResponse>(offset);
4969 self.0.encode(encoder, offset + 0, depth)?;
4973 Ok(())
4974 }
4975 }
4976
4977 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
4978 for KeyManagerSealDataResponse
4979 {
4980 #[inline(always)]
4981 fn new_empty() -> Self {
4982 Self {
4983 cipher_text: fidl::new_empty!(
4984 fidl_fuchsia_mem::Buffer,
4985 fidl::encoding::DefaultFuchsiaResourceDialect
4986 ),
4987 }
4988 }
4989
4990 #[inline]
4991 unsafe fn decode(
4992 &mut self,
4993 decoder: &mut fidl::encoding::Decoder<
4994 '_,
4995 fidl::encoding::DefaultFuchsiaResourceDialect,
4996 >,
4997 offset: usize,
4998 _depth: fidl::encoding::Depth,
4999 ) -> fidl::Result<()> {
5000 decoder.debug_check_bounds::<Self>(offset);
5001 fidl::decode!(
5003 fidl_fuchsia_mem::Buffer,
5004 fidl::encoding::DefaultFuchsiaResourceDialect,
5005 &mut self.cipher_text,
5006 decoder,
5007 offset + 0,
5008 _depth
5009 )?;
5010 Ok(())
5011 }
5012 }
5013
5014 impl fidl::encoding::ResourceTypeMarker for KeyManagerUnsealDataResponse {
5015 type Borrowed<'a> = &'a mut Self;
5016 fn take_or_borrow<'a>(
5017 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
5018 ) -> Self::Borrowed<'a> {
5019 value
5020 }
5021 }
5022
5023 unsafe impl fidl::encoding::TypeMarker for KeyManagerUnsealDataResponse {
5024 type Owned = Self;
5025
5026 #[inline(always)]
5027 fn inline_align(_context: fidl::encoding::Context) -> usize {
5028 8
5029 }
5030
5031 #[inline(always)]
5032 fn inline_size(_context: fidl::encoding::Context) -> usize {
5033 16
5034 }
5035 }
5036
5037 unsafe impl
5038 fidl::encoding::Encode<
5039 KeyManagerUnsealDataResponse,
5040 fidl::encoding::DefaultFuchsiaResourceDialect,
5041 > for &mut KeyManagerUnsealDataResponse
5042 {
5043 #[inline]
5044 unsafe fn encode(
5045 self,
5046 encoder: &mut fidl::encoding::Encoder<
5047 '_,
5048 fidl::encoding::DefaultFuchsiaResourceDialect,
5049 >,
5050 offset: usize,
5051 _depth: fidl::encoding::Depth,
5052 ) -> fidl::Result<()> {
5053 encoder.debug_check_bounds::<KeyManagerUnsealDataResponse>(offset);
5054 fidl::encoding::Encode::<
5056 KeyManagerUnsealDataResponse,
5057 fidl::encoding::DefaultFuchsiaResourceDialect,
5058 >::encode(
5059 (<fidl_fuchsia_mem::Buffer as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
5060 &mut self.plain_text,
5061 ),),
5062 encoder,
5063 offset,
5064 _depth,
5065 )
5066 }
5067 }
5068 unsafe impl<
5069 T0: fidl::encoding::Encode<
5070 fidl_fuchsia_mem::Buffer,
5071 fidl::encoding::DefaultFuchsiaResourceDialect,
5072 >,
5073 >
5074 fidl::encoding::Encode<
5075 KeyManagerUnsealDataResponse,
5076 fidl::encoding::DefaultFuchsiaResourceDialect,
5077 > for (T0,)
5078 {
5079 #[inline]
5080 unsafe fn encode(
5081 self,
5082 encoder: &mut fidl::encoding::Encoder<
5083 '_,
5084 fidl::encoding::DefaultFuchsiaResourceDialect,
5085 >,
5086 offset: usize,
5087 depth: fidl::encoding::Depth,
5088 ) -> fidl::Result<()> {
5089 encoder.debug_check_bounds::<KeyManagerUnsealDataResponse>(offset);
5090 self.0.encode(encoder, offset + 0, depth)?;
5094 Ok(())
5095 }
5096 }
5097
5098 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
5099 for KeyManagerUnsealDataResponse
5100 {
5101 #[inline(always)]
5102 fn new_empty() -> Self {
5103 Self {
5104 plain_text: fidl::new_empty!(
5105 fidl_fuchsia_mem::Buffer,
5106 fidl::encoding::DefaultFuchsiaResourceDialect
5107 ),
5108 }
5109 }
5110
5111 #[inline]
5112 unsafe fn decode(
5113 &mut self,
5114 decoder: &mut fidl::encoding::Decoder<
5115 '_,
5116 fidl::encoding::DefaultFuchsiaResourceDialect,
5117 >,
5118 offset: usize,
5119 _depth: fidl::encoding::Depth,
5120 ) -> fidl::Result<()> {
5121 decoder.debug_check_bounds::<Self>(offset);
5122 fidl::decode!(
5124 fidl_fuchsia_mem::Buffer,
5125 fidl::encoding::DefaultFuchsiaResourceDialect,
5126 &mut self.plain_text,
5127 decoder,
5128 offset + 0,
5129 _depth
5130 )?;
5131 Ok(())
5132 }
5133 }
5134}