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