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