cardano_serialization_lib/serialization/crypto/
vkey.rs

1use std::io::{BufRead, Seek, Write};
2use cbor_event::de::Deserializer;
3use cbor_event::se::Serializer;
4use crate::{DeserializeError, PublicKey, Vkey};
5use crate::protocol_types::Deserialize;
6
7impl cbor_event::se::Serialize for Vkey {
8    fn serialize<'se, W: Write>(
9        &self,
10        serializer: &'se mut Serializer<W>,
11    ) -> cbor_event::Result<&'se mut Serializer<W>> {
12        serializer.write_bytes(&self.0.as_bytes())
13    }
14}
15
16impl Deserialize for Vkey {
17    fn deserialize<R: BufRead + Seek>(raw: &mut Deserializer<R>) -> Result<Self, DeserializeError> {
18        Ok(Self(PublicKey(crate::chain_crypto::PublicKey::from_binary(
19            raw.bytes()?.as_ref(),
20        )?)))
21    }
22}