#der #newtype #ser #asn-1

无需 std ser_der

dercrate 的新类型,以允许 serde 反/序列化

2 个不稳定版本

0.1.0-alpha.12024 年 5 月 5 日
0.0.0 2024 年 5 月 5 日

#1095解析器实现

MPL-2.0 许可证

8KB
82

ser_der

dercrate 的新类型,以允许使用 serde 进行反/序列化。

用法

将此添加到您的 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"] }

然后您可以使用此 crate 提供的新类型,使用 serde 对 DER 编码的数据结构进行反/序列化。

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

所有新类型都实现了 DerefDerefMutFrom<[Newtype]> for [Type]From<[Type]> for [Newtype] 反转到底层的 der 类型。

覆盖类型

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

向上游到 der

此 crate 是一个临时解决方案,直到 der crate 支持 serde 反/序列化。计划是将 serde 支持 upstream 到 der crate

依赖关系

~0.7–1.4MB
~32K SLoC