Crate picky_asn1_der
source · [−]Expand description
picky-asn1-der
Portions of project serde_asn1_der are held by Keziah Biermann, 2019 as part of this project.
This crate implements an ASN.1-DER subset for serde.
The following types have built-in support:
bool
: The ASN.1-BOOLEAN-typeu8
,u16
,u32
,u64
,u128
,usize
: The ASN.1-INTEGER-type()
: The ASN.1-NULL-type&[u8]
,Vec<u8>
: The ASN.1-OctetString-type&str
,String
: The ASN.1-UTF8String-type
More advanced types are supported through wrappers:
- Integer (as big integer)
- Bit String
- Object Identifier
- Utf8 String
- Numeric String
- Printable String
- IA5 String
- Generalized Time
- UTC Time
- Application Tags from 0 to 15
- Context Tags from 0 to 15
Everything sequence-like combined out of this types is also supported out of the box.
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize)] // Now our struct supports all DER-conversion-traits
struct Address {
street: String,
house_number: u128,
postal_code: u128,
state: String,
country: String
}
#[derive(Serialize, Deserialize)] // Now our struct supports all DER-conversion-traits too
struct Customer {
name: String,
e_mail_address: String,
postal_address: Address
}
Example
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize)]
struct TestStruct {
number: u8,
#[serde(with = "serde_bytes")]
vec: Vec<u8>,
tuple: (usize, ())
}
let plain = TestStruct{ number: 7, vec: b"Testolope".to_vec(), tuple: (4, ()) };
let serialized = picky_asn1_der::to_vec(&plain).unwrap();
let deserialized: TestStruct = picky_asn1_der::from_bytes(&serialized).unwrap();
Modules
Structs
User-provided raw DER wrapper.
An ASN.1-DER deserializer for serde
An ASN.1-DER serializer for serde
Enums
A picky_asn1_der
-related error
Functions
Deserializes T
from bytes
Deserializes T
from reader
Deserializes T
from reader
reading at most n bytes.
Serializes value
to buf
and returns the amount of serialized bytes
Serializes value
to buf
and returns the amount of serialized bytes
Serializes value
Serializes value
to writer
and returns the amount of serialized bytes