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