pkcs1/private_key/
other_prime_info.rs1use der::{
4 DecodeValue, Encode, EncodeValue, Header, Length, Reader, Sequence, Writer, asn1::UintRef,
5};
6
7#[derive(Clone)]
21pub struct OtherPrimeInfo<'a> {
22 pub prime: UintRef<'a>,
24
25 pub exponent: UintRef<'a>,
27
28 pub coefficient: UintRef<'a>,
30}
31
32impl<'a> DecodeValue<'a> for OtherPrimeInfo<'a> {
33 type Error = der::Error;
34
35 fn decode_value<R: Reader<'a>>(reader: &mut R, _header: Header) -> der::Result<Self> {
36 Ok(Self {
37 prime: reader.decode()?,
38 exponent: reader.decode()?,
39 coefficient: reader.decode()?,
40 })
41 }
42}
43
44impl EncodeValue for OtherPrimeInfo<'_> {
45 fn value_len(&self) -> der::Result<Length> {
46 self.prime.encoded_len()? + self.exponent.encoded_len()? + self.coefficient.encoded_len()?
47 }
48
49 fn encode_value(&self, writer: &mut impl Writer) -> der::Result<()> {
50 self.prime.encode(writer)?;
51 self.exponent.encode(writer)?;
52 self.coefficient.encode(writer)?;
53 Ok(())
54 }
55}
56
57impl<'a> Sequence<'a> for OtherPrimeInfo<'a> {}