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::NullableHandle {
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
804 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
805 self.inner.shutdown_with_epitaph(status)
806 }
807
808 fn is_closed(&self) -> bool {
809 self.inner.channel().is_closed()
810 }
811 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
812 self.inner.channel().on_closed()
813 }
814
815 #[cfg(target_os = "fuchsia")]
816 fn signal_peer(
817 &self,
818 clear_mask: zx::Signals,
819 set_mask: zx::Signals,
820 ) -> Result<(), zx_status::Status> {
821 use fidl::Peered;
822 self.inner.channel().signal_peer(clear_mask, set_mask)
823 }
824}
825
826impl AsymmetricPrivateKeyControlHandle {}
827
828#[must_use = "FIDL methods require a response to be sent"]
829#[derive(Debug)]
830pub struct AsymmetricPrivateKeyGetKeyOriginResponder {
831 control_handle: std::mem::ManuallyDrop<AsymmetricPrivateKeyControlHandle>,
832 tx_id: u32,
833}
834
835impl std::ops::Drop for AsymmetricPrivateKeyGetKeyOriginResponder {
839 fn drop(&mut self) {
840 self.control_handle.shutdown();
841 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
843 }
844}
845
846impl fidl::endpoints::Responder for AsymmetricPrivateKeyGetKeyOriginResponder {
847 type ControlHandle = AsymmetricPrivateKeyControlHandle;
848
849 fn control_handle(&self) -> &AsymmetricPrivateKeyControlHandle {
850 &self.control_handle
851 }
852
853 fn drop_without_shutdown(mut self) {
854 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
856 std::mem::forget(self);
858 }
859}
860
861impl AsymmetricPrivateKeyGetKeyOriginResponder {
862 pub fn send(self, mut result: Result<KeyOrigin, Error>) -> Result<(), fidl::Error> {
866 let _result = self.send_raw(result);
867 if _result.is_err() {
868 self.control_handle.shutdown();
869 }
870 self.drop_without_shutdown();
871 _result
872 }
873
874 pub fn send_no_shutdown_on_err(
876 self,
877 mut result: Result<KeyOrigin, Error>,
878 ) -> Result<(), fidl::Error> {
879 let _result = self.send_raw(result);
880 self.drop_without_shutdown();
881 _result
882 }
883
884 fn send_raw(&self, mut result: Result<KeyOrigin, Error>) -> Result<(), fidl::Error> {
885 self.control_handle
886 .inner
887 .send::<fidl::encoding::ResultType<KeyGetKeyOriginResponse, Error>>(
888 result.map(|key_origin| (key_origin,)),
889 self.tx_id,
890 0x3e439554159e7b86,
891 fidl::encoding::DynamicFlags::empty(),
892 )
893 }
894}
895
896#[must_use = "FIDL methods require a response to be sent"]
897#[derive(Debug)]
898pub struct AsymmetricPrivateKeyGetKeyProviderResponder {
899 control_handle: std::mem::ManuallyDrop<AsymmetricPrivateKeyControlHandle>,
900 tx_id: u32,
901}
902
903impl std::ops::Drop for AsymmetricPrivateKeyGetKeyProviderResponder {
907 fn drop(&mut self) {
908 self.control_handle.shutdown();
909 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
911 }
912}
913
914impl fidl::endpoints::Responder for AsymmetricPrivateKeyGetKeyProviderResponder {
915 type ControlHandle = AsymmetricPrivateKeyControlHandle;
916
917 fn control_handle(&self) -> &AsymmetricPrivateKeyControlHandle {
918 &self.control_handle
919 }
920
921 fn drop_without_shutdown(mut self) {
922 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
924 std::mem::forget(self);
926 }
927}
928
929impl AsymmetricPrivateKeyGetKeyProviderResponder {
930 pub fn send(self, mut result: Result<KeyProvider, Error>) -> Result<(), fidl::Error> {
934 let _result = self.send_raw(result);
935 if _result.is_err() {
936 self.control_handle.shutdown();
937 }
938 self.drop_without_shutdown();
939 _result
940 }
941
942 pub fn send_no_shutdown_on_err(
944 self,
945 mut result: Result<KeyProvider, Error>,
946 ) -> Result<(), fidl::Error> {
947 let _result = self.send_raw(result);
948 self.drop_without_shutdown();
949 _result
950 }
951
952 fn send_raw(&self, mut result: Result<KeyProvider, Error>) -> Result<(), fidl::Error> {
953 self.control_handle
954 .inner
955 .send::<fidl::encoding::ResultType<KeyGetKeyProviderResponse, Error>>(
956 result.map(|key_provider| (key_provider,)),
957 self.tx_id,
958 0x68e2cd7ec0532e0c,
959 fidl::encoding::DynamicFlags::empty(),
960 )
961 }
962}
963
964#[must_use = "FIDL methods require a response to be sent"]
965#[derive(Debug)]
966pub struct AsymmetricPrivateKeySignResponder {
967 control_handle: std::mem::ManuallyDrop<AsymmetricPrivateKeyControlHandle>,
968 tx_id: u32,
969}
970
971impl std::ops::Drop for AsymmetricPrivateKeySignResponder {
975 fn drop(&mut self) {
976 self.control_handle.shutdown();
977 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
979 }
980}
981
982impl fidl::endpoints::Responder for AsymmetricPrivateKeySignResponder {
983 type ControlHandle = AsymmetricPrivateKeyControlHandle;
984
985 fn control_handle(&self) -> &AsymmetricPrivateKeyControlHandle {
986 &self.control_handle
987 }
988
989 fn drop_without_shutdown(mut self) {
990 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
992 std::mem::forget(self);
994 }
995}
996
997impl AsymmetricPrivateKeySignResponder {
998 pub fn send(self, mut result: Result<&Signature, Error>) -> Result<(), fidl::Error> {
1002 let _result = self.send_raw(result);
1003 if _result.is_err() {
1004 self.control_handle.shutdown();
1005 }
1006 self.drop_without_shutdown();
1007 _result
1008 }
1009
1010 pub fn send_no_shutdown_on_err(
1012 self,
1013 mut result: Result<&Signature, Error>,
1014 ) -> Result<(), fidl::Error> {
1015 let _result = self.send_raw(result);
1016 self.drop_without_shutdown();
1017 _result
1018 }
1019
1020 fn send_raw(&self, mut result: Result<&Signature, Error>) -> Result<(), fidl::Error> {
1021 self.control_handle
1022 .inner
1023 .send::<fidl::encoding::ResultType<AsymmetricPrivateKeySignResponse, Error>>(
1024 result.map(|signature| (signature,)),
1025 self.tx_id,
1026 0x524ba8b350c2542e,
1027 fidl::encoding::DynamicFlags::empty(),
1028 )
1029 }
1030}
1031
1032#[must_use = "FIDL methods require a response to be sent"]
1033#[derive(Debug)]
1034pub struct AsymmetricPrivateKeyGetPublicKeyResponder {
1035 control_handle: std::mem::ManuallyDrop<AsymmetricPrivateKeyControlHandle>,
1036 tx_id: u32,
1037}
1038
1039impl std::ops::Drop for AsymmetricPrivateKeyGetPublicKeyResponder {
1043 fn drop(&mut self) {
1044 self.control_handle.shutdown();
1045 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1047 }
1048}
1049
1050impl fidl::endpoints::Responder for AsymmetricPrivateKeyGetPublicKeyResponder {
1051 type ControlHandle = AsymmetricPrivateKeyControlHandle;
1052
1053 fn control_handle(&self) -> &AsymmetricPrivateKeyControlHandle {
1054 &self.control_handle
1055 }
1056
1057 fn drop_without_shutdown(mut self) {
1058 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1060 std::mem::forget(self);
1062 }
1063}
1064
1065impl AsymmetricPrivateKeyGetPublicKeyResponder {
1066 pub fn send(self, mut result: Result<&PublicKey, Error>) -> Result<(), fidl::Error> {
1070 let _result = self.send_raw(result);
1071 if _result.is_err() {
1072 self.control_handle.shutdown();
1073 }
1074 self.drop_without_shutdown();
1075 _result
1076 }
1077
1078 pub fn send_no_shutdown_on_err(
1080 self,
1081 mut result: Result<&PublicKey, Error>,
1082 ) -> Result<(), fidl::Error> {
1083 let _result = self.send_raw(result);
1084 self.drop_without_shutdown();
1085 _result
1086 }
1087
1088 fn send_raw(&self, mut result: Result<&PublicKey, Error>) -> Result<(), fidl::Error> {
1089 self.control_handle.inner.send::<fidl::encoding::ResultType<
1090 AsymmetricPrivateKeyGetPublicKeyResponse,
1091 Error,
1092 >>(
1093 result.map(|public_key| (public_key,)),
1094 self.tx_id,
1095 0x5439aff00ed261f3,
1096 fidl::encoding::DynamicFlags::empty(),
1097 )
1098 }
1099}
1100
1101#[must_use = "FIDL methods require a response to be sent"]
1102#[derive(Debug)]
1103pub struct AsymmetricPrivateKeyGetKeyAlgorithmResponder {
1104 control_handle: std::mem::ManuallyDrop<AsymmetricPrivateKeyControlHandle>,
1105 tx_id: u32,
1106}
1107
1108impl std::ops::Drop for AsymmetricPrivateKeyGetKeyAlgorithmResponder {
1112 fn drop(&mut self) {
1113 self.control_handle.shutdown();
1114 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1116 }
1117}
1118
1119impl fidl::endpoints::Responder for AsymmetricPrivateKeyGetKeyAlgorithmResponder {
1120 type ControlHandle = AsymmetricPrivateKeyControlHandle;
1121
1122 fn control_handle(&self) -> &AsymmetricPrivateKeyControlHandle {
1123 &self.control_handle
1124 }
1125
1126 fn drop_without_shutdown(mut self) {
1127 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1129 std::mem::forget(self);
1131 }
1132}
1133
1134impl AsymmetricPrivateKeyGetKeyAlgorithmResponder {
1135 pub fn send(
1139 self,
1140 mut result: Result<AsymmetricKeyAlgorithm, Error>,
1141 ) -> Result<(), fidl::Error> {
1142 let _result = self.send_raw(result);
1143 if _result.is_err() {
1144 self.control_handle.shutdown();
1145 }
1146 self.drop_without_shutdown();
1147 _result
1148 }
1149
1150 pub fn send_no_shutdown_on_err(
1152 self,
1153 mut result: Result<AsymmetricKeyAlgorithm, Error>,
1154 ) -> Result<(), fidl::Error> {
1155 let _result = self.send_raw(result);
1156 self.drop_without_shutdown();
1157 _result
1158 }
1159
1160 fn send_raw(
1161 &self,
1162 mut result: Result<AsymmetricKeyAlgorithm, Error>,
1163 ) -> Result<(), fidl::Error> {
1164 self.control_handle.inner.send::<fidl::encoding::ResultType<
1165 AsymmetricPrivateKeyGetKeyAlgorithmResponse,
1166 Error,
1167 >>(
1168 result.map(|key_algorithm| (key_algorithm,)),
1169 self.tx_id,
1170 0xe0ce6b5b815b1ae,
1171 fidl::encoding::DynamicFlags::empty(),
1172 )
1173 }
1174}
1175
1176#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1177pub struct KeyMarker;
1178
1179impl fidl::endpoints::ProtocolMarker for KeyMarker {
1180 type Proxy = KeyProxy;
1181 type RequestStream = KeyRequestStream;
1182 #[cfg(target_os = "fuchsia")]
1183 type SynchronousProxy = KeySynchronousProxy;
1184
1185 const DEBUG_NAME: &'static str = "(anonymous) Key";
1186}
1187pub type KeyGetKeyOriginResult = Result<KeyOrigin, Error>;
1188pub type KeyGetKeyProviderResult = Result<KeyProvider, Error>;
1189
1190pub trait KeyProxyInterface: Send + Sync {
1191 type GetKeyOriginResponseFut: std::future::Future<Output = Result<KeyGetKeyOriginResult, fidl::Error>>
1192 + Send;
1193 fn r#get_key_origin(&self) -> Self::GetKeyOriginResponseFut;
1194 type GetKeyProviderResponseFut: std::future::Future<Output = Result<KeyGetKeyProviderResult, fidl::Error>>
1195 + Send;
1196 fn r#get_key_provider(&self) -> Self::GetKeyProviderResponseFut;
1197}
1198#[derive(Debug)]
1199#[cfg(target_os = "fuchsia")]
1200pub struct KeySynchronousProxy {
1201 client: fidl::client::sync::Client,
1202}
1203
1204#[cfg(target_os = "fuchsia")]
1205impl fidl::endpoints::SynchronousProxy for KeySynchronousProxy {
1206 type Proxy = KeyProxy;
1207 type Protocol = KeyMarker;
1208
1209 fn from_channel(inner: fidl::Channel) -> Self {
1210 Self::new(inner)
1211 }
1212
1213 fn into_channel(self) -> fidl::Channel {
1214 self.client.into_channel()
1215 }
1216
1217 fn as_channel(&self) -> &fidl::Channel {
1218 self.client.as_channel()
1219 }
1220}
1221
1222#[cfg(target_os = "fuchsia")]
1223impl KeySynchronousProxy {
1224 pub fn new(channel: fidl::Channel) -> Self {
1225 let protocol_name = <KeyMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1226 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
1227 }
1228
1229 pub fn into_channel(self) -> fidl::Channel {
1230 self.client.into_channel()
1231 }
1232
1233 pub fn wait_for_event(&self, deadline: zx::MonotonicInstant) -> Result<KeyEvent, fidl::Error> {
1236 KeyEvent::decode(self.client.wait_for_event(deadline)?)
1237 }
1238
1239 pub fn r#get_key_origin(
1241 &self,
1242 ___deadline: zx::MonotonicInstant,
1243 ) -> Result<KeyGetKeyOriginResult, fidl::Error> {
1244 let _response = self.client.send_query::<
1245 fidl::encoding::EmptyPayload,
1246 fidl::encoding::ResultType<KeyGetKeyOriginResponse, Error>,
1247 >(
1248 (),
1249 0x3e439554159e7b86,
1250 fidl::encoding::DynamicFlags::empty(),
1251 ___deadline,
1252 )?;
1253 Ok(_response.map(|x| x.key_origin))
1254 }
1255
1256 pub fn r#get_key_provider(
1258 &self,
1259 ___deadline: zx::MonotonicInstant,
1260 ) -> Result<KeyGetKeyProviderResult, fidl::Error> {
1261 let _response = self.client.send_query::<
1262 fidl::encoding::EmptyPayload,
1263 fidl::encoding::ResultType<KeyGetKeyProviderResponse, Error>,
1264 >(
1265 (),
1266 0x68e2cd7ec0532e0c,
1267 fidl::encoding::DynamicFlags::empty(),
1268 ___deadline,
1269 )?;
1270 Ok(_response.map(|x| x.key_provider))
1271 }
1272}
1273
1274#[cfg(target_os = "fuchsia")]
1275impl From<KeySynchronousProxy> for zx::NullableHandle {
1276 fn from(value: KeySynchronousProxy) -> Self {
1277 value.into_channel().into()
1278 }
1279}
1280
1281#[cfg(target_os = "fuchsia")]
1282impl From<fidl::Channel> for KeySynchronousProxy {
1283 fn from(value: fidl::Channel) -> Self {
1284 Self::new(value)
1285 }
1286}
1287
1288#[cfg(target_os = "fuchsia")]
1289impl fidl::endpoints::FromClient for KeySynchronousProxy {
1290 type Protocol = KeyMarker;
1291
1292 fn from_client(value: fidl::endpoints::ClientEnd<KeyMarker>) -> Self {
1293 Self::new(value.into_channel())
1294 }
1295}
1296
1297#[derive(Debug, Clone)]
1298pub struct KeyProxy {
1299 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1300}
1301
1302impl fidl::endpoints::Proxy for KeyProxy {
1303 type Protocol = KeyMarker;
1304
1305 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1306 Self::new(inner)
1307 }
1308
1309 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1310 self.client.into_channel().map_err(|client| Self { client })
1311 }
1312
1313 fn as_channel(&self) -> &::fidl::AsyncChannel {
1314 self.client.as_channel()
1315 }
1316}
1317
1318impl KeyProxy {
1319 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1321 let protocol_name = <KeyMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1322 Self { client: fidl::client::Client::new(channel, protocol_name) }
1323 }
1324
1325 pub fn take_event_stream(&self) -> KeyEventStream {
1331 KeyEventStream { event_receiver: self.client.take_event_receiver() }
1332 }
1333
1334 pub fn r#get_key_origin(
1336 &self,
1337 ) -> fidl::client::QueryResponseFut<
1338 KeyGetKeyOriginResult,
1339 fidl::encoding::DefaultFuchsiaResourceDialect,
1340 > {
1341 KeyProxyInterface::r#get_key_origin(self)
1342 }
1343
1344 pub fn r#get_key_provider(
1346 &self,
1347 ) -> fidl::client::QueryResponseFut<
1348 KeyGetKeyProviderResult,
1349 fidl::encoding::DefaultFuchsiaResourceDialect,
1350 > {
1351 KeyProxyInterface::r#get_key_provider(self)
1352 }
1353}
1354
1355impl KeyProxyInterface for KeyProxy {
1356 type GetKeyOriginResponseFut = fidl::client::QueryResponseFut<
1357 KeyGetKeyOriginResult,
1358 fidl::encoding::DefaultFuchsiaResourceDialect,
1359 >;
1360 fn r#get_key_origin(&self) -> Self::GetKeyOriginResponseFut {
1361 fn _decode(
1362 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1363 ) -> Result<KeyGetKeyOriginResult, fidl::Error> {
1364 let _response = fidl::client::decode_transaction_body::<
1365 fidl::encoding::ResultType<KeyGetKeyOriginResponse, Error>,
1366 fidl::encoding::DefaultFuchsiaResourceDialect,
1367 0x3e439554159e7b86,
1368 >(_buf?)?;
1369 Ok(_response.map(|x| x.key_origin))
1370 }
1371 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, KeyGetKeyOriginResult>(
1372 (),
1373 0x3e439554159e7b86,
1374 fidl::encoding::DynamicFlags::empty(),
1375 _decode,
1376 )
1377 }
1378
1379 type GetKeyProviderResponseFut = fidl::client::QueryResponseFut<
1380 KeyGetKeyProviderResult,
1381 fidl::encoding::DefaultFuchsiaResourceDialect,
1382 >;
1383 fn r#get_key_provider(&self) -> Self::GetKeyProviderResponseFut {
1384 fn _decode(
1385 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1386 ) -> Result<KeyGetKeyProviderResult, fidl::Error> {
1387 let _response = fidl::client::decode_transaction_body::<
1388 fidl::encoding::ResultType<KeyGetKeyProviderResponse, Error>,
1389 fidl::encoding::DefaultFuchsiaResourceDialect,
1390 0x68e2cd7ec0532e0c,
1391 >(_buf?)?;
1392 Ok(_response.map(|x| x.key_provider))
1393 }
1394 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, KeyGetKeyProviderResult>(
1395 (),
1396 0x68e2cd7ec0532e0c,
1397 fidl::encoding::DynamicFlags::empty(),
1398 _decode,
1399 )
1400 }
1401}
1402
1403pub struct KeyEventStream {
1404 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1405}
1406
1407impl std::marker::Unpin for KeyEventStream {}
1408
1409impl futures::stream::FusedStream for KeyEventStream {
1410 fn is_terminated(&self) -> bool {
1411 self.event_receiver.is_terminated()
1412 }
1413}
1414
1415impl futures::Stream for KeyEventStream {
1416 type Item = Result<KeyEvent, fidl::Error>;
1417
1418 fn poll_next(
1419 mut self: std::pin::Pin<&mut Self>,
1420 cx: &mut std::task::Context<'_>,
1421 ) -> std::task::Poll<Option<Self::Item>> {
1422 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1423 &mut self.event_receiver,
1424 cx
1425 )?) {
1426 Some(buf) => std::task::Poll::Ready(Some(KeyEvent::decode(buf))),
1427 None => std::task::Poll::Ready(None),
1428 }
1429 }
1430}
1431
1432#[derive(Debug)]
1433pub enum KeyEvent {}
1434
1435impl KeyEvent {
1436 fn decode(
1438 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1439 ) -> Result<KeyEvent, fidl::Error> {
1440 let (bytes, _handles) = buf.split_mut();
1441 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1442 debug_assert_eq!(tx_header.tx_id, 0);
1443 match tx_header.ordinal {
1444 _ => Err(fidl::Error::UnknownOrdinal {
1445 ordinal: tx_header.ordinal,
1446 protocol_name: <KeyMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1447 }),
1448 }
1449 }
1450}
1451
1452pub struct KeyRequestStream {
1454 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1455 is_terminated: bool,
1456}
1457
1458impl std::marker::Unpin for KeyRequestStream {}
1459
1460impl futures::stream::FusedStream for KeyRequestStream {
1461 fn is_terminated(&self) -> bool {
1462 self.is_terminated
1463 }
1464}
1465
1466impl fidl::endpoints::RequestStream for KeyRequestStream {
1467 type Protocol = KeyMarker;
1468 type ControlHandle = KeyControlHandle;
1469
1470 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1471 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1472 }
1473
1474 fn control_handle(&self) -> Self::ControlHandle {
1475 KeyControlHandle { inner: self.inner.clone() }
1476 }
1477
1478 fn into_inner(
1479 self,
1480 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1481 {
1482 (self.inner, self.is_terminated)
1483 }
1484
1485 fn from_inner(
1486 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1487 is_terminated: bool,
1488 ) -> Self {
1489 Self { inner, is_terminated }
1490 }
1491}
1492
1493impl futures::Stream for KeyRequestStream {
1494 type Item = Result<KeyRequest, fidl::Error>;
1495
1496 fn poll_next(
1497 mut self: std::pin::Pin<&mut Self>,
1498 cx: &mut std::task::Context<'_>,
1499 ) -> std::task::Poll<Option<Self::Item>> {
1500 let this = &mut *self;
1501 if this.inner.check_shutdown(cx) {
1502 this.is_terminated = true;
1503 return std::task::Poll::Ready(None);
1504 }
1505 if this.is_terminated {
1506 panic!("polled KeyRequestStream after completion");
1507 }
1508 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1509 |bytes, handles| {
1510 match this.inner.channel().read_etc(cx, bytes, handles) {
1511 std::task::Poll::Ready(Ok(())) => {}
1512 std::task::Poll::Pending => return std::task::Poll::Pending,
1513 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1514 this.is_terminated = true;
1515 return std::task::Poll::Ready(None);
1516 }
1517 std::task::Poll::Ready(Err(e)) => {
1518 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1519 e.into(),
1520 ))));
1521 }
1522 }
1523
1524 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1526
1527 std::task::Poll::Ready(Some(match header.ordinal {
1528 0x3e439554159e7b86 => {
1529 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1530 let mut req = fidl::new_empty!(
1531 fidl::encoding::EmptyPayload,
1532 fidl::encoding::DefaultFuchsiaResourceDialect
1533 );
1534 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1535 let control_handle = KeyControlHandle { inner: this.inner.clone() };
1536 Ok(KeyRequest::GetKeyOrigin {
1537 responder: KeyGetKeyOriginResponder {
1538 control_handle: std::mem::ManuallyDrop::new(control_handle),
1539 tx_id: header.tx_id,
1540 },
1541 })
1542 }
1543 0x68e2cd7ec0532e0c => {
1544 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1545 let mut req = fidl::new_empty!(
1546 fidl::encoding::EmptyPayload,
1547 fidl::encoding::DefaultFuchsiaResourceDialect
1548 );
1549 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1550 let control_handle = KeyControlHandle { inner: this.inner.clone() };
1551 Ok(KeyRequest::GetKeyProvider {
1552 responder: KeyGetKeyProviderResponder {
1553 control_handle: std::mem::ManuallyDrop::new(control_handle),
1554 tx_id: header.tx_id,
1555 },
1556 })
1557 }
1558 _ => Err(fidl::Error::UnknownOrdinal {
1559 ordinal: header.ordinal,
1560 protocol_name: <KeyMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1561 }),
1562 }))
1563 },
1564 )
1565 }
1566}
1567
1568#[derive(Debug)]
1569pub enum KeyRequest {
1570 GetKeyOrigin { responder: KeyGetKeyOriginResponder },
1572 GetKeyProvider { responder: KeyGetKeyProviderResponder },
1574}
1575
1576impl KeyRequest {
1577 #[allow(irrefutable_let_patterns)]
1578 pub fn into_get_key_origin(self) -> Option<(KeyGetKeyOriginResponder)> {
1579 if let KeyRequest::GetKeyOrigin { responder } = self { Some((responder)) } else { None }
1580 }
1581
1582 #[allow(irrefutable_let_patterns)]
1583 pub fn into_get_key_provider(self) -> Option<(KeyGetKeyProviderResponder)> {
1584 if let KeyRequest::GetKeyProvider { responder } = self { Some((responder)) } else { None }
1585 }
1586
1587 pub fn method_name(&self) -> &'static str {
1589 match *self {
1590 KeyRequest::GetKeyOrigin { .. } => "get_key_origin",
1591 KeyRequest::GetKeyProvider { .. } => "get_key_provider",
1592 }
1593 }
1594}
1595
1596#[derive(Debug, Clone)]
1597pub struct KeyControlHandle {
1598 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1599}
1600
1601impl fidl::endpoints::ControlHandle for KeyControlHandle {
1602 fn shutdown(&self) {
1603 self.inner.shutdown()
1604 }
1605
1606 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1607 self.inner.shutdown_with_epitaph(status)
1608 }
1609
1610 fn is_closed(&self) -> bool {
1611 self.inner.channel().is_closed()
1612 }
1613 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1614 self.inner.channel().on_closed()
1615 }
1616
1617 #[cfg(target_os = "fuchsia")]
1618 fn signal_peer(
1619 &self,
1620 clear_mask: zx::Signals,
1621 set_mask: zx::Signals,
1622 ) -> Result<(), zx_status::Status> {
1623 use fidl::Peered;
1624 self.inner.channel().signal_peer(clear_mask, set_mask)
1625 }
1626}
1627
1628impl KeyControlHandle {}
1629
1630#[must_use = "FIDL methods require a response to be sent"]
1631#[derive(Debug)]
1632pub struct KeyGetKeyOriginResponder {
1633 control_handle: std::mem::ManuallyDrop<KeyControlHandle>,
1634 tx_id: u32,
1635}
1636
1637impl std::ops::Drop for KeyGetKeyOriginResponder {
1641 fn drop(&mut self) {
1642 self.control_handle.shutdown();
1643 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1645 }
1646}
1647
1648impl fidl::endpoints::Responder for KeyGetKeyOriginResponder {
1649 type ControlHandle = KeyControlHandle;
1650
1651 fn control_handle(&self) -> &KeyControlHandle {
1652 &self.control_handle
1653 }
1654
1655 fn drop_without_shutdown(mut self) {
1656 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1658 std::mem::forget(self);
1660 }
1661}
1662
1663impl KeyGetKeyOriginResponder {
1664 pub fn send(self, mut result: Result<KeyOrigin, Error>) -> Result<(), fidl::Error> {
1668 let _result = self.send_raw(result);
1669 if _result.is_err() {
1670 self.control_handle.shutdown();
1671 }
1672 self.drop_without_shutdown();
1673 _result
1674 }
1675
1676 pub fn send_no_shutdown_on_err(
1678 self,
1679 mut result: Result<KeyOrigin, Error>,
1680 ) -> Result<(), fidl::Error> {
1681 let _result = self.send_raw(result);
1682 self.drop_without_shutdown();
1683 _result
1684 }
1685
1686 fn send_raw(&self, mut result: Result<KeyOrigin, Error>) -> Result<(), fidl::Error> {
1687 self.control_handle
1688 .inner
1689 .send::<fidl::encoding::ResultType<KeyGetKeyOriginResponse, Error>>(
1690 result.map(|key_origin| (key_origin,)),
1691 self.tx_id,
1692 0x3e439554159e7b86,
1693 fidl::encoding::DynamicFlags::empty(),
1694 )
1695 }
1696}
1697
1698#[must_use = "FIDL methods require a response to be sent"]
1699#[derive(Debug)]
1700pub struct KeyGetKeyProviderResponder {
1701 control_handle: std::mem::ManuallyDrop<KeyControlHandle>,
1702 tx_id: u32,
1703}
1704
1705impl std::ops::Drop for KeyGetKeyProviderResponder {
1709 fn drop(&mut self) {
1710 self.control_handle.shutdown();
1711 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1713 }
1714}
1715
1716impl fidl::endpoints::Responder for KeyGetKeyProviderResponder {
1717 type ControlHandle = KeyControlHandle;
1718
1719 fn control_handle(&self) -> &KeyControlHandle {
1720 &self.control_handle
1721 }
1722
1723 fn drop_without_shutdown(mut self) {
1724 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1726 std::mem::forget(self);
1728 }
1729}
1730
1731impl KeyGetKeyProviderResponder {
1732 pub fn send(self, mut result: Result<KeyProvider, Error>) -> Result<(), fidl::Error> {
1736 let _result = self.send_raw(result);
1737 if _result.is_err() {
1738 self.control_handle.shutdown();
1739 }
1740 self.drop_without_shutdown();
1741 _result
1742 }
1743
1744 pub fn send_no_shutdown_on_err(
1746 self,
1747 mut result: Result<KeyProvider, Error>,
1748 ) -> Result<(), fidl::Error> {
1749 let _result = self.send_raw(result);
1750 self.drop_without_shutdown();
1751 _result
1752 }
1753
1754 fn send_raw(&self, mut result: Result<KeyProvider, Error>) -> Result<(), fidl::Error> {
1755 self.control_handle
1756 .inner
1757 .send::<fidl::encoding::ResultType<KeyGetKeyProviderResponse, Error>>(
1758 result.map(|key_provider| (key_provider,)),
1759 self.tx_id,
1760 0x68e2cd7ec0532e0c,
1761 fidl::encoding::DynamicFlags::empty(),
1762 )
1763 }
1764}
1765
1766#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1767pub struct KeyManagerMarker;
1768
1769impl fidl::endpoints::ProtocolMarker for KeyManagerMarker {
1770 type Proxy = KeyManagerProxy;
1771 type RequestStream = KeyManagerRequestStream;
1772 #[cfg(target_os = "fuchsia")]
1773 type SynchronousProxy = KeyManagerSynchronousProxy;
1774
1775 const DEBUG_NAME: &'static str = "fuchsia.kms.KeyManager";
1776}
1777impl fidl::endpoints::DiscoverableProtocolMarker for KeyManagerMarker {}
1778pub type KeyManagerSealDataResult = Result<fidl_fuchsia_mem::Buffer, Error>;
1779pub type KeyManagerUnsealDataResult = Result<fidl_fuchsia_mem::Buffer, Error>;
1780pub type KeyManagerGenerateAsymmetricKeyResult = Result<(), Error>;
1781pub type KeyManagerGenerateAsymmetricKeyWithAlgorithmResult = Result<(), Error>;
1782pub type KeyManagerImportAsymmetricPrivateKeyResult = Result<(), Error>;
1783pub type KeyManagerGetAsymmetricPrivateKeyResult = Result<(), Error>;
1784pub type KeyManagerDeleteKeyResult = Result<(), Error>;
1785
1786pub trait KeyManagerProxyInterface: Send + Sync {
1787 type SealDataResponseFut: std::future::Future<Output = Result<KeyManagerSealDataResult, fidl::Error>>
1788 + Send;
1789 fn r#seal_data(&self, plain_text: fidl_fuchsia_mem::Buffer) -> Self::SealDataResponseFut;
1790 type UnsealDataResponseFut: std::future::Future<Output = Result<KeyManagerUnsealDataResult, fidl::Error>>
1791 + Send;
1792 fn r#unseal_data(&self, cipher_text: fidl_fuchsia_mem::Buffer) -> Self::UnsealDataResponseFut;
1793 type GenerateAsymmetricKeyResponseFut: std::future::Future<Output = Result<KeyManagerGenerateAsymmetricKeyResult, fidl::Error>>
1794 + Send;
1795 fn r#generate_asymmetric_key(
1796 &self,
1797 key_name: &str,
1798 key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
1799 ) -> Self::GenerateAsymmetricKeyResponseFut;
1800 type GenerateAsymmetricKeyWithAlgorithmResponseFut: std::future::Future<
1801 Output = Result<KeyManagerGenerateAsymmetricKeyWithAlgorithmResult, fidl::Error>,
1802 > + Send;
1803 fn r#generate_asymmetric_key_with_algorithm(
1804 &self,
1805 key_name: &str,
1806 key_algorithm: AsymmetricKeyAlgorithm,
1807 key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
1808 ) -> Self::GenerateAsymmetricKeyWithAlgorithmResponseFut;
1809 type ImportAsymmetricPrivateKeyResponseFut: std::future::Future<
1810 Output = Result<KeyManagerImportAsymmetricPrivateKeyResult, fidl::Error>,
1811 > + Send;
1812 fn r#import_asymmetric_private_key(
1813 &self,
1814 data: &[u8],
1815 key_name: &str,
1816 key_algorithm: AsymmetricKeyAlgorithm,
1817 key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
1818 ) -> Self::ImportAsymmetricPrivateKeyResponseFut;
1819 type GetAsymmetricPrivateKeyResponseFut: std::future::Future<Output = Result<KeyManagerGetAsymmetricPrivateKeyResult, fidl::Error>>
1820 + Send;
1821 fn r#get_asymmetric_private_key(
1822 &self,
1823 key_name: &str,
1824 key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
1825 ) -> Self::GetAsymmetricPrivateKeyResponseFut;
1826 type DeleteKeyResponseFut: std::future::Future<Output = Result<KeyManagerDeleteKeyResult, fidl::Error>>
1827 + Send;
1828 fn r#delete_key(&self, key_name: &str) -> Self::DeleteKeyResponseFut;
1829}
1830#[derive(Debug)]
1831#[cfg(target_os = "fuchsia")]
1832pub struct KeyManagerSynchronousProxy {
1833 client: fidl::client::sync::Client,
1834}
1835
1836#[cfg(target_os = "fuchsia")]
1837impl fidl::endpoints::SynchronousProxy for KeyManagerSynchronousProxy {
1838 type Proxy = KeyManagerProxy;
1839 type Protocol = KeyManagerMarker;
1840
1841 fn from_channel(inner: fidl::Channel) -> Self {
1842 Self::new(inner)
1843 }
1844
1845 fn into_channel(self) -> fidl::Channel {
1846 self.client.into_channel()
1847 }
1848
1849 fn as_channel(&self) -> &fidl::Channel {
1850 self.client.as_channel()
1851 }
1852}
1853
1854#[cfg(target_os = "fuchsia")]
1855impl KeyManagerSynchronousProxy {
1856 pub fn new(channel: fidl::Channel) -> Self {
1857 let protocol_name = <KeyManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1858 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
1859 }
1860
1861 pub fn into_channel(self) -> fidl::Channel {
1862 self.client.into_channel()
1863 }
1864
1865 pub fn wait_for_event(
1868 &self,
1869 deadline: zx::MonotonicInstant,
1870 ) -> Result<KeyManagerEvent, fidl::Error> {
1871 KeyManagerEvent::decode(self.client.wait_for_event(deadline)?)
1872 }
1873
1874 pub fn r#seal_data(
1879 &self,
1880 mut plain_text: fidl_fuchsia_mem::Buffer,
1881 ___deadline: zx::MonotonicInstant,
1882 ) -> Result<KeyManagerSealDataResult, fidl::Error> {
1883 let _response = self.client.send_query::<
1884 KeyManagerSealDataRequest,
1885 fidl::encoding::ResultType<KeyManagerSealDataResponse, Error>,
1886 >(
1887 (&mut plain_text,),
1888 0x3d2fcd85d11c96bb,
1889 fidl::encoding::DynamicFlags::empty(),
1890 ___deadline,
1891 )?;
1892 Ok(_response.map(|x| x.cipher_text))
1893 }
1894
1895 pub fn r#unseal_data(
1899 &self,
1900 mut cipher_text: fidl_fuchsia_mem::Buffer,
1901 ___deadline: zx::MonotonicInstant,
1902 ) -> Result<KeyManagerUnsealDataResult, fidl::Error> {
1903 let _response = self.client.send_query::<
1904 KeyManagerUnsealDataRequest,
1905 fidl::encoding::ResultType<KeyManagerUnsealDataResponse, Error>,
1906 >(
1907 (&mut cipher_text,),
1908 0x72dafc3131c1bca6,
1909 fidl::encoding::DynamicFlags::empty(),
1910 ___deadline,
1911 )?;
1912 Ok(_response.map(|x| x.plain_text))
1913 }
1914
1915 pub fn r#generate_asymmetric_key(
1922 &self,
1923 mut key_name: &str,
1924 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
1925 ___deadline: zx::MonotonicInstant,
1926 ) -> Result<KeyManagerGenerateAsymmetricKeyResult, fidl::Error> {
1927 let _response = self.client.send_query::<
1928 KeyManagerGenerateAsymmetricKeyRequest,
1929 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
1930 >(
1931 (key_name, key,),
1932 0x66f1aa7ff5eb183d,
1933 fidl::encoding::DynamicFlags::empty(),
1934 ___deadline,
1935 )?;
1936 Ok(_response.map(|x| x))
1937 }
1938
1939 pub fn r#generate_asymmetric_key_with_algorithm(
1945 &self,
1946 mut key_name: &str,
1947 mut key_algorithm: AsymmetricKeyAlgorithm,
1948 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
1949 ___deadline: zx::MonotonicInstant,
1950 ) -> Result<KeyManagerGenerateAsymmetricKeyWithAlgorithmResult, fidl::Error> {
1951 let _response = self.client.send_query::<
1952 KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest,
1953 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
1954 >(
1955 (key_name, key_algorithm, key,),
1956 0x2b9eac3ad0bc8a45,
1957 fidl::encoding::DynamicFlags::empty(),
1958 ___deadline,
1959 )?;
1960 Ok(_response.map(|x| x))
1961 }
1962
1963 pub fn r#import_asymmetric_private_key(
1970 &self,
1971 mut data: &[u8],
1972 mut key_name: &str,
1973 mut key_algorithm: AsymmetricKeyAlgorithm,
1974 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
1975 ___deadline: zx::MonotonicInstant,
1976 ) -> Result<KeyManagerImportAsymmetricPrivateKeyResult, fidl::Error> {
1977 let _response = self.client.send_query::<
1978 KeyManagerImportAsymmetricPrivateKeyRequest,
1979 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
1980 >(
1981 (data, key_name, key_algorithm, key,),
1982 0x14c78f1ebb4eee71,
1983 fidl::encoding::DynamicFlags::empty(),
1984 ___deadline,
1985 )?;
1986 Ok(_response.map(|x| x))
1987 }
1988
1989 pub fn r#get_asymmetric_private_key(
1994 &self,
1995 mut key_name: &str,
1996 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
1997 ___deadline: zx::MonotonicInstant,
1998 ) -> Result<KeyManagerGetAsymmetricPrivateKeyResult, fidl::Error> {
1999 let _response = self.client.send_query::<
2000 KeyManagerGetAsymmetricPrivateKeyRequest,
2001 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
2002 >(
2003 (key_name, key,),
2004 0x3a257fc6b6ccc5cd,
2005 fidl::encoding::DynamicFlags::empty(),
2006 ___deadline,
2007 )?;
2008 Ok(_response.map(|x| x))
2009 }
2010
2011 pub fn r#delete_key(
2017 &self,
2018 mut key_name: &str,
2019 ___deadline: zx::MonotonicInstant,
2020 ) -> Result<KeyManagerDeleteKeyResult, fidl::Error> {
2021 let _response = self.client.send_query::<
2022 KeyManagerDeleteKeyRequest,
2023 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
2024 >(
2025 (key_name,),
2026 0x55521e617d023aad,
2027 fidl::encoding::DynamicFlags::empty(),
2028 ___deadline,
2029 )?;
2030 Ok(_response.map(|x| x))
2031 }
2032}
2033
2034#[cfg(target_os = "fuchsia")]
2035impl From<KeyManagerSynchronousProxy> for zx::NullableHandle {
2036 fn from(value: KeyManagerSynchronousProxy) -> Self {
2037 value.into_channel().into()
2038 }
2039}
2040
2041#[cfg(target_os = "fuchsia")]
2042impl From<fidl::Channel> for KeyManagerSynchronousProxy {
2043 fn from(value: fidl::Channel) -> Self {
2044 Self::new(value)
2045 }
2046}
2047
2048#[cfg(target_os = "fuchsia")]
2049impl fidl::endpoints::FromClient for KeyManagerSynchronousProxy {
2050 type Protocol = KeyManagerMarker;
2051
2052 fn from_client(value: fidl::endpoints::ClientEnd<KeyManagerMarker>) -> Self {
2053 Self::new(value.into_channel())
2054 }
2055}
2056
2057#[derive(Debug, Clone)]
2058pub struct KeyManagerProxy {
2059 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
2060}
2061
2062impl fidl::endpoints::Proxy for KeyManagerProxy {
2063 type Protocol = KeyManagerMarker;
2064
2065 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
2066 Self::new(inner)
2067 }
2068
2069 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
2070 self.client.into_channel().map_err(|client| Self { client })
2071 }
2072
2073 fn as_channel(&self) -> &::fidl::AsyncChannel {
2074 self.client.as_channel()
2075 }
2076}
2077
2078impl KeyManagerProxy {
2079 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
2081 let protocol_name = <KeyManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2082 Self { client: fidl::client::Client::new(channel, protocol_name) }
2083 }
2084
2085 pub fn take_event_stream(&self) -> KeyManagerEventStream {
2091 KeyManagerEventStream { event_receiver: self.client.take_event_receiver() }
2092 }
2093
2094 pub fn r#seal_data(
2099 &self,
2100 mut plain_text: fidl_fuchsia_mem::Buffer,
2101 ) -> fidl::client::QueryResponseFut<
2102 KeyManagerSealDataResult,
2103 fidl::encoding::DefaultFuchsiaResourceDialect,
2104 > {
2105 KeyManagerProxyInterface::r#seal_data(self, plain_text)
2106 }
2107
2108 pub fn r#unseal_data(
2112 &self,
2113 mut cipher_text: fidl_fuchsia_mem::Buffer,
2114 ) -> fidl::client::QueryResponseFut<
2115 KeyManagerUnsealDataResult,
2116 fidl::encoding::DefaultFuchsiaResourceDialect,
2117 > {
2118 KeyManagerProxyInterface::r#unseal_data(self, cipher_text)
2119 }
2120
2121 pub fn r#generate_asymmetric_key(
2128 &self,
2129 mut key_name: &str,
2130 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2131 ) -> fidl::client::QueryResponseFut<
2132 KeyManagerGenerateAsymmetricKeyResult,
2133 fidl::encoding::DefaultFuchsiaResourceDialect,
2134 > {
2135 KeyManagerProxyInterface::r#generate_asymmetric_key(self, key_name, key)
2136 }
2137
2138 pub fn r#generate_asymmetric_key_with_algorithm(
2144 &self,
2145 mut key_name: &str,
2146 mut key_algorithm: AsymmetricKeyAlgorithm,
2147 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2148 ) -> fidl::client::QueryResponseFut<
2149 KeyManagerGenerateAsymmetricKeyWithAlgorithmResult,
2150 fidl::encoding::DefaultFuchsiaResourceDialect,
2151 > {
2152 KeyManagerProxyInterface::r#generate_asymmetric_key_with_algorithm(
2153 self,
2154 key_name,
2155 key_algorithm,
2156 key,
2157 )
2158 }
2159
2160 pub fn r#import_asymmetric_private_key(
2167 &self,
2168 mut data: &[u8],
2169 mut key_name: &str,
2170 mut key_algorithm: AsymmetricKeyAlgorithm,
2171 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2172 ) -> fidl::client::QueryResponseFut<
2173 KeyManagerImportAsymmetricPrivateKeyResult,
2174 fidl::encoding::DefaultFuchsiaResourceDialect,
2175 > {
2176 KeyManagerProxyInterface::r#import_asymmetric_private_key(
2177 self,
2178 data,
2179 key_name,
2180 key_algorithm,
2181 key,
2182 )
2183 }
2184
2185 pub fn r#get_asymmetric_private_key(
2190 &self,
2191 mut key_name: &str,
2192 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2193 ) -> fidl::client::QueryResponseFut<
2194 KeyManagerGetAsymmetricPrivateKeyResult,
2195 fidl::encoding::DefaultFuchsiaResourceDialect,
2196 > {
2197 KeyManagerProxyInterface::r#get_asymmetric_private_key(self, key_name, key)
2198 }
2199
2200 pub fn r#delete_key(
2206 &self,
2207 mut key_name: &str,
2208 ) -> fidl::client::QueryResponseFut<
2209 KeyManagerDeleteKeyResult,
2210 fidl::encoding::DefaultFuchsiaResourceDialect,
2211 > {
2212 KeyManagerProxyInterface::r#delete_key(self, key_name)
2213 }
2214}
2215
2216impl KeyManagerProxyInterface for KeyManagerProxy {
2217 type SealDataResponseFut = fidl::client::QueryResponseFut<
2218 KeyManagerSealDataResult,
2219 fidl::encoding::DefaultFuchsiaResourceDialect,
2220 >;
2221 fn r#seal_data(&self, mut plain_text: fidl_fuchsia_mem::Buffer) -> Self::SealDataResponseFut {
2222 fn _decode(
2223 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2224 ) -> Result<KeyManagerSealDataResult, fidl::Error> {
2225 let _response = fidl::client::decode_transaction_body::<
2226 fidl::encoding::ResultType<KeyManagerSealDataResponse, Error>,
2227 fidl::encoding::DefaultFuchsiaResourceDialect,
2228 0x3d2fcd85d11c96bb,
2229 >(_buf?)?;
2230 Ok(_response.map(|x| x.cipher_text))
2231 }
2232 self.client.send_query_and_decode::<KeyManagerSealDataRequest, KeyManagerSealDataResult>(
2233 (&mut plain_text,),
2234 0x3d2fcd85d11c96bb,
2235 fidl::encoding::DynamicFlags::empty(),
2236 _decode,
2237 )
2238 }
2239
2240 type UnsealDataResponseFut = fidl::client::QueryResponseFut<
2241 KeyManagerUnsealDataResult,
2242 fidl::encoding::DefaultFuchsiaResourceDialect,
2243 >;
2244 fn r#unseal_data(
2245 &self,
2246 mut cipher_text: fidl_fuchsia_mem::Buffer,
2247 ) -> Self::UnsealDataResponseFut {
2248 fn _decode(
2249 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2250 ) -> Result<KeyManagerUnsealDataResult, fidl::Error> {
2251 let _response = fidl::client::decode_transaction_body::<
2252 fidl::encoding::ResultType<KeyManagerUnsealDataResponse, Error>,
2253 fidl::encoding::DefaultFuchsiaResourceDialect,
2254 0x72dafc3131c1bca6,
2255 >(_buf?)?;
2256 Ok(_response.map(|x| x.plain_text))
2257 }
2258 self.client
2259 .send_query_and_decode::<KeyManagerUnsealDataRequest, KeyManagerUnsealDataResult>(
2260 (&mut cipher_text,),
2261 0x72dafc3131c1bca6,
2262 fidl::encoding::DynamicFlags::empty(),
2263 _decode,
2264 )
2265 }
2266
2267 type GenerateAsymmetricKeyResponseFut = fidl::client::QueryResponseFut<
2268 KeyManagerGenerateAsymmetricKeyResult,
2269 fidl::encoding::DefaultFuchsiaResourceDialect,
2270 >;
2271 fn r#generate_asymmetric_key(
2272 &self,
2273 mut key_name: &str,
2274 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2275 ) -> Self::GenerateAsymmetricKeyResponseFut {
2276 fn _decode(
2277 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2278 ) -> Result<KeyManagerGenerateAsymmetricKeyResult, fidl::Error> {
2279 let _response = fidl::client::decode_transaction_body::<
2280 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
2281 fidl::encoding::DefaultFuchsiaResourceDialect,
2282 0x66f1aa7ff5eb183d,
2283 >(_buf?)?;
2284 Ok(_response.map(|x| x))
2285 }
2286 self.client.send_query_and_decode::<
2287 KeyManagerGenerateAsymmetricKeyRequest,
2288 KeyManagerGenerateAsymmetricKeyResult,
2289 >(
2290 (key_name, key,),
2291 0x66f1aa7ff5eb183d,
2292 fidl::encoding::DynamicFlags::empty(),
2293 _decode,
2294 )
2295 }
2296
2297 type GenerateAsymmetricKeyWithAlgorithmResponseFut = fidl::client::QueryResponseFut<
2298 KeyManagerGenerateAsymmetricKeyWithAlgorithmResult,
2299 fidl::encoding::DefaultFuchsiaResourceDialect,
2300 >;
2301 fn r#generate_asymmetric_key_with_algorithm(
2302 &self,
2303 mut key_name: &str,
2304 mut key_algorithm: AsymmetricKeyAlgorithm,
2305 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2306 ) -> Self::GenerateAsymmetricKeyWithAlgorithmResponseFut {
2307 fn _decode(
2308 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2309 ) -> Result<KeyManagerGenerateAsymmetricKeyWithAlgorithmResult, fidl::Error> {
2310 let _response = fidl::client::decode_transaction_body::<
2311 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
2312 fidl::encoding::DefaultFuchsiaResourceDialect,
2313 0x2b9eac3ad0bc8a45,
2314 >(_buf?)?;
2315 Ok(_response.map(|x| x))
2316 }
2317 self.client.send_query_and_decode::<
2318 KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest,
2319 KeyManagerGenerateAsymmetricKeyWithAlgorithmResult,
2320 >(
2321 (key_name, key_algorithm, key,),
2322 0x2b9eac3ad0bc8a45,
2323 fidl::encoding::DynamicFlags::empty(),
2324 _decode,
2325 )
2326 }
2327
2328 type ImportAsymmetricPrivateKeyResponseFut = fidl::client::QueryResponseFut<
2329 KeyManagerImportAsymmetricPrivateKeyResult,
2330 fidl::encoding::DefaultFuchsiaResourceDialect,
2331 >;
2332 fn r#import_asymmetric_private_key(
2333 &self,
2334 mut data: &[u8],
2335 mut key_name: &str,
2336 mut key_algorithm: AsymmetricKeyAlgorithm,
2337 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2338 ) -> Self::ImportAsymmetricPrivateKeyResponseFut {
2339 fn _decode(
2340 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2341 ) -> Result<KeyManagerImportAsymmetricPrivateKeyResult, fidl::Error> {
2342 let _response = fidl::client::decode_transaction_body::<
2343 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
2344 fidl::encoding::DefaultFuchsiaResourceDialect,
2345 0x14c78f1ebb4eee71,
2346 >(_buf?)?;
2347 Ok(_response.map(|x| x))
2348 }
2349 self.client.send_query_and_decode::<
2350 KeyManagerImportAsymmetricPrivateKeyRequest,
2351 KeyManagerImportAsymmetricPrivateKeyResult,
2352 >(
2353 (data, key_name, key_algorithm, key,),
2354 0x14c78f1ebb4eee71,
2355 fidl::encoding::DynamicFlags::empty(),
2356 _decode,
2357 )
2358 }
2359
2360 type GetAsymmetricPrivateKeyResponseFut = fidl::client::QueryResponseFut<
2361 KeyManagerGetAsymmetricPrivateKeyResult,
2362 fidl::encoding::DefaultFuchsiaResourceDialect,
2363 >;
2364 fn r#get_asymmetric_private_key(
2365 &self,
2366 mut key_name: &str,
2367 mut key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2368 ) -> Self::GetAsymmetricPrivateKeyResponseFut {
2369 fn _decode(
2370 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2371 ) -> Result<KeyManagerGetAsymmetricPrivateKeyResult, fidl::Error> {
2372 let _response = fidl::client::decode_transaction_body::<
2373 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
2374 fidl::encoding::DefaultFuchsiaResourceDialect,
2375 0x3a257fc6b6ccc5cd,
2376 >(_buf?)?;
2377 Ok(_response.map(|x| x))
2378 }
2379 self.client.send_query_and_decode::<
2380 KeyManagerGetAsymmetricPrivateKeyRequest,
2381 KeyManagerGetAsymmetricPrivateKeyResult,
2382 >(
2383 (key_name, key,),
2384 0x3a257fc6b6ccc5cd,
2385 fidl::encoding::DynamicFlags::empty(),
2386 _decode,
2387 )
2388 }
2389
2390 type DeleteKeyResponseFut = fidl::client::QueryResponseFut<
2391 KeyManagerDeleteKeyResult,
2392 fidl::encoding::DefaultFuchsiaResourceDialect,
2393 >;
2394 fn r#delete_key(&self, mut key_name: &str) -> Self::DeleteKeyResponseFut {
2395 fn _decode(
2396 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2397 ) -> Result<KeyManagerDeleteKeyResult, fidl::Error> {
2398 let _response = fidl::client::decode_transaction_body::<
2399 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>,
2400 fidl::encoding::DefaultFuchsiaResourceDialect,
2401 0x55521e617d023aad,
2402 >(_buf?)?;
2403 Ok(_response.map(|x| x))
2404 }
2405 self.client.send_query_and_decode::<KeyManagerDeleteKeyRequest, KeyManagerDeleteKeyResult>(
2406 (key_name,),
2407 0x55521e617d023aad,
2408 fidl::encoding::DynamicFlags::empty(),
2409 _decode,
2410 )
2411 }
2412}
2413
2414pub struct KeyManagerEventStream {
2415 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
2416}
2417
2418impl std::marker::Unpin for KeyManagerEventStream {}
2419
2420impl futures::stream::FusedStream for KeyManagerEventStream {
2421 fn is_terminated(&self) -> bool {
2422 self.event_receiver.is_terminated()
2423 }
2424}
2425
2426impl futures::Stream for KeyManagerEventStream {
2427 type Item = Result<KeyManagerEvent, fidl::Error>;
2428
2429 fn poll_next(
2430 mut self: std::pin::Pin<&mut Self>,
2431 cx: &mut std::task::Context<'_>,
2432 ) -> std::task::Poll<Option<Self::Item>> {
2433 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
2434 &mut self.event_receiver,
2435 cx
2436 )?) {
2437 Some(buf) => std::task::Poll::Ready(Some(KeyManagerEvent::decode(buf))),
2438 None => std::task::Poll::Ready(None),
2439 }
2440 }
2441}
2442
2443#[derive(Debug)]
2444pub enum KeyManagerEvent {}
2445
2446impl KeyManagerEvent {
2447 fn decode(
2449 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
2450 ) -> Result<KeyManagerEvent, fidl::Error> {
2451 let (bytes, _handles) = buf.split_mut();
2452 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2453 debug_assert_eq!(tx_header.tx_id, 0);
2454 match tx_header.ordinal {
2455 _ => Err(fidl::Error::UnknownOrdinal {
2456 ordinal: tx_header.ordinal,
2457 protocol_name: <KeyManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2458 }),
2459 }
2460 }
2461}
2462
2463pub struct KeyManagerRequestStream {
2465 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2466 is_terminated: bool,
2467}
2468
2469impl std::marker::Unpin for KeyManagerRequestStream {}
2470
2471impl futures::stream::FusedStream for KeyManagerRequestStream {
2472 fn is_terminated(&self) -> bool {
2473 self.is_terminated
2474 }
2475}
2476
2477impl fidl::endpoints::RequestStream for KeyManagerRequestStream {
2478 type Protocol = KeyManagerMarker;
2479 type ControlHandle = KeyManagerControlHandle;
2480
2481 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
2482 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
2483 }
2484
2485 fn control_handle(&self) -> Self::ControlHandle {
2486 KeyManagerControlHandle { inner: self.inner.clone() }
2487 }
2488
2489 fn into_inner(
2490 self,
2491 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
2492 {
2493 (self.inner, self.is_terminated)
2494 }
2495
2496 fn from_inner(
2497 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2498 is_terminated: bool,
2499 ) -> Self {
2500 Self { inner, is_terminated }
2501 }
2502}
2503
2504impl futures::Stream for KeyManagerRequestStream {
2505 type Item = Result<KeyManagerRequest, fidl::Error>;
2506
2507 fn poll_next(
2508 mut self: std::pin::Pin<&mut Self>,
2509 cx: &mut std::task::Context<'_>,
2510 ) -> std::task::Poll<Option<Self::Item>> {
2511 let this = &mut *self;
2512 if this.inner.check_shutdown(cx) {
2513 this.is_terminated = true;
2514 return std::task::Poll::Ready(None);
2515 }
2516 if this.is_terminated {
2517 panic!("polled KeyManagerRequestStream after completion");
2518 }
2519 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
2520 |bytes, handles| {
2521 match this.inner.channel().read_etc(cx, bytes, handles) {
2522 std::task::Poll::Ready(Ok(())) => {}
2523 std::task::Poll::Pending => return std::task::Poll::Pending,
2524 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
2525 this.is_terminated = true;
2526 return std::task::Poll::Ready(None);
2527 }
2528 std::task::Poll::Ready(Err(e)) => {
2529 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
2530 e.into(),
2531 ))));
2532 }
2533 }
2534
2535 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2537
2538 std::task::Poll::Ready(Some(match header.ordinal {
2539 0x3d2fcd85d11c96bb => {
2540 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2541 let mut req = fidl::new_empty!(
2542 KeyManagerSealDataRequest,
2543 fidl::encoding::DefaultFuchsiaResourceDialect
2544 );
2545 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<KeyManagerSealDataRequest>(&header, _body_bytes, handles, &mut req)?;
2546 let control_handle = KeyManagerControlHandle { inner: this.inner.clone() };
2547 Ok(KeyManagerRequest::SealData {
2548 plain_text: req.plain_text,
2549
2550 responder: KeyManagerSealDataResponder {
2551 control_handle: std::mem::ManuallyDrop::new(control_handle),
2552 tx_id: header.tx_id,
2553 },
2554 })
2555 }
2556 0x72dafc3131c1bca6 => {
2557 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2558 let mut req = fidl::new_empty!(
2559 KeyManagerUnsealDataRequest,
2560 fidl::encoding::DefaultFuchsiaResourceDialect
2561 );
2562 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<KeyManagerUnsealDataRequest>(&header, _body_bytes, handles, &mut req)?;
2563 let control_handle = KeyManagerControlHandle { inner: this.inner.clone() };
2564 Ok(KeyManagerRequest::UnsealData {
2565 cipher_text: req.cipher_text,
2566
2567 responder: KeyManagerUnsealDataResponder {
2568 control_handle: std::mem::ManuallyDrop::new(control_handle),
2569 tx_id: header.tx_id,
2570 },
2571 })
2572 }
2573 0x66f1aa7ff5eb183d => {
2574 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2575 let mut req = fidl::new_empty!(
2576 KeyManagerGenerateAsymmetricKeyRequest,
2577 fidl::encoding::DefaultFuchsiaResourceDialect
2578 );
2579 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<KeyManagerGenerateAsymmetricKeyRequest>(&header, _body_bytes, handles, &mut req)?;
2580 let control_handle = KeyManagerControlHandle { inner: this.inner.clone() };
2581 Ok(KeyManagerRequest::GenerateAsymmetricKey {
2582 key_name: req.key_name,
2583 key: req.key,
2584
2585 responder: KeyManagerGenerateAsymmetricKeyResponder {
2586 control_handle: std::mem::ManuallyDrop::new(control_handle),
2587 tx_id: header.tx_id,
2588 },
2589 })
2590 }
2591 0x2b9eac3ad0bc8a45 => {
2592 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2593 let mut req = fidl::new_empty!(
2594 KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest,
2595 fidl::encoding::DefaultFuchsiaResourceDialect
2596 );
2597 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest>(&header, _body_bytes, handles, &mut req)?;
2598 let control_handle = KeyManagerControlHandle { inner: this.inner.clone() };
2599 Ok(KeyManagerRequest::GenerateAsymmetricKeyWithAlgorithm {
2600 key_name: req.key_name,
2601 key_algorithm: req.key_algorithm,
2602 key: req.key,
2603
2604 responder: KeyManagerGenerateAsymmetricKeyWithAlgorithmResponder {
2605 control_handle: std::mem::ManuallyDrop::new(control_handle),
2606 tx_id: header.tx_id,
2607 },
2608 })
2609 }
2610 0x14c78f1ebb4eee71 => {
2611 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2612 let mut req = fidl::new_empty!(
2613 KeyManagerImportAsymmetricPrivateKeyRequest,
2614 fidl::encoding::DefaultFuchsiaResourceDialect
2615 );
2616 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<KeyManagerImportAsymmetricPrivateKeyRequest>(&header, _body_bytes, handles, &mut req)?;
2617 let control_handle = KeyManagerControlHandle { inner: this.inner.clone() };
2618 Ok(KeyManagerRequest::ImportAsymmetricPrivateKey {
2619 data: req.data,
2620 key_name: req.key_name,
2621 key_algorithm: req.key_algorithm,
2622 key: req.key,
2623
2624 responder: KeyManagerImportAsymmetricPrivateKeyResponder {
2625 control_handle: std::mem::ManuallyDrop::new(control_handle),
2626 tx_id: header.tx_id,
2627 },
2628 })
2629 }
2630 0x3a257fc6b6ccc5cd => {
2631 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2632 let mut req = fidl::new_empty!(
2633 KeyManagerGetAsymmetricPrivateKeyRequest,
2634 fidl::encoding::DefaultFuchsiaResourceDialect
2635 );
2636 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<KeyManagerGetAsymmetricPrivateKeyRequest>(&header, _body_bytes, handles, &mut req)?;
2637 let control_handle = KeyManagerControlHandle { inner: this.inner.clone() };
2638 Ok(KeyManagerRequest::GetAsymmetricPrivateKey {
2639 key_name: req.key_name,
2640 key: req.key,
2641
2642 responder: KeyManagerGetAsymmetricPrivateKeyResponder {
2643 control_handle: std::mem::ManuallyDrop::new(control_handle),
2644 tx_id: header.tx_id,
2645 },
2646 })
2647 }
2648 0x55521e617d023aad => {
2649 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2650 let mut req = fidl::new_empty!(
2651 KeyManagerDeleteKeyRequest,
2652 fidl::encoding::DefaultFuchsiaResourceDialect
2653 );
2654 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<KeyManagerDeleteKeyRequest>(&header, _body_bytes, handles, &mut req)?;
2655 let control_handle = KeyManagerControlHandle { inner: this.inner.clone() };
2656 Ok(KeyManagerRequest::DeleteKey {
2657 key_name: req.key_name,
2658
2659 responder: KeyManagerDeleteKeyResponder {
2660 control_handle: std::mem::ManuallyDrop::new(control_handle),
2661 tx_id: header.tx_id,
2662 },
2663 })
2664 }
2665 _ => Err(fidl::Error::UnknownOrdinal {
2666 ordinal: header.ordinal,
2667 protocol_name:
2668 <KeyManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2669 }),
2670 }))
2671 },
2672 )
2673 }
2674}
2675
2676#[derive(Debug)]
2677pub enum KeyManagerRequest {
2678 SealData { plain_text: fidl_fuchsia_mem::Buffer, responder: KeyManagerSealDataResponder },
2683 UnsealData { cipher_text: fidl_fuchsia_mem::Buffer, responder: KeyManagerUnsealDataResponder },
2687 GenerateAsymmetricKey {
2694 key_name: String,
2695 key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2696 responder: KeyManagerGenerateAsymmetricKeyResponder,
2697 },
2698 GenerateAsymmetricKeyWithAlgorithm {
2704 key_name: String,
2705 key_algorithm: AsymmetricKeyAlgorithm,
2706 key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2707 responder: KeyManagerGenerateAsymmetricKeyWithAlgorithmResponder,
2708 },
2709 ImportAsymmetricPrivateKey {
2716 data: Vec<u8>,
2717 key_name: String,
2718 key_algorithm: AsymmetricKeyAlgorithm,
2719 key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2720 responder: KeyManagerImportAsymmetricPrivateKeyResponder,
2721 },
2722 GetAsymmetricPrivateKey {
2727 key_name: String,
2728 key: fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2729 responder: KeyManagerGetAsymmetricPrivateKeyResponder,
2730 },
2731 DeleteKey { key_name: String, responder: KeyManagerDeleteKeyResponder },
2737}
2738
2739impl KeyManagerRequest {
2740 #[allow(irrefutable_let_patterns)]
2741 pub fn into_seal_data(self) -> Option<(fidl_fuchsia_mem::Buffer, KeyManagerSealDataResponder)> {
2742 if let KeyManagerRequest::SealData { plain_text, responder } = self {
2743 Some((plain_text, responder))
2744 } else {
2745 None
2746 }
2747 }
2748
2749 #[allow(irrefutable_let_patterns)]
2750 pub fn into_unseal_data(
2751 self,
2752 ) -> Option<(fidl_fuchsia_mem::Buffer, KeyManagerUnsealDataResponder)> {
2753 if let KeyManagerRequest::UnsealData { cipher_text, responder } = self {
2754 Some((cipher_text, responder))
2755 } else {
2756 None
2757 }
2758 }
2759
2760 #[allow(irrefutable_let_patterns)]
2761 pub fn into_generate_asymmetric_key(
2762 self,
2763 ) -> Option<(
2764 String,
2765 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2766 KeyManagerGenerateAsymmetricKeyResponder,
2767 )> {
2768 if let KeyManagerRequest::GenerateAsymmetricKey { key_name, key, responder } = self {
2769 Some((key_name, key, responder))
2770 } else {
2771 None
2772 }
2773 }
2774
2775 #[allow(irrefutable_let_patterns)]
2776 pub fn into_generate_asymmetric_key_with_algorithm(
2777 self,
2778 ) -> Option<(
2779 String,
2780 AsymmetricKeyAlgorithm,
2781 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2782 KeyManagerGenerateAsymmetricKeyWithAlgorithmResponder,
2783 )> {
2784 if let KeyManagerRequest::GenerateAsymmetricKeyWithAlgorithm {
2785 key_name,
2786 key_algorithm,
2787 key,
2788 responder,
2789 } = self
2790 {
2791 Some((key_name, key_algorithm, key, responder))
2792 } else {
2793 None
2794 }
2795 }
2796
2797 #[allow(irrefutable_let_patterns)]
2798 pub fn into_import_asymmetric_private_key(
2799 self,
2800 ) -> Option<(
2801 Vec<u8>,
2802 String,
2803 AsymmetricKeyAlgorithm,
2804 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2805 KeyManagerImportAsymmetricPrivateKeyResponder,
2806 )> {
2807 if let KeyManagerRequest::ImportAsymmetricPrivateKey {
2808 data,
2809 key_name,
2810 key_algorithm,
2811 key,
2812 responder,
2813 } = self
2814 {
2815 Some((data, key_name, key_algorithm, key, responder))
2816 } else {
2817 None
2818 }
2819 }
2820
2821 #[allow(irrefutable_let_patterns)]
2822 pub fn into_get_asymmetric_private_key(
2823 self,
2824 ) -> Option<(
2825 String,
2826 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
2827 KeyManagerGetAsymmetricPrivateKeyResponder,
2828 )> {
2829 if let KeyManagerRequest::GetAsymmetricPrivateKey { key_name, key, responder } = self {
2830 Some((key_name, key, responder))
2831 } else {
2832 None
2833 }
2834 }
2835
2836 #[allow(irrefutable_let_patterns)]
2837 pub fn into_delete_key(self) -> Option<(String, KeyManagerDeleteKeyResponder)> {
2838 if let KeyManagerRequest::DeleteKey { key_name, responder } = self {
2839 Some((key_name, responder))
2840 } else {
2841 None
2842 }
2843 }
2844
2845 pub fn method_name(&self) -> &'static str {
2847 match *self {
2848 KeyManagerRequest::SealData { .. } => "seal_data",
2849 KeyManagerRequest::UnsealData { .. } => "unseal_data",
2850 KeyManagerRequest::GenerateAsymmetricKey { .. } => "generate_asymmetric_key",
2851 KeyManagerRequest::GenerateAsymmetricKeyWithAlgorithm { .. } => {
2852 "generate_asymmetric_key_with_algorithm"
2853 }
2854 KeyManagerRequest::ImportAsymmetricPrivateKey { .. } => "import_asymmetric_private_key",
2855 KeyManagerRequest::GetAsymmetricPrivateKey { .. } => "get_asymmetric_private_key",
2856 KeyManagerRequest::DeleteKey { .. } => "delete_key",
2857 }
2858 }
2859}
2860
2861#[derive(Debug, Clone)]
2862pub struct KeyManagerControlHandle {
2863 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2864}
2865
2866impl fidl::endpoints::ControlHandle for KeyManagerControlHandle {
2867 fn shutdown(&self) {
2868 self.inner.shutdown()
2869 }
2870
2871 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
2872 self.inner.shutdown_with_epitaph(status)
2873 }
2874
2875 fn is_closed(&self) -> bool {
2876 self.inner.channel().is_closed()
2877 }
2878 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2879 self.inner.channel().on_closed()
2880 }
2881
2882 #[cfg(target_os = "fuchsia")]
2883 fn signal_peer(
2884 &self,
2885 clear_mask: zx::Signals,
2886 set_mask: zx::Signals,
2887 ) -> Result<(), zx_status::Status> {
2888 use fidl::Peered;
2889 self.inner.channel().signal_peer(clear_mask, set_mask)
2890 }
2891}
2892
2893impl KeyManagerControlHandle {}
2894
2895#[must_use = "FIDL methods require a response to be sent"]
2896#[derive(Debug)]
2897pub struct KeyManagerSealDataResponder {
2898 control_handle: std::mem::ManuallyDrop<KeyManagerControlHandle>,
2899 tx_id: u32,
2900}
2901
2902impl std::ops::Drop for KeyManagerSealDataResponder {
2906 fn drop(&mut self) {
2907 self.control_handle.shutdown();
2908 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2910 }
2911}
2912
2913impl fidl::endpoints::Responder for KeyManagerSealDataResponder {
2914 type ControlHandle = KeyManagerControlHandle;
2915
2916 fn control_handle(&self) -> &KeyManagerControlHandle {
2917 &self.control_handle
2918 }
2919
2920 fn drop_without_shutdown(mut self) {
2921 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2923 std::mem::forget(self);
2925 }
2926}
2927
2928impl KeyManagerSealDataResponder {
2929 pub fn send(
2933 self,
2934 mut result: Result<fidl_fuchsia_mem::Buffer, Error>,
2935 ) -> Result<(), fidl::Error> {
2936 let _result = self.send_raw(result);
2937 if _result.is_err() {
2938 self.control_handle.shutdown();
2939 }
2940 self.drop_without_shutdown();
2941 _result
2942 }
2943
2944 pub fn send_no_shutdown_on_err(
2946 self,
2947 mut result: Result<fidl_fuchsia_mem::Buffer, Error>,
2948 ) -> Result<(), fidl::Error> {
2949 let _result = self.send_raw(result);
2950 self.drop_without_shutdown();
2951 _result
2952 }
2953
2954 fn send_raw(
2955 &self,
2956 mut result: Result<fidl_fuchsia_mem::Buffer, Error>,
2957 ) -> Result<(), fidl::Error> {
2958 self.control_handle
2959 .inner
2960 .send::<fidl::encoding::ResultType<KeyManagerSealDataResponse, Error>>(
2961 result.as_mut().map_err(|e| *e).map(|cipher_text| (cipher_text,)),
2962 self.tx_id,
2963 0x3d2fcd85d11c96bb,
2964 fidl::encoding::DynamicFlags::empty(),
2965 )
2966 }
2967}
2968
2969#[must_use = "FIDL methods require a response to be sent"]
2970#[derive(Debug)]
2971pub struct KeyManagerUnsealDataResponder {
2972 control_handle: std::mem::ManuallyDrop<KeyManagerControlHandle>,
2973 tx_id: u32,
2974}
2975
2976impl std::ops::Drop for KeyManagerUnsealDataResponder {
2980 fn drop(&mut self) {
2981 self.control_handle.shutdown();
2982 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2984 }
2985}
2986
2987impl fidl::endpoints::Responder for KeyManagerUnsealDataResponder {
2988 type ControlHandle = KeyManagerControlHandle;
2989
2990 fn control_handle(&self) -> &KeyManagerControlHandle {
2991 &self.control_handle
2992 }
2993
2994 fn drop_without_shutdown(mut self) {
2995 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2997 std::mem::forget(self);
2999 }
3000}
3001
3002impl KeyManagerUnsealDataResponder {
3003 pub fn send(
3007 self,
3008 mut result: Result<fidl_fuchsia_mem::Buffer, Error>,
3009 ) -> Result<(), fidl::Error> {
3010 let _result = self.send_raw(result);
3011 if _result.is_err() {
3012 self.control_handle.shutdown();
3013 }
3014 self.drop_without_shutdown();
3015 _result
3016 }
3017
3018 pub fn send_no_shutdown_on_err(
3020 self,
3021 mut result: Result<fidl_fuchsia_mem::Buffer, Error>,
3022 ) -> Result<(), fidl::Error> {
3023 let _result = self.send_raw(result);
3024 self.drop_without_shutdown();
3025 _result
3026 }
3027
3028 fn send_raw(
3029 &self,
3030 mut result: Result<fidl_fuchsia_mem::Buffer, Error>,
3031 ) -> Result<(), fidl::Error> {
3032 self.control_handle
3033 .inner
3034 .send::<fidl::encoding::ResultType<KeyManagerUnsealDataResponse, Error>>(
3035 result.as_mut().map_err(|e| *e).map(|plain_text| (plain_text,)),
3036 self.tx_id,
3037 0x72dafc3131c1bca6,
3038 fidl::encoding::DynamicFlags::empty(),
3039 )
3040 }
3041}
3042
3043#[must_use = "FIDL methods require a response to be sent"]
3044#[derive(Debug)]
3045pub struct KeyManagerGenerateAsymmetricKeyResponder {
3046 control_handle: std::mem::ManuallyDrop<KeyManagerControlHandle>,
3047 tx_id: u32,
3048}
3049
3050impl std::ops::Drop for KeyManagerGenerateAsymmetricKeyResponder {
3054 fn drop(&mut self) {
3055 self.control_handle.shutdown();
3056 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3058 }
3059}
3060
3061impl fidl::endpoints::Responder for KeyManagerGenerateAsymmetricKeyResponder {
3062 type ControlHandle = KeyManagerControlHandle;
3063
3064 fn control_handle(&self) -> &KeyManagerControlHandle {
3065 &self.control_handle
3066 }
3067
3068 fn drop_without_shutdown(mut self) {
3069 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3071 std::mem::forget(self);
3073 }
3074}
3075
3076impl KeyManagerGenerateAsymmetricKeyResponder {
3077 pub fn send(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3081 let _result = self.send_raw(result);
3082 if _result.is_err() {
3083 self.control_handle.shutdown();
3084 }
3085 self.drop_without_shutdown();
3086 _result
3087 }
3088
3089 pub fn send_no_shutdown_on_err(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3091 let _result = self.send_raw(result);
3092 self.drop_without_shutdown();
3093 _result
3094 }
3095
3096 fn send_raw(&self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3097 self.control_handle
3098 .inner
3099 .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>>(
3100 result,
3101 self.tx_id,
3102 0x66f1aa7ff5eb183d,
3103 fidl::encoding::DynamicFlags::empty(),
3104 )
3105 }
3106}
3107
3108#[must_use = "FIDL methods require a response to be sent"]
3109#[derive(Debug)]
3110pub struct KeyManagerGenerateAsymmetricKeyWithAlgorithmResponder {
3111 control_handle: std::mem::ManuallyDrop<KeyManagerControlHandle>,
3112 tx_id: u32,
3113}
3114
3115impl std::ops::Drop for KeyManagerGenerateAsymmetricKeyWithAlgorithmResponder {
3119 fn drop(&mut self) {
3120 self.control_handle.shutdown();
3121 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3123 }
3124}
3125
3126impl fidl::endpoints::Responder for KeyManagerGenerateAsymmetricKeyWithAlgorithmResponder {
3127 type ControlHandle = KeyManagerControlHandle;
3128
3129 fn control_handle(&self) -> &KeyManagerControlHandle {
3130 &self.control_handle
3131 }
3132
3133 fn drop_without_shutdown(mut self) {
3134 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3136 std::mem::forget(self);
3138 }
3139}
3140
3141impl KeyManagerGenerateAsymmetricKeyWithAlgorithmResponder {
3142 pub fn send(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3146 let _result = self.send_raw(result);
3147 if _result.is_err() {
3148 self.control_handle.shutdown();
3149 }
3150 self.drop_without_shutdown();
3151 _result
3152 }
3153
3154 pub fn send_no_shutdown_on_err(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3156 let _result = self.send_raw(result);
3157 self.drop_without_shutdown();
3158 _result
3159 }
3160
3161 fn send_raw(&self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3162 self.control_handle
3163 .inner
3164 .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>>(
3165 result,
3166 self.tx_id,
3167 0x2b9eac3ad0bc8a45,
3168 fidl::encoding::DynamicFlags::empty(),
3169 )
3170 }
3171}
3172
3173#[must_use = "FIDL methods require a response to be sent"]
3174#[derive(Debug)]
3175pub struct KeyManagerImportAsymmetricPrivateKeyResponder {
3176 control_handle: std::mem::ManuallyDrop<KeyManagerControlHandle>,
3177 tx_id: u32,
3178}
3179
3180impl std::ops::Drop for KeyManagerImportAsymmetricPrivateKeyResponder {
3184 fn drop(&mut self) {
3185 self.control_handle.shutdown();
3186 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3188 }
3189}
3190
3191impl fidl::endpoints::Responder for KeyManagerImportAsymmetricPrivateKeyResponder {
3192 type ControlHandle = KeyManagerControlHandle;
3193
3194 fn control_handle(&self) -> &KeyManagerControlHandle {
3195 &self.control_handle
3196 }
3197
3198 fn drop_without_shutdown(mut self) {
3199 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3201 std::mem::forget(self);
3203 }
3204}
3205
3206impl KeyManagerImportAsymmetricPrivateKeyResponder {
3207 pub fn send(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3211 let _result = self.send_raw(result);
3212 if _result.is_err() {
3213 self.control_handle.shutdown();
3214 }
3215 self.drop_without_shutdown();
3216 _result
3217 }
3218
3219 pub fn send_no_shutdown_on_err(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3221 let _result = self.send_raw(result);
3222 self.drop_without_shutdown();
3223 _result
3224 }
3225
3226 fn send_raw(&self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3227 self.control_handle
3228 .inner
3229 .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>>(
3230 result,
3231 self.tx_id,
3232 0x14c78f1ebb4eee71,
3233 fidl::encoding::DynamicFlags::empty(),
3234 )
3235 }
3236}
3237
3238#[must_use = "FIDL methods require a response to be sent"]
3239#[derive(Debug)]
3240pub struct KeyManagerGetAsymmetricPrivateKeyResponder {
3241 control_handle: std::mem::ManuallyDrop<KeyManagerControlHandle>,
3242 tx_id: u32,
3243}
3244
3245impl std::ops::Drop for KeyManagerGetAsymmetricPrivateKeyResponder {
3249 fn drop(&mut self) {
3250 self.control_handle.shutdown();
3251 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3253 }
3254}
3255
3256impl fidl::endpoints::Responder for KeyManagerGetAsymmetricPrivateKeyResponder {
3257 type ControlHandle = KeyManagerControlHandle;
3258
3259 fn control_handle(&self) -> &KeyManagerControlHandle {
3260 &self.control_handle
3261 }
3262
3263 fn drop_without_shutdown(mut self) {
3264 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3266 std::mem::forget(self);
3268 }
3269}
3270
3271impl KeyManagerGetAsymmetricPrivateKeyResponder {
3272 pub fn send(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3276 let _result = self.send_raw(result);
3277 if _result.is_err() {
3278 self.control_handle.shutdown();
3279 }
3280 self.drop_without_shutdown();
3281 _result
3282 }
3283
3284 pub fn send_no_shutdown_on_err(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3286 let _result = self.send_raw(result);
3287 self.drop_without_shutdown();
3288 _result
3289 }
3290
3291 fn send_raw(&self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3292 self.control_handle
3293 .inner
3294 .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>>(
3295 result,
3296 self.tx_id,
3297 0x3a257fc6b6ccc5cd,
3298 fidl::encoding::DynamicFlags::empty(),
3299 )
3300 }
3301}
3302
3303#[must_use = "FIDL methods require a response to be sent"]
3304#[derive(Debug)]
3305pub struct KeyManagerDeleteKeyResponder {
3306 control_handle: std::mem::ManuallyDrop<KeyManagerControlHandle>,
3307 tx_id: u32,
3308}
3309
3310impl std::ops::Drop for KeyManagerDeleteKeyResponder {
3314 fn drop(&mut self) {
3315 self.control_handle.shutdown();
3316 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3318 }
3319}
3320
3321impl fidl::endpoints::Responder for KeyManagerDeleteKeyResponder {
3322 type ControlHandle = KeyManagerControlHandle;
3323
3324 fn control_handle(&self) -> &KeyManagerControlHandle {
3325 &self.control_handle
3326 }
3327
3328 fn drop_without_shutdown(mut self) {
3329 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3331 std::mem::forget(self);
3333 }
3334}
3335
3336impl KeyManagerDeleteKeyResponder {
3337 pub fn send(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3341 let _result = self.send_raw(result);
3342 if _result.is_err() {
3343 self.control_handle.shutdown();
3344 }
3345 self.drop_without_shutdown();
3346 _result
3347 }
3348
3349 pub fn send_no_shutdown_on_err(self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3351 let _result = self.send_raw(result);
3352 self.drop_without_shutdown();
3353 _result
3354 }
3355
3356 fn send_raw(&self, mut result: Result<(), Error>) -> Result<(), fidl::Error> {
3357 self.control_handle
3358 .inner
3359 .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, Error>>(
3360 result,
3361 self.tx_id,
3362 0x55521e617d023aad,
3363 fidl::encoding::DynamicFlags::empty(),
3364 )
3365 }
3366}
3367
3368#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
3369pub struct StatelessKeyManagerMarker;
3370
3371impl fidl::endpoints::ProtocolMarker for StatelessKeyManagerMarker {
3372 type Proxy = StatelessKeyManagerProxy;
3373 type RequestStream = StatelessKeyManagerRequestStream;
3374 #[cfg(target_os = "fuchsia")]
3375 type SynchronousProxy = StatelessKeyManagerSynchronousProxy;
3376
3377 const DEBUG_NAME: &'static str = "fuchsia.kms.StatelessKeyManager";
3378}
3379impl fidl::endpoints::DiscoverableProtocolMarker for StatelessKeyManagerMarker {}
3380pub type StatelessKeyManagerGetHardwareDerivedKeyResult = Result<Vec<u8>, Error>;
3381
3382pub trait StatelessKeyManagerProxyInterface: Send + Sync {
3383 type GetHardwareDerivedKeyResponseFut: std::future::Future<
3384 Output = Result<StatelessKeyManagerGetHardwareDerivedKeyResult, fidl::Error>,
3385 > + Send;
3386 fn r#get_hardware_derived_key(&self, key_info: &[u8])
3387 -> Self::GetHardwareDerivedKeyResponseFut;
3388}
3389#[derive(Debug)]
3390#[cfg(target_os = "fuchsia")]
3391pub struct StatelessKeyManagerSynchronousProxy {
3392 client: fidl::client::sync::Client,
3393}
3394
3395#[cfg(target_os = "fuchsia")]
3396impl fidl::endpoints::SynchronousProxy for StatelessKeyManagerSynchronousProxy {
3397 type Proxy = StatelessKeyManagerProxy;
3398 type Protocol = StatelessKeyManagerMarker;
3399
3400 fn from_channel(inner: fidl::Channel) -> Self {
3401 Self::new(inner)
3402 }
3403
3404 fn into_channel(self) -> fidl::Channel {
3405 self.client.into_channel()
3406 }
3407
3408 fn as_channel(&self) -> &fidl::Channel {
3409 self.client.as_channel()
3410 }
3411}
3412
3413#[cfg(target_os = "fuchsia")]
3414impl StatelessKeyManagerSynchronousProxy {
3415 pub fn new(channel: fidl::Channel) -> Self {
3416 let protocol_name =
3417 <StatelessKeyManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
3418 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
3419 }
3420
3421 pub fn into_channel(self) -> fidl::Channel {
3422 self.client.into_channel()
3423 }
3424
3425 pub fn wait_for_event(
3428 &self,
3429 deadline: zx::MonotonicInstant,
3430 ) -> Result<StatelessKeyManagerEvent, fidl::Error> {
3431 StatelessKeyManagerEvent::decode(self.client.wait_for_event(deadline)?)
3432 }
3433
3434 pub fn r#get_hardware_derived_key(
3441 &self,
3442 mut key_info: &[u8],
3443 ___deadline: zx::MonotonicInstant,
3444 ) -> Result<StatelessKeyManagerGetHardwareDerivedKeyResult, fidl::Error> {
3445 let _response = self.client.send_query::<
3446 StatelessKeyManagerGetHardwareDerivedKeyRequest,
3447 fidl::encoding::ResultType<StatelessKeyManagerGetHardwareDerivedKeyResponse, Error>,
3448 >(
3449 (key_info,),
3450 0x685043d9e68d5f86,
3451 fidl::encoding::DynamicFlags::empty(),
3452 ___deadline,
3453 )?;
3454 Ok(_response.map(|x| x.derived_key))
3455 }
3456}
3457
3458#[cfg(target_os = "fuchsia")]
3459impl From<StatelessKeyManagerSynchronousProxy> for zx::NullableHandle {
3460 fn from(value: StatelessKeyManagerSynchronousProxy) -> Self {
3461 value.into_channel().into()
3462 }
3463}
3464
3465#[cfg(target_os = "fuchsia")]
3466impl From<fidl::Channel> for StatelessKeyManagerSynchronousProxy {
3467 fn from(value: fidl::Channel) -> Self {
3468 Self::new(value)
3469 }
3470}
3471
3472#[cfg(target_os = "fuchsia")]
3473impl fidl::endpoints::FromClient for StatelessKeyManagerSynchronousProxy {
3474 type Protocol = StatelessKeyManagerMarker;
3475
3476 fn from_client(value: fidl::endpoints::ClientEnd<StatelessKeyManagerMarker>) -> Self {
3477 Self::new(value.into_channel())
3478 }
3479}
3480
3481#[derive(Debug, Clone)]
3482pub struct StatelessKeyManagerProxy {
3483 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
3484}
3485
3486impl fidl::endpoints::Proxy for StatelessKeyManagerProxy {
3487 type Protocol = StatelessKeyManagerMarker;
3488
3489 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
3490 Self::new(inner)
3491 }
3492
3493 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
3494 self.client.into_channel().map_err(|client| Self { client })
3495 }
3496
3497 fn as_channel(&self) -> &::fidl::AsyncChannel {
3498 self.client.as_channel()
3499 }
3500}
3501
3502impl StatelessKeyManagerProxy {
3503 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
3505 let protocol_name =
3506 <StatelessKeyManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
3507 Self { client: fidl::client::Client::new(channel, protocol_name) }
3508 }
3509
3510 pub fn take_event_stream(&self) -> StatelessKeyManagerEventStream {
3516 StatelessKeyManagerEventStream { event_receiver: self.client.take_event_receiver() }
3517 }
3518
3519 pub fn r#get_hardware_derived_key(
3526 &self,
3527 mut key_info: &[u8],
3528 ) -> fidl::client::QueryResponseFut<
3529 StatelessKeyManagerGetHardwareDerivedKeyResult,
3530 fidl::encoding::DefaultFuchsiaResourceDialect,
3531 > {
3532 StatelessKeyManagerProxyInterface::r#get_hardware_derived_key(self, key_info)
3533 }
3534}
3535
3536impl StatelessKeyManagerProxyInterface for StatelessKeyManagerProxy {
3537 type GetHardwareDerivedKeyResponseFut = fidl::client::QueryResponseFut<
3538 StatelessKeyManagerGetHardwareDerivedKeyResult,
3539 fidl::encoding::DefaultFuchsiaResourceDialect,
3540 >;
3541 fn r#get_hardware_derived_key(
3542 &self,
3543 mut key_info: &[u8],
3544 ) -> Self::GetHardwareDerivedKeyResponseFut {
3545 fn _decode(
3546 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3547 ) -> Result<StatelessKeyManagerGetHardwareDerivedKeyResult, fidl::Error> {
3548 let _response = fidl::client::decode_transaction_body::<
3549 fidl::encoding::ResultType<StatelessKeyManagerGetHardwareDerivedKeyResponse, Error>,
3550 fidl::encoding::DefaultFuchsiaResourceDialect,
3551 0x685043d9e68d5f86,
3552 >(_buf?)?;
3553 Ok(_response.map(|x| x.derived_key))
3554 }
3555 self.client.send_query_and_decode::<
3556 StatelessKeyManagerGetHardwareDerivedKeyRequest,
3557 StatelessKeyManagerGetHardwareDerivedKeyResult,
3558 >(
3559 (key_info,),
3560 0x685043d9e68d5f86,
3561 fidl::encoding::DynamicFlags::empty(),
3562 _decode,
3563 )
3564 }
3565}
3566
3567pub struct StatelessKeyManagerEventStream {
3568 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
3569}
3570
3571impl std::marker::Unpin for StatelessKeyManagerEventStream {}
3572
3573impl futures::stream::FusedStream for StatelessKeyManagerEventStream {
3574 fn is_terminated(&self) -> bool {
3575 self.event_receiver.is_terminated()
3576 }
3577}
3578
3579impl futures::Stream for StatelessKeyManagerEventStream {
3580 type Item = Result<StatelessKeyManagerEvent, fidl::Error>;
3581
3582 fn poll_next(
3583 mut self: std::pin::Pin<&mut Self>,
3584 cx: &mut std::task::Context<'_>,
3585 ) -> std::task::Poll<Option<Self::Item>> {
3586 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
3587 &mut self.event_receiver,
3588 cx
3589 )?) {
3590 Some(buf) => std::task::Poll::Ready(Some(StatelessKeyManagerEvent::decode(buf))),
3591 None => std::task::Poll::Ready(None),
3592 }
3593 }
3594}
3595
3596#[derive(Debug)]
3597pub enum StatelessKeyManagerEvent {}
3598
3599impl StatelessKeyManagerEvent {
3600 fn decode(
3602 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
3603 ) -> Result<StatelessKeyManagerEvent, fidl::Error> {
3604 let (bytes, _handles) = buf.split_mut();
3605 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3606 debug_assert_eq!(tx_header.tx_id, 0);
3607 match tx_header.ordinal {
3608 _ => Err(fidl::Error::UnknownOrdinal {
3609 ordinal: tx_header.ordinal,
3610 protocol_name:
3611 <StatelessKeyManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3612 }),
3613 }
3614 }
3615}
3616
3617pub struct StatelessKeyManagerRequestStream {
3619 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3620 is_terminated: bool,
3621}
3622
3623impl std::marker::Unpin for StatelessKeyManagerRequestStream {}
3624
3625impl futures::stream::FusedStream for StatelessKeyManagerRequestStream {
3626 fn is_terminated(&self) -> bool {
3627 self.is_terminated
3628 }
3629}
3630
3631impl fidl::endpoints::RequestStream for StatelessKeyManagerRequestStream {
3632 type Protocol = StatelessKeyManagerMarker;
3633 type ControlHandle = StatelessKeyManagerControlHandle;
3634
3635 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
3636 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
3637 }
3638
3639 fn control_handle(&self) -> Self::ControlHandle {
3640 StatelessKeyManagerControlHandle { inner: self.inner.clone() }
3641 }
3642
3643 fn into_inner(
3644 self,
3645 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
3646 {
3647 (self.inner, self.is_terminated)
3648 }
3649
3650 fn from_inner(
3651 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3652 is_terminated: bool,
3653 ) -> Self {
3654 Self { inner, is_terminated }
3655 }
3656}
3657
3658impl futures::Stream for StatelessKeyManagerRequestStream {
3659 type Item = Result<StatelessKeyManagerRequest, fidl::Error>;
3660
3661 fn poll_next(
3662 mut self: std::pin::Pin<&mut Self>,
3663 cx: &mut std::task::Context<'_>,
3664 ) -> std::task::Poll<Option<Self::Item>> {
3665 let this = &mut *self;
3666 if this.inner.check_shutdown(cx) {
3667 this.is_terminated = true;
3668 return std::task::Poll::Ready(None);
3669 }
3670 if this.is_terminated {
3671 panic!("polled StatelessKeyManagerRequestStream after completion");
3672 }
3673 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
3674 |bytes, handles| {
3675 match this.inner.channel().read_etc(cx, bytes, handles) {
3676 std::task::Poll::Ready(Ok(())) => {}
3677 std::task::Poll::Pending => return std::task::Poll::Pending,
3678 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
3679 this.is_terminated = true;
3680 return std::task::Poll::Ready(None);
3681 }
3682 std::task::Poll::Ready(Err(e)) => {
3683 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
3684 e.into(),
3685 ))));
3686 }
3687 }
3688
3689 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3691
3692 std::task::Poll::Ready(Some(match header.ordinal {
3693 0x685043d9e68d5f86 => {
3694 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3695 let mut req = fidl::new_empty!(StatelessKeyManagerGetHardwareDerivedKeyRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
3696 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StatelessKeyManagerGetHardwareDerivedKeyRequest>(&header, _body_bytes, handles, &mut req)?;
3697 let control_handle = StatelessKeyManagerControlHandle {
3698 inner: this.inner.clone(),
3699 };
3700 Ok(StatelessKeyManagerRequest::GetHardwareDerivedKey {key_info: req.key_info,
3701
3702 responder: StatelessKeyManagerGetHardwareDerivedKeyResponder {
3703 control_handle: std::mem::ManuallyDrop::new(control_handle),
3704 tx_id: header.tx_id,
3705 },
3706 })
3707 }
3708 _ => Err(fidl::Error::UnknownOrdinal {
3709 ordinal: header.ordinal,
3710 protocol_name: <StatelessKeyManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3711 }),
3712 }))
3713 },
3714 )
3715 }
3716}
3717
3718#[derive(Debug)]
3719pub enum StatelessKeyManagerRequest {
3720 GetHardwareDerivedKey {
3727 key_info: Vec<u8>,
3728 responder: StatelessKeyManagerGetHardwareDerivedKeyResponder,
3729 },
3730}
3731
3732impl StatelessKeyManagerRequest {
3733 #[allow(irrefutable_let_patterns)]
3734 pub fn into_get_hardware_derived_key(
3735 self,
3736 ) -> Option<(Vec<u8>, StatelessKeyManagerGetHardwareDerivedKeyResponder)> {
3737 if let StatelessKeyManagerRequest::GetHardwareDerivedKey { key_info, responder } = self {
3738 Some((key_info, responder))
3739 } else {
3740 None
3741 }
3742 }
3743
3744 pub fn method_name(&self) -> &'static str {
3746 match *self {
3747 StatelessKeyManagerRequest::GetHardwareDerivedKey { .. } => "get_hardware_derived_key",
3748 }
3749 }
3750}
3751
3752#[derive(Debug, Clone)]
3753pub struct StatelessKeyManagerControlHandle {
3754 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3755}
3756
3757impl fidl::endpoints::ControlHandle for StatelessKeyManagerControlHandle {
3758 fn shutdown(&self) {
3759 self.inner.shutdown()
3760 }
3761
3762 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
3763 self.inner.shutdown_with_epitaph(status)
3764 }
3765
3766 fn is_closed(&self) -> bool {
3767 self.inner.channel().is_closed()
3768 }
3769 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
3770 self.inner.channel().on_closed()
3771 }
3772
3773 #[cfg(target_os = "fuchsia")]
3774 fn signal_peer(
3775 &self,
3776 clear_mask: zx::Signals,
3777 set_mask: zx::Signals,
3778 ) -> Result<(), zx_status::Status> {
3779 use fidl::Peered;
3780 self.inner.channel().signal_peer(clear_mask, set_mask)
3781 }
3782}
3783
3784impl StatelessKeyManagerControlHandle {}
3785
3786#[must_use = "FIDL methods require a response to be sent"]
3787#[derive(Debug)]
3788pub struct StatelessKeyManagerGetHardwareDerivedKeyResponder {
3789 control_handle: std::mem::ManuallyDrop<StatelessKeyManagerControlHandle>,
3790 tx_id: u32,
3791}
3792
3793impl std::ops::Drop for StatelessKeyManagerGetHardwareDerivedKeyResponder {
3797 fn drop(&mut self) {
3798 self.control_handle.shutdown();
3799 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3801 }
3802}
3803
3804impl fidl::endpoints::Responder for StatelessKeyManagerGetHardwareDerivedKeyResponder {
3805 type ControlHandle = StatelessKeyManagerControlHandle;
3806
3807 fn control_handle(&self) -> &StatelessKeyManagerControlHandle {
3808 &self.control_handle
3809 }
3810
3811 fn drop_without_shutdown(mut self) {
3812 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3814 std::mem::forget(self);
3816 }
3817}
3818
3819impl StatelessKeyManagerGetHardwareDerivedKeyResponder {
3820 pub fn send(self, mut result: Result<&[u8], Error>) -> Result<(), fidl::Error> {
3824 let _result = self.send_raw(result);
3825 if _result.is_err() {
3826 self.control_handle.shutdown();
3827 }
3828 self.drop_without_shutdown();
3829 _result
3830 }
3831
3832 pub fn send_no_shutdown_on_err(
3834 self,
3835 mut result: Result<&[u8], Error>,
3836 ) -> Result<(), fidl::Error> {
3837 let _result = self.send_raw(result);
3838 self.drop_without_shutdown();
3839 _result
3840 }
3841
3842 fn send_raw(&self, mut result: Result<&[u8], Error>) -> Result<(), fidl::Error> {
3843 self.control_handle.inner.send::<fidl::encoding::ResultType<
3844 StatelessKeyManagerGetHardwareDerivedKeyResponse,
3845 Error,
3846 >>(
3847 result.map(|derived_key| (derived_key,)),
3848 self.tx_id,
3849 0x685043d9e68d5f86,
3850 fidl::encoding::DynamicFlags::empty(),
3851 )
3852 }
3853}
3854
3855mod internal {
3856 use super::*;
3857
3858 impl fidl::encoding::ResourceTypeMarker for AsymmetricPrivateKeySignRequest {
3859 type Borrowed<'a> = &'a mut Self;
3860 fn take_or_borrow<'a>(
3861 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
3862 ) -> Self::Borrowed<'a> {
3863 value
3864 }
3865 }
3866
3867 unsafe impl fidl::encoding::TypeMarker for AsymmetricPrivateKeySignRequest {
3868 type Owned = Self;
3869
3870 #[inline(always)]
3871 fn inline_align(_context: fidl::encoding::Context) -> usize {
3872 8
3873 }
3874
3875 #[inline(always)]
3876 fn inline_size(_context: fidl::encoding::Context) -> usize {
3877 16
3878 }
3879 }
3880
3881 unsafe impl
3882 fidl::encoding::Encode<
3883 AsymmetricPrivateKeySignRequest,
3884 fidl::encoding::DefaultFuchsiaResourceDialect,
3885 > for &mut AsymmetricPrivateKeySignRequest
3886 {
3887 #[inline]
3888 unsafe fn encode(
3889 self,
3890 encoder: &mut fidl::encoding::Encoder<
3891 '_,
3892 fidl::encoding::DefaultFuchsiaResourceDialect,
3893 >,
3894 offset: usize,
3895 _depth: fidl::encoding::Depth,
3896 ) -> fidl::Result<()> {
3897 encoder.debug_check_bounds::<AsymmetricPrivateKeySignRequest>(offset);
3898 fidl::encoding::Encode::<
3900 AsymmetricPrivateKeySignRequest,
3901 fidl::encoding::DefaultFuchsiaResourceDialect,
3902 >::encode(
3903 (<fidl_fuchsia_mem::Buffer as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
3904 &mut self.data,
3905 ),),
3906 encoder,
3907 offset,
3908 _depth,
3909 )
3910 }
3911 }
3912 unsafe impl<
3913 T0: fidl::encoding::Encode<
3914 fidl_fuchsia_mem::Buffer,
3915 fidl::encoding::DefaultFuchsiaResourceDialect,
3916 >,
3917 >
3918 fidl::encoding::Encode<
3919 AsymmetricPrivateKeySignRequest,
3920 fidl::encoding::DefaultFuchsiaResourceDialect,
3921 > for (T0,)
3922 {
3923 #[inline]
3924 unsafe fn encode(
3925 self,
3926 encoder: &mut fidl::encoding::Encoder<
3927 '_,
3928 fidl::encoding::DefaultFuchsiaResourceDialect,
3929 >,
3930 offset: usize,
3931 depth: fidl::encoding::Depth,
3932 ) -> fidl::Result<()> {
3933 encoder.debug_check_bounds::<AsymmetricPrivateKeySignRequest>(offset);
3934 self.0.encode(encoder, offset + 0, depth)?;
3938 Ok(())
3939 }
3940 }
3941
3942 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
3943 for AsymmetricPrivateKeySignRequest
3944 {
3945 #[inline(always)]
3946 fn new_empty() -> Self {
3947 Self {
3948 data: fidl::new_empty!(
3949 fidl_fuchsia_mem::Buffer,
3950 fidl::encoding::DefaultFuchsiaResourceDialect
3951 ),
3952 }
3953 }
3954
3955 #[inline]
3956 unsafe fn decode(
3957 &mut self,
3958 decoder: &mut fidl::encoding::Decoder<
3959 '_,
3960 fidl::encoding::DefaultFuchsiaResourceDialect,
3961 >,
3962 offset: usize,
3963 _depth: fidl::encoding::Depth,
3964 ) -> fidl::Result<()> {
3965 decoder.debug_check_bounds::<Self>(offset);
3966 fidl::decode!(
3968 fidl_fuchsia_mem::Buffer,
3969 fidl::encoding::DefaultFuchsiaResourceDialect,
3970 &mut self.data,
3971 decoder,
3972 offset + 0,
3973 _depth
3974 )?;
3975 Ok(())
3976 }
3977 }
3978
3979 impl fidl::encoding::ResourceTypeMarker for KeyManagerGenerateAsymmetricKeyRequest {
3980 type Borrowed<'a> = &'a mut Self;
3981 fn take_or_borrow<'a>(
3982 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
3983 ) -> Self::Borrowed<'a> {
3984 value
3985 }
3986 }
3987
3988 unsafe impl fidl::encoding::TypeMarker for KeyManagerGenerateAsymmetricKeyRequest {
3989 type Owned = Self;
3990
3991 #[inline(always)]
3992 fn inline_align(_context: fidl::encoding::Context) -> usize {
3993 8
3994 }
3995
3996 #[inline(always)]
3997 fn inline_size(_context: fidl::encoding::Context) -> usize {
3998 24
3999 }
4000 }
4001
4002 unsafe impl
4003 fidl::encoding::Encode<
4004 KeyManagerGenerateAsymmetricKeyRequest,
4005 fidl::encoding::DefaultFuchsiaResourceDialect,
4006 > for &mut KeyManagerGenerateAsymmetricKeyRequest
4007 {
4008 #[inline]
4009 unsafe fn encode(
4010 self,
4011 encoder: &mut fidl::encoding::Encoder<
4012 '_,
4013 fidl::encoding::DefaultFuchsiaResourceDialect,
4014 >,
4015 offset: usize,
4016 _depth: fidl::encoding::Depth,
4017 ) -> fidl::Result<()> {
4018 encoder.debug_check_bounds::<KeyManagerGenerateAsymmetricKeyRequest>(offset);
4019 fidl::encoding::Encode::<
4021 KeyManagerGenerateAsymmetricKeyRequest,
4022 fidl::encoding::DefaultFuchsiaResourceDialect,
4023 >::encode(
4024 (
4025 <fidl::encoding::BoundedString<32> as fidl::encoding::ValueTypeMarker>::borrow(
4026 &self.key_name,
4027 ),
4028 <fidl::encoding::Endpoint<
4029 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
4030 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
4031 &mut self.key
4032 ),
4033 ),
4034 encoder,
4035 offset,
4036 _depth,
4037 )
4038 }
4039 }
4040 unsafe impl<
4041 T0: fidl::encoding::Encode<
4042 fidl::encoding::BoundedString<32>,
4043 fidl::encoding::DefaultFuchsiaResourceDialect,
4044 >,
4045 T1: fidl::encoding::Encode<
4046 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>>,
4047 fidl::encoding::DefaultFuchsiaResourceDialect,
4048 >,
4049 >
4050 fidl::encoding::Encode<
4051 KeyManagerGenerateAsymmetricKeyRequest,
4052 fidl::encoding::DefaultFuchsiaResourceDialect,
4053 > for (T0, T1)
4054 {
4055 #[inline]
4056 unsafe fn encode(
4057 self,
4058 encoder: &mut fidl::encoding::Encoder<
4059 '_,
4060 fidl::encoding::DefaultFuchsiaResourceDialect,
4061 >,
4062 offset: usize,
4063 depth: fidl::encoding::Depth,
4064 ) -> fidl::Result<()> {
4065 encoder.debug_check_bounds::<KeyManagerGenerateAsymmetricKeyRequest>(offset);
4066 unsafe {
4069 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
4070 (ptr as *mut u64).write_unaligned(0);
4071 }
4072 self.0.encode(encoder, offset + 0, depth)?;
4074 self.1.encode(encoder, offset + 16, depth)?;
4075 Ok(())
4076 }
4077 }
4078
4079 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
4080 for KeyManagerGenerateAsymmetricKeyRequest
4081 {
4082 #[inline(always)]
4083 fn new_empty() -> Self {
4084 Self {
4085 key_name: fidl::new_empty!(
4086 fidl::encoding::BoundedString<32>,
4087 fidl::encoding::DefaultFuchsiaResourceDialect
4088 ),
4089 key: fidl::new_empty!(
4090 fidl::encoding::Endpoint<
4091 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
4092 >,
4093 fidl::encoding::DefaultFuchsiaResourceDialect
4094 ),
4095 }
4096 }
4097
4098 #[inline]
4099 unsafe fn decode(
4100 &mut self,
4101 decoder: &mut fidl::encoding::Decoder<
4102 '_,
4103 fidl::encoding::DefaultFuchsiaResourceDialect,
4104 >,
4105 offset: usize,
4106 _depth: fidl::encoding::Depth,
4107 ) -> fidl::Result<()> {
4108 decoder.debug_check_bounds::<Self>(offset);
4109 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
4111 let padval = unsafe { (ptr as *const u64).read_unaligned() };
4112 let mask = 0xffffffff00000000u64;
4113 let maskedval = padval & mask;
4114 if maskedval != 0 {
4115 return Err(fidl::Error::NonZeroPadding {
4116 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
4117 });
4118 }
4119 fidl::decode!(
4120 fidl::encoding::BoundedString<32>,
4121 fidl::encoding::DefaultFuchsiaResourceDialect,
4122 &mut self.key_name,
4123 decoder,
4124 offset + 0,
4125 _depth
4126 )?;
4127 fidl::decode!(
4128 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>>,
4129 fidl::encoding::DefaultFuchsiaResourceDialect,
4130 &mut self.key,
4131 decoder,
4132 offset + 16,
4133 _depth
4134 )?;
4135 Ok(())
4136 }
4137 }
4138
4139 impl fidl::encoding::ResourceTypeMarker for KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest {
4140 type Borrowed<'a> = &'a mut Self;
4141 fn take_or_borrow<'a>(
4142 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
4143 ) -> Self::Borrowed<'a> {
4144 value
4145 }
4146 }
4147
4148 unsafe impl fidl::encoding::TypeMarker for KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest {
4149 type Owned = Self;
4150
4151 #[inline(always)]
4152 fn inline_align(_context: fidl::encoding::Context) -> usize {
4153 8
4154 }
4155
4156 #[inline(always)]
4157 fn inline_size(_context: fidl::encoding::Context) -> usize {
4158 24
4159 }
4160 }
4161
4162 unsafe impl
4163 fidl::encoding::Encode<
4164 KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest,
4165 fidl::encoding::DefaultFuchsiaResourceDialect,
4166 > for &mut KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest
4167 {
4168 #[inline]
4169 unsafe fn encode(
4170 self,
4171 encoder: &mut fidl::encoding::Encoder<
4172 '_,
4173 fidl::encoding::DefaultFuchsiaResourceDialect,
4174 >,
4175 offset: usize,
4176 _depth: fidl::encoding::Depth,
4177 ) -> fidl::Result<()> {
4178 encoder
4179 .debug_check_bounds::<KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest>(offset);
4180 fidl::encoding::Encode::<
4182 KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest,
4183 fidl::encoding::DefaultFuchsiaResourceDialect,
4184 >::encode(
4185 (
4186 <fidl::encoding::BoundedString<32> as fidl::encoding::ValueTypeMarker>::borrow(
4187 &self.key_name,
4188 ),
4189 <AsymmetricKeyAlgorithm as fidl::encoding::ValueTypeMarker>::borrow(
4190 &self.key_algorithm,
4191 ),
4192 <fidl::encoding::Endpoint<
4193 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
4194 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
4195 &mut self.key
4196 ),
4197 ),
4198 encoder,
4199 offset,
4200 _depth,
4201 )
4202 }
4203 }
4204 unsafe impl<
4205 T0: fidl::encoding::Encode<
4206 fidl::encoding::BoundedString<32>,
4207 fidl::encoding::DefaultFuchsiaResourceDialect,
4208 >,
4209 T1: fidl::encoding::Encode<
4210 AsymmetricKeyAlgorithm,
4211 fidl::encoding::DefaultFuchsiaResourceDialect,
4212 >,
4213 T2: fidl::encoding::Encode<
4214 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>>,
4215 fidl::encoding::DefaultFuchsiaResourceDialect,
4216 >,
4217 >
4218 fidl::encoding::Encode<
4219 KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest,
4220 fidl::encoding::DefaultFuchsiaResourceDialect,
4221 > for (T0, T1, T2)
4222 {
4223 #[inline]
4224 unsafe fn encode(
4225 self,
4226 encoder: &mut fidl::encoding::Encoder<
4227 '_,
4228 fidl::encoding::DefaultFuchsiaResourceDialect,
4229 >,
4230 offset: usize,
4231 depth: fidl::encoding::Depth,
4232 ) -> fidl::Result<()> {
4233 encoder
4234 .debug_check_bounds::<KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest>(offset);
4235 self.0.encode(encoder, offset + 0, depth)?;
4239 self.1.encode(encoder, offset + 16, depth)?;
4240 self.2.encode(encoder, offset + 20, depth)?;
4241 Ok(())
4242 }
4243 }
4244
4245 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
4246 for KeyManagerGenerateAsymmetricKeyWithAlgorithmRequest
4247 {
4248 #[inline(always)]
4249 fn new_empty() -> Self {
4250 Self {
4251 key_name: fidl::new_empty!(
4252 fidl::encoding::BoundedString<32>,
4253 fidl::encoding::DefaultFuchsiaResourceDialect
4254 ),
4255 key_algorithm: fidl::new_empty!(
4256 AsymmetricKeyAlgorithm,
4257 fidl::encoding::DefaultFuchsiaResourceDialect
4258 ),
4259 key: fidl::new_empty!(
4260 fidl::encoding::Endpoint<
4261 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
4262 >,
4263 fidl::encoding::DefaultFuchsiaResourceDialect
4264 ),
4265 }
4266 }
4267
4268 #[inline]
4269 unsafe fn decode(
4270 &mut self,
4271 decoder: &mut fidl::encoding::Decoder<
4272 '_,
4273 fidl::encoding::DefaultFuchsiaResourceDialect,
4274 >,
4275 offset: usize,
4276 _depth: fidl::encoding::Depth,
4277 ) -> fidl::Result<()> {
4278 decoder.debug_check_bounds::<Self>(offset);
4279 fidl::decode!(
4281 fidl::encoding::BoundedString<32>,
4282 fidl::encoding::DefaultFuchsiaResourceDialect,
4283 &mut self.key_name,
4284 decoder,
4285 offset + 0,
4286 _depth
4287 )?;
4288 fidl::decode!(
4289 AsymmetricKeyAlgorithm,
4290 fidl::encoding::DefaultFuchsiaResourceDialect,
4291 &mut self.key_algorithm,
4292 decoder,
4293 offset + 16,
4294 _depth
4295 )?;
4296 fidl::decode!(
4297 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>>,
4298 fidl::encoding::DefaultFuchsiaResourceDialect,
4299 &mut self.key,
4300 decoder,
4301 offset + 20,
4302 _depth
4303 )?;
4304 Ok(())
4305 }
4306 }
4307
4308 impl fidl::encoding::ResourceTypeMarker for KeyManagerGetAsymmetricPrivateKeyRequest {
4309 type Borrowed<'a> = &'a mut Self;
4310 fn take_or_borrow<'a>(
4311 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
4312 ) -> Self::Borrowed<'a> {
4313 value
4314 }
4315 }
4316
4317 unsafe impl fidl::encoding::TypeMarker for KeyManagerGetAsymmetricPrivateKeyRequest {
4318 type Owned = Self;
4319
4320 #[inline(always)]
4321 fn inline_align(_context: fidl::encoding::Context) -> usize {
4322 8
4323 }
4324
4325 #[inline(always)]
4326 fn inline_size(_context: fidl::encoding::Context) -> usize {
4327 24
4328 }
4329 }
4330
4331 unsafe impl
4332 fidl::encoding::Encode<
4333 KeyManagerGetAsymmetricPrivateKeyRequest,
4334 fidl::encoding::DefaultFuchsiaResourceDialect,
4335 > for &mut KeyManagerGetAsymmetricPrivateKeyRequest
4336 {
4337 #[inline]
4338 unsafe fn encode(
4339 self,
4340 encoder: &mut fidl::encoding::Encoder<
4341 '_,
4342 fidl::encoding::DefaultFuchsiaResourceDialect,
4343 >,
4344 offset: usize,
4345 _depth: fidl::encoding::Depth,
4346 ) -> fidl::Result<()> {
4347 encoder.debug_check_bounds::<KeyManagerGetAsymmetricPrivateKeyRequest>(offset);
4348 fidl::encoding::Encode::<
4350 KeyManagerGetAsymmetricPrivateKeyRequest,
4351 fidl::encoding::DefaultFuchsiaResourceDialect,
4352 >::encode(
4353 (
4354 <fidl::encoding::BoundedString<32> as fidl::encoding::ValueTypeMarker>::borrow(
4355 &self.key_name,
4356 ),
4357 <fidl::encoding::Endpoint<
4358 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
4359 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
4360 &mut self.key
4361 ),
4362 ),
4363 encoder,
4364 offset,
4365 _depth,
4366 )
4367 }
4368 }
4369 unsafe impl<
4370 T0: fidl::encoding::Encode<
4371 fidl::encoding::BoundedString<32>,
4372 fidl::encoding::DefaultFuchsiaResourceDialect,
4373 >,
4374 T1: fidl::encoding::Encode<
4375 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>>,
4376 fidl::encoding::DefaultFuchsiaResourceDialect,
4377 >,
4378 >
4379 fidl::encoding::Encode<
4380 KeyManagerGetAsymmetricPrivateKeyRequest,
4381 fidl::encoding::DefaultFuchsiaResourceDialect,
4382 > for (T0, T1)
4383 {
4384 #[inline]
4385 unsafe fn encode(
4386 self,
4387 encoder: &mut fidl::encoding::Encoder<
4388 '_,
4389 fidl::encoding::DefaultFuchsiaResourceDialect,
4390 >,
4391 offset: usize,
4392 depth: fidl::encoding::Depth,
4393 ) -> fidl::Result<()> {
4394 encoder.debug_check_bounds::<KeyManagerGetAsymmetricPrivateKeyRequest>(offset);
4395 unsafe {
4398 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
4399 (ptr as *mut u64).write_unaligned(0);
4400 }
4401 self.0.encode(encoder, offset + 0, depth)?;
4403 self.1.encode(encoder, offset + 16, depth)?;
4404 Ok(())
4405 }
4406 }
4407
4408 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
4409 for KeyManagerGetAsymmetricPrivateKeyRequest
4410 {
4411 #[inline(always)]
4412 fn new_empty() -> Self {
4413 Self {
4414 key_name: fidl::new_empty!(
4415 fidl::encoding::BoundedString<32>,
4416 fidl::encoding::DefaultFuchsiaResourceDialect
4417 ),
4418 key: fidl::new_empty!(
4419 fidl::encoding::Endpoint<
4420 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
4421 >,
4422 fidl::encoding::DefaultFuchsiaResourceDialect
4423 ),
4424 }
4425 }
4426
4427 #[inline]
4428 unsafe fn decode(
4429 &mut self,
4430 decoder: &mut fidl::encoding::Decoder<
4431 '_,
4432 fidl::encoding::DefaultFuchsiaResourceDialect,
4433 >,
4434 offset: usize,
4435 _depth: fidl::encoding::Depth,
4436 ) -> fidl::Result<()> {
4437 decoder.debug_check_bounds::<Self>(offset);
4438 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
4440 let padval = unsafe { (ptr as *const u64).read_unaligned() };
4441 let mask = 0xffffffff00000000u64;
4442 let maskedval = padval & mask;
4443 if maskedval != 0 {
4444 return Err(fidl::Error::NonZeroPadding {
4445 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
4446 });
4447 }
4448 fidl::decode!(
4449 fidl::encoding::BoundedString<32>,
4450 fidl::encoding::DefaultFuchsiaResourceDialect,
4451 &mut self.key_name,
4452 decoder,
4453 offset + 0,
4454 _depth
4455 )?;
4456 fidl::decode!(
4457 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>>,
4458 fidl::encoding::DefaultFuchsiaResourceDialect,
4459 &mut self.key,
4460 decoder,
4461 offset + 16,
4462 _depth
4463 )?;
4464 Ok(())
4465 }
4466 }
4467
4468 impl fidl::encoding::ResourceTypeMarker for KeyManagerImportAsymmetricPrivateKeyRequest {
4469 type Borrowed<'a> = &'a mut Self;
4470 fn take_or_borrow<'a>(
4471 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
4472 ) -> Self::Borrowed<'a> {
4473 value
4474 }
4475 }
4476
4477 unsafe impl fidl::encoding::TypeMarker for KeyManagerImportAsymmetricPrivateKeyRequest {
4478 type Owned = Self;
4479
4480 #[inline(always)]
4481 fn inline_align(_context: fidl::encoding::Context) -> usize {
4482 8
4483 }
4484
4485 #[inline(always)]
4486 fn inline_size(_context: fidl::encoding::Context) -> usize {
4487 40
4488 }
4489 }
4490
4491 unsafe impl
4492 fidl::encoding::Encode<
4493 KeyManagerImportAsymmetricPrivateKeyRequest,
4494 fidl::encoding::DefaultFuchsiaResourceDialect,
4495 > for &mut KeyManagerImportAsymmetricPrivateKeyRequest
4496 {
4497 #[inline]
4498 unsafe fn encode(
4499 self,
4500 encoder: &mut fidl::encoding::Encoder<
4501 '_,
4502 fidl::encoding::DefaultFuchsiaResourceDialect,
4503 >,
4504 offset: usize,
4505 _depth: fidl::encoding::Depth,
4506 ) -> fidl::Result<()> {
4507 encoder.debug_check_bounds::<KeyManagerImportAsymmetricPrivateKeyRequest>(offset);
4508 fidl::encoding::Encode::<KeyManagerImportAsymmetricPrivateKeyRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
4510 (
4511 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
4512 <fidl::encoding::BoundedString<32> as fidl::encoding::ValueTypeMarker>::borrow(&self.key_name),
4513 <AsymmetricKeyAlgorithm as fidl::encoding::ValueTypeMarker>::borrow(&self.key_algorithm),
4514 <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.key),
4515 ),
4516 encoder, offset, _depth
4517 )
4518 }
4519 }
4520 unsafe impl<
4521 T0: fidl::encoding::Encode<
4522 fidl::encoding::UnboundedVector<u8>,
4523 fidl::encoding::DefaultFuchsiaResourceDialect,
4524 >,
4525 T1: fidl::encoding::Encode<
4526 fidl::encoding::BoundedString<32>,
4527 fidl::encoding::DefaultFuchsiaResourceDialect,
4528 >,
4529 T2: fidl::encoding::Encode<
4530 AsymmetricKeyAlgorithm,
4531 fidl::encoding::DefaultFuchsiaResourceDialect,
4532 >,
4533 T3: fidl::encoding::Encode<
4534 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>>,
4535 fidl::encoding::DefaultFuchsiaResourceDialect,
4536 >,
4537 >
4538 fidl::encoding::Encode<
4539 KeyManagerImportAsymmetricPrivateKeyRequest,
4540 fidl::encoding::DefaultFuchsiaResourceDialect,
4541 > for (T0, T1, T2, T3)
4542 {
4543 #[inline]
4544 unsafe fn encode(
4545 self,
4546 encoder: &mut fidl::encoding::Encoder<
4547 '_,
4548 fidl::encoding::DefaultFuchsiaResourceDialect,
4549 >,
4550 offset: usize,
4551 depth: fidl::encoding::Depth,
4552 ) -> fidl::Result<()> {
4553 encoder.debug_check_bounds::<KeyManagerImportAsymmetricPrivateKeyRequest>(offset);
4554 self.0.encode(encoder, offset + 0, depth)?;
4558 self.1.encode(encoder, offset + 16, depth)?;
4559 self.2.encode(encoder, offset + 32, depth)?;
4560 self.3.encode(encoder, offset + 36, depth)?;
4561 Ok(())
4562 }
4563 }
4564
4565 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
4566 for KeyManagerImportAsymmetricPrivateKeyRequest
4567 {
4568 #[inline(always)]
4569 fn new_empty() -> Self {
4570 Self {
4571 data: fidl::new_empty!(
4572 fidl::encoding::UnboundedVector<u8>,
4573 fidl::encoding::DefaultFuchsiaResourceDialect
4574 ),
4575 key_name: fidl::new_empty!(
4576 fidl::encoding::BoundedString<32>,
4577 fidl::encoding::DefaultFuchsiaResourceDialect
4578 ),
4579 key_algorithm: fidl::new_empty!(
4580 AsymmetricKeyAlgorithm,
4581 fidl::encoding::DefaultFuchsiaResourceDialect
4582 ),
4583 key: fidl::new_empty!(
4584 fidl::encoding::Endpoint<
4585 fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>,
4586 >,
4587 fidl::encoding::DefaultFuchsiaResourceDialect
4588 ),
4589 }
4590 }
4591
4592 #[inline]
4593 unsafe fn decode(
4594 &mut self,
4595 decoder: &mut fidl::encoding::Decoder<
4596 '_,
4597 fidl::encoding::DefaultFuchsiaResourceDialect,
4598 >,
4599 offset: usize,
4600 _depth: fidl::encoding::Depth,
4601 ) -> fidl::Result<()> {
4602 decoder.debug_check_bounds::<Self>(offset);
4603 fidl::decode!(
4605 fidl::encoding::UnboundedVector<u8>,
4606 fidl::encoding::DefaultFuchsiaResourceDialect,
4607 &mut self.data,
4608 decoder,
4609 offset + 0,
4610 _depth
4611 )?;
4612 fidl::decode!(
4613 fidl::encoding::BoundedString<32>,
4614 fidl::encoding::DefaultFuchsiaResourceDialect,
4615 &mut self.key_name,
4616 decoder,
4617 offset + 16,
4618 _depth
4619 )?;
4620 fidl::decode!(
4621 AsymmetricKeyAlgorithm,
4622 fidl::encoding::DefaultFuchsiaResourceDialect,
4623 &mut self.key_algorithm,
4624 decoder,
4625 offset + 32,
4626 _depth
4627 )?;
4628 fidl::decode!(
4629 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<AsymmetricPrivateKeyMarker>>,
4630 fidl::encoding::DefaultFuchsiaResourceDialect,
4631 &mut self.key,
4632 decoder,
4633 offset + 36,
4634 _depth
4635 )?;
4636 Ok(())
4637 }
4638 }
4639
4640 impl fidl::encoding::ResourceTypeMarker for KeyManagerSealDataRequest {
4641 type Borrowed<'a> = &'a mut Self;
4642 fn take_or_borrow<'a>(
4643 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
4644 ) -> Self::Borrowed<'a> {
4645 value
4646 }
4647 }
4648
4649 unsafe impl fidl::encoding::TypeMarker for KeyManagerSealDataRequest {
4650 type Owned = Self;
4651
4652 #[inline(always)]
4653 fn inline_align(_context: fidl::encoding::Context) -> usize {
4654 8
4655 }
4656
4657 #[inline(always)]
4658 fn inline_size(_context: fidl::encoding::Context) -> usize {
4659 16
4660 }
4661 }
4662
4663 unsafe impl
4664 fidl::encoding::Encode<
4665 KeyManagerSealDataRequest,
4666 fidl::encoding::DefaultFuchsiaResourceDialect,
4667 > for &mut KeyManagerSealDataRequest
4668 {
4669 #[inline]
4670 unsafe fn encode(
4671 self,
4672 encoder: &mut fidl::encoding::Encoder<
4673 '_,
4674 fidl::encoding::DefaultFuchsiaResourceDialect,
4675 >,
4676 offset: usize,
4677 _depth: fidl::encoding::Depth,
4678 ) -> fidl::Result<()> {
4679 encoder.debug_check_bounds::<KeyManagerSealDataRequest>(offset);
4680 fidl::encoding::Encode::<
4682 KeyManagerSealDataRequest,
4683 fidl::encoding::DefaultFuchsiaResourceDialect,
4684 >::encode(
4685 (<fidl_fuchsia_mem::Buffer as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
4686 &mut self.plain_text,
4687 ),),
4688 encoder,
4689 offset,
4690 _depth,
4691 )
4692 }
4693 }
4694 unsafe impl<
4695 T0: fidl::encoding::Encode<
4696 fidl_fuchsia_mem::Buffer,
4697 fidl::encoding::DefaultFuchsiaResourceDialect,
4698 >,
4699 >
4700 fidl::encoding::Encode<
4701 KeyManagerSealDataRequest,
4702 fidl::encoding::DefaultFuchsiaResourceDialect,
4703 > for (T0,)
4704 {
4705 #[inline]
4706 unsafe fn encode(
4707 self,
4708 encoder: &mut fidl::encoding::Encoder<
4709 '_,
4710 fidl::encoding::DefaultFuchsiaResourceDialect,
4711 >,
4712 offset: usize,
4713 depth: fidl::encoding::Depth,
4714 ) -> fidl::Result<()> {
4715 encoder.debug_check_bounds::<KeyManagerSealDataRequest>(offset);
4716 self.0.encode(encoder, offset + 0, depth)?;
4720 Ok(())
4721 }
4722 }
4723
4724 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
4725 for KeyManagerSealDataRequest
4726 {
4727 #[inline(always)]
4728 fn new_empty() -> Self {
4729 Self {
4730 plain_text: fidl::new_empty!(
4731 fidl_fuchsia_mem::Buffer,
4732 fidl::encoding::DefaultFuchsiaResourceDialect
4733 ),
4734 }
4735 }
4736
4737 #[inline]
4738 unsafe fn decode(
4739 &mut self,
4740 decoder: &mut fidl::encoding::Decoder<
4741 '_,
4742 fidl::encoding::DefaultFuchsiaResourceDialect,
4743 >,
4744 offset: usize,
4745 _depth: fidl::encoding::Depth,
4746 ) -> fidl::Result<()> {
4747 decoder.debug_check_bounds::<Self>(offset);
4748 fidl::decode!(
4750 fidl_fuchsia_mem::Buffer,
4751 fidl::encoding::DefaultFuchsiaResourceDialect,
4752 &mut self.plain_text,
4753 decoder,
4754 offset + 0,
4755 _depth
4756 )?;
4757 Ok(())
4758 }
4759 }
4760
4761 impl fidl::encoding::ResourceTypeMarker for KeyManagerUnsealDataRequest {
4762 type Borrowed<'a> = &'a mut Self;
4763 fn take_or_borrow<'a>(
4764 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
4765 ) -> Self::Borrowed<'a> {
4766 value
4767 }
4768 }
4769
4770 unsafe impl fidl::encoding::TypeMarker for KeyManagerUnsealDataRequest {
4771 type Owned = Self;
4772
4773 #[inline(always)]
4774 fn inline_align(_context: fidl::encoding::Context) -> usize {
4775 8
4776 }
4777
4778 #[inline(always)]
4779 fn inline_size(_context: fidl::encoding::Context) -> usize {
4780 16
4781 }
4782 }
4783
4784 unsafe impl
4785 fidl::encoding::Encode<
4786 KeyManagerUnsealDataRequest,
4787 fidl::encoding::DefaultFuchsiaResourceDialect,
4788 > for &mut KeyManagerUnsealDataRequest
4789 {
4790 #[inline]
4791 unsafe fn encode(
4792 self,
4793 encoder: &mut fidl::encoding::Encoder<
4794 '_,
4795 fidl::encoding::DefaultFuchsiaResourceDialect,
4796 >,
4797 offset: usize,
4798 _depth: fidl::encoding::Depth,
4799 ) -> fidl::Result<()> {
4800 encoder.debug_check_bounds::<KeyManagerUnsealDataRequest>(offset);
4801 fidl::encoding::Encode::<
4803 KeyManagerUnsealDataRequest,
4804 fidl::encoding::DefaultFuchsiaResourceDialect,
4805 >::encode(
4806 (<fidl_fuchsia_mem::Buffer as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
4807 &mut self.cipher_text,
4808 ),),
4809 encoder,
4810 offset,
4811 _depth,
4812 )
4813 }
4814 }
4815 unsafe impl<
4816 T0: fidl::encoding::Encode<
4817 fidl_fuchsia_mem::Buffer,
4818 fidl::encoding::DefaultFuchsiaResourceDialect,
4819 >,
4820 >
4821 fidl::encoding::Encode<
4822 KeyManagerUnsealDataRequest,
4823 fidl::encoding::DefaultFuchsiaResourceDialect,
4824 > for (T0,)
4825 {
4826 #[inline]
4827 unsafe fn encode(
4828 self,
4829 encoder: &mut fidl::encoding::Encoder<
4830 '_,
4831 fidl::encoding::DefaultFuchsiaResourceDialect,
4832 >,
4833 offset: usize,
4834 depth: fidl::encoding::Depth,
4835 ) -> fidl::Result<()> {
4836 encoder.debug_check_bounds::<KeyManagerUnsealDataRequest>(offset);
4837 self.0.encode(encoder, offset + 0, depth)?;
4841 Ok(())
4842 }
4843 }
4844
4845 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
4846 for KeyManagerUnsealDataRequest
4847 {
4848 #[inline(always)]
4849 fn new_empty() -> Self {
4850 Self {
4851 cipher_text: fidl::new_empty!(
4852 fidl_fuchsia_mem::Buffer,
4853 fidl::encoding::DefaultFuchsiaResourceDialect
4854 ),
4855 }
4856 }
4857
4858 #[inline]
4859 unsafe fn decode(
4860 &mut self,
4861 decoder: &mut fidl::encoding::Decoder<
4862 '_,
4863 fidl::encoding::DefaultFuchsiaResourceDialect,
4864 >,
4865 offset: usize,
4866 _depth: fidl::encoding::Depth,
4867 ) -> fidl::Result<()> {
4868 decoder.debug_check_bounds::<Self>(offset);
4869 fidl::decode!(
4871 fidl_fuchsia_mem::Buffer,
4872 fidl::encoding::DefaultFuchsiaResourceDialect,
4873 &mut self.cipher_text,
4874 decoder,
4875 offset + 0,
4876 _depth
4877 )?;
4878 Ok(())
4879 }
4880 }
4881
4882 impl fidl::encoding::ResourceTypeMarker for KeyManagerSealDataResponse {
4883 type Borrowed<'a> = &'a mut Self;
4884 fn take_or_borrow<'a>(
4885 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
4886 ) -> Self::Borrowed<'a> {
4887 value
4888 }
4889 }
4890
4891 unsafe impl fidl::encoding::TypeMarker for KeyManagerSealDataResponse {
4892 type Owned = Self;
4893
4894 #[inline(always)]
4895 fn inline_align(_context: fidl::encoding::Context) -> usize {
4896 8
4897 }
4898
4899 #[inline(always)]
4900 fn inline_size(_context: fidl::encoding::Context) -> usize {
4901 16
4902 }
4903 }
4904
4905 unsafe impl
4906 fidl::encoding::Encode<
4907 KeyManagerSealDataResponse,
4908 fidl::encoding::DefaultFuchsiaResourceDialect,
4909 > for &mut KeyManagerSealDataResponse
4910 {
4911 #[inline]
4912 unsafe fn encode(
4913 self,
4914 encoder: &mut fidl::encoding::Encoder<
4915 '_,
4916 fidl::encoding::DefaultFuchsiaResourceDialect,
4917 >,
4918 offset: usize,
4919 _depth: fidl::encoding::Depth,
4920 ) -> fidl::Result<()> {
4921 encoder.debug_check_bounds::<KeyManagerSealDataResponse>(offset);
4922 fidl::encoding::Encode::<
4924 KeyManagerSealDataResponse,
4925 fidl::encoding::DefaultFuchsiaResourceDialect,
4926 >::encode(
4927 (<fidl_fuchsia_mem::Buffer as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
4928 &mut self.cipher_text,
4929 ),),
4930 encoder,
4931 offset,
4932 _depth,
4933 )
4934 }
4935 }
4936 unsafe impl<
4937 T0: fidl::encoding::Encode<
4938 fidl_fuchsia_mem::Buffer,
4939 fidl::encoding::DefaultFuchsiaResourceDialect,
4940 >,
4941 >
4942 fidl::encoding::Encode<
4943 KeyManagerSealDataResponse,
4944 fidl::encoding::DefaultFuchsiaResourceDialect,
4945 > for (T0,)
4946 {
4947 #[inline]
4948 unsafe fn encode(
4949 self,
4950 encoder: &mut fidl::encoding::Encoder<
4951 '_,
4952 fidl::encoding::DefaultFuchsiaResourceDialect,
4953 >,
4954 offset: usize,
4955 depth: fidl::encoding::Depth,
4956 ) -> fidl::Result<()> {
4957 encoder.debug_check_bounds::<KeyManagerSealDataResponse>(offset);
4958 self.0.encode(encoder, offset + 0, depth)?;
4962 Ok(())
4963 }
4964 }
4965
4966 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
4967 for KeyManagerSealDataResponse
4968 {
4969 #[inline(always)]
4970 fn new_empty() -> Self {
4971 Self {
4972 cipher_text: fidl::new_empty!(
4973 fidl_fuchsia_mem::Buffer,
4974 fidl::encoding::DefaultFuchsiaResourceDialect
4975 ),
4976 }
4977 }
4978
4979 #[inline]
4980 unsafe fn decode(
4981 &mut self,
4982 decoder: &mut fidl::encoding::Decoder<
4983 '_,
4984 fidl::encoding::DefaultFuchsiaResourceDialect,
4985 >,
4986 offset: usize,
4987 _depth: fidl::encoding::Depth,
4988 ) -> fidl::Result<()> {
4989 decoder.debug_check_bounds::<Self>(offset);
4990 fidl::decode!(
4992 fidl_fuchsia_mem::Buffer,
4993 fidl::encoding::DefaultFuchsiaResourceDialect,
4994 &mut self.cipher_text,
4995 decoder,
4996 offset + 0,
4997 _depth
4998 )?;
4999 Ok(())
5000 }
5001 }
5002
5003 impl fidl::encoding::ResourceTypeMarker for KeyManagerUnsealDataResponse {
5004 type Borrowed<'a> = &'a mut Self;
5005 fn take_or_borrow<'a>(
5006 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
5007 ) -> Self::Borrowed<'a> {
5008 value
5009 }
5010 }
5011
5012 unsafe impl fidl::encoding::TypeMarker for KeyManagerUnsealDataResponse {
5013 type Owned = Self;
5014
5015 #[inline(always)]
5016 fn inline_align(_context: fidl::encoding::Context) -> usize {
5017 8
5018 }
5019
5020 #[inline(always)]
5021 fn inline_size(_context: fidl::encoding::Context) -> usize {
5022 16
5023 }
5024 }
5025
5026 unsafe impl
5027 fidl::encoding::Encode<
5028 KeyManagerUnsealDataResponse,
5029 fidl::encoding::DefaultFuchsiaResourceDialect,
5030 > for &mut KeyManagerUnsealDataResponse
5031 {
5032 #[inline]
5033 unsafe fn encode(
5034 self,
5035 encoder: &mut fidl::encoding::Encoder<
5036 '_,
5037 fidl::encoding::DefaultFuchsiaResourceDialect,
5038 >,
5039 offset: usize,
5040 _depth: fidl::encoding::Depth,
5041 ) -> fidl::Result<()> {
5042 encoder.debug_check_bounds::<KeyManagerUnsealDataResponse>(offset);
5043 fidl::encoding::Encode::<
5045 KeyManagerUnsealDataResponse,
5046 fidl::encoding::DefaultFuchsiaResourceDialect,
5047 >::encode(
5048 (<fidl_fuchsia_mem::Buffer as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
5049 &mut self.plain_text,
5050 ),),
5051 encoder,
5052 offset,
5053 _depth,
5054 )
5055 }
5056 }
5057 unsafe impl<
5058 T0: fidl::encoding::Encode<
5059 fidl_fuchsia_mem::Buffer,
5060 fidl::encoding::DefaultFuchsiaResourceDialect,
5061 >,
5062 >
5063 fidl::encoding::Encode<
5064 KeyManagerUnsealDataResponse,
5065 fidl::encoding::DefaultFuchsiaResourceDialect,
5066 > for (T0,)
5067 {
5068 #[inline]
5069 unsafe fn encode(
5070 self,
5071 encoder: &mut fidl::encoding::Encoder<
5072 '_,
5073 fidl::encoding::DefaultFuchsiaResourceDialect,
5074 >,
5075 offset: usize,
5076 depth: fidl::encoding::Depth,
5077 ) -> fidl::Result<()> {
5078 encoder.debug_check_bounds::<KeyManagerUnsealDataResponse>(offset);
5079 self.0.encode(encoder, offset + 0, depth)?;
5083 Ok(())
5084 }
5085 }
5086
5087 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
5088 for KeyManagerUnsealDataResponse
5089 {
5090 #[inline(always)]
5091 fn new_empty() -> Self {
5092 Self {
5093 plain_text: fidl::new_empty!(
5094 fidl_fuchsia_mem::Buffer,
5095 fidl::encoding::DefaultFuchsiaResourceDialect
5096 ),
5097 }
5098 }
5099
5100 #[inline]
5101 unsafe fn decode(
5102 &mut self,
5103 decoder: &mut fidl::encoding::Decoder<
5104 '_,
5105 fidl::encoding::DefaultFuchsiaResourceDialect,
5106 >,
5107 offset: usize,
5108 _depth: fidl::encoding::Depth,
5109 ) -> fidl::Result<()> {
5110 decoder.debug_check_bounds::<Self>(offset);
5111 fidl::decode!(
5113 fidl_fuchsia_mem::Buffer,
5114 fidl::encoding::DefaultFuchsiaResourceDialect,
5115 &mut self.plain_text,
5116 decoder,
5117 offset + 0,
5118 _depth
5119 )?;
5120 Ok(())
5121 }
5122 }
5123}