ser_der

Crates.ioser_der
lib.rsser_der
version0.1.0-alpha.1
sourcesrc
created_at2024-05-05 13:04:13.092383
updated_at2024-05-05 15:00:26.105159
descriptionNewtypes for the der crate to allow for serde de-/serialization
homepage
repository
max_upload_size
id1230206
size21,193
Flori (bitfl0wer)

documentation

README

ser_der

Newtypes for the der crate to allow for serde de-/serialization.

Usage

Add this to your Cargo.toml:

[dependencies]
ser_der = { version = "0", features = ["alloc"] } # Features should match the ones of the der crate
der = { version = "0", features = ["alloc"] } 
serde = { version = "1", features = ["derive"] }

You can then use the newtypes offered by this crate to de-/serialize DER-encoded data structures using serde.

#[derive(serde::Serialize, serde::Deserialize)]
struct MyStruct {
    #[serde(with = "ser_der::asn1::ia5_string")]
    bits: ser_der::asn1::IA5String,
}

All newtypes implement Deref, DerefMut, From<[Newtype]> for [Type] and From<[Type]> for [Newtype] to the underlying der type.

Types covered

  • IA5String
  • DateTime
  • Document
  • Length
  • Any
  • BitString
  • GeneralizedTime
  • Header
  • Int
  • Length
  • Null
  • ObjectIdentifier
  • OctetString
  • PrintableString
  • SequenceOf
  • SetOf
  • Tag
  • TeletexString
  • Uint
  • UtcTime

Upstreaming to der

This crate is a temporary solution until the der crate supports serde de-/serialization. The plan is to upstream the serde support to the der crate.

Commit count: 0

cargo fmt