trussed_core/client/
certificate.rs1use super::{ClientError, ClientResult, PollClient};
2use crate::{
3 api::{reply, request},
4 types::{CertId, Location, Message},
5};
6
7pub trait CertificateClient: PollClient {
9 fn delete_certificate(
10 &mut self,
11 id: CertId,
12 ) -> ClientResult<'_, reply::DeleteCertificate, Self> {
13 self.request(request::DeleteCertificate { id })
14 }
15
16 fn read_certificate(&mut self, id: CertId) -> ClientResult<'_, reply::ReadCertificate, Self> {
17 self.request(request::ReadCertificate { id })
18 }
19
20 fn write_certificate(
25 &mut self,
26 location: Location,
27 der: &[u8],
28 ) -> ClientResult<'_, reply::WriteCertificate, Self> {
29 let der = Message::from_slice(der).map_err(|_| ClientError::DataTooLarge)?;
30 self.request(request::WriteCertificate { location, der })
31 }
32}