This is related to #410.
The crate could use the Integer proc macro, if pkcs8's Version enum get's a repr attribute.
This would remove this duplicate code:
pkcs1
| implDecodable<'_>forVersion{ |
| fndecode(decoder:&mutDecoder<'_>) -> der::Result<Self>{ |
| Version::try_from(u8::decode(decoder)?).map_err(|_| Self::TAG.value_error()) |
| } |
| } |
| |
| implEncodableforVersion{ |
| fnencoded_len(&self) -> der::Result<der::Length>{ |
| der::Length::ONE.for_tlv() |
| } |
| |
| fnencode(&self,encoder:&mutEncoder<'_>) -> der::Result<()>{ |
| u8::from(*self).encode(encoder) |
| } |
| } |
| |
| implFixedTagforVersion{ |
| constTAG:Tag = Tag::Integer; |
| } |
pkcs8
| implDecodable<'_>forVersion{ |
| fndecode(decoder:&mutDecoder<'_>) -> der::Result<Self>{ |
| Version::try_from(u8::decode(decoder)?).map_err(|_| Self::TAG.value_error()) |
| } |
| } |
| |
| implEncodableforVersion{ |
| fnencoded_len(&self) -> der::Result<der::Length>{ |
| der::Length::from(1u8).for_tlv() |
| } |
| |
| fnencode(&self,encoder:&mutEncoder<'_>) -> der::Result<()>{ |
| u8::from(*self).encode(encoder) |
| } |
| } |
| implFixedTagforVersion{ |
| constTAG:Tag = Tag::Integer; |
| } |
This is related to #410.
The crate could use the Integer proc macro, if pkcs8's Version enum get's a repr attribute.
This would remove this duplicate code:
pkcs1
formats/pkcs1/src/version.rs
Lines 54 to 72 in 9ac5281
pkcs8
formats/pkcs8/src/version.rs
Lines 28 to 42 in 9ac5281
formats/pkcs8/src/version.rs
Lines 61 to 63 in 9ac5281