#asn1-der #asn-1 #serde #no-panic

serde_asn1_der

基于 asn1_derserde 的基本 ASN.1-DER 实现

7 个版本

0.8.0 2023年3月7日
0.7.4 2021年3月18日
0.7.3 2020年7月31日
0.7.2 2020年5月9日
0.1.0 2019年3月24日

#988编码

Download history 245/week @ 2024-04-23 183/week @ 2024-04-30 372/week @ 2024-05-07 358/week @ 2024-05-14 395/week @ 2024-05-21 630/week @ 2024-05-28 309/week @ 2024-06-04 552/week @ 2024-06-11 526/week @ 2024-06-18 174/week @ 2024-06-25 200/week @ 2024-07-02 219/week @ 2024-07-09 193/week @ 2024-07-16 144/week @ 2024-07-23 160/week @ 2024-07-30 157/week @ 2024-08-06

689 每月下载量
用于 rusty_vault

BSD-2-Clause OR MIT

35KB
680

docs.rs License BSD-2-Clause License MIT crates.io Download numbers Travis CI AppVeyor CI dependency status

serde_asn1_der

欢迎使用 serde_asn1_der 🎉

此包实现了基于 asn1_derserde 的 ASN.1-DER 子集。

支持以下类型

  • bool:ASN.1-BOOLEAN 类型
  • u8u16u32u64u128usize:ASN.1-INTEGER 类型
  • ()Option:ASN.1-NULL 类型
  • &[u8]Vec<u8>:ASN.1-OctetString 类型
  • &strString:ASN.1-UTF8String 类型
  • 以及由这些类型组合而成的所有序列类型

使用 serde_derive 包可以为所有非原始元素派生 SerializeDeserialize

use serde_derive::{ 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
}

示例

use serde_asn1_der::{ to_vec, from_bytes };
use serde_derive::{ Serialize, Deserialize };

#[derive(Serialize, Deserialize)]
struct TestStruct {
    number: u8,
    #[serde(with = "serde_bytes")]
    vec: Vec<u8>,
    tuple: (usize, ())
}

fn main() {
    let plain = TestStruct{ number: 7, vec: b"Testolope".to_vec(), tuple: (4, ()) };
    let serialized = to_vec(&plain).unwrap();
    let deserialized: TestStruct = from_bytes(&serialized).unwrap();
}

AnyObject

此包还提供了一种类型擦除的 AnyObject 特性,允许您使用 Box<dyn AnyObject> 而不是特定类型。要启用 AnyObject,请使用 "any" 特性。

依赖项

~170–440KB