SwiftASN1 1.2.0

SwiftASN1 1.2.0

Dave Snabel-Caunt 维护。



SwiftASN1 1.2.0

  • 苹果公司

SwiftASN1

ASN.1 类型及其 DER 序列化的实现。

概述

ASN.1 和 DER 编码方案是一个常用的对象序列化格式。ASN.1 在通用计算中最常见的用途是加密空间,但在各个领域都有一个广泛的用途。本模块提供了一些 ASN.1 类型的实现,以及 ASN.1 的DER 序列化格式。

ASN.1 可以抽象地用来描述任何类型的对象。ASN.1 对象由原始的或合成的(称为“构造”)类型组成。单个标量对象可以组合为聚合类型,并可以任意组合形成抽象对象格式。

重要的是,ASN.1 对象描述并没有定义这些对象的特定编码。相反,有多种可能的序列化或反序列化 ASN.1 对象的方式。其中最突出的是 BER(基本编码规则)、CER(规范编码规则)、DER(特 cancellationToken 征编码规则)和 XER(XML 编码规则)。对于加密领域,DER 是标准选择,因为给定的 ASN.1 对象只能按照 DER 进行编码。这使得签名和验证变得非常容易,因为在原则上可以完美地重构解析的对象的序列化。

本模块提供了几个主要部分

  1. 一个 ASN.1 对象的高层级表示,以对象节点(ASN1Node)树的形式。
  2. 一个 DER 解析器,可以从序列化字节中构建 ASN.1 树(DER.parse(_:))。
  3. 一个 DER 序列化器,可以从 ASN.1 树中构建序列化字节(DER.Serializer)。
  4. 一些内建的 ASN.1 类型,代表常见的构造。

这些组件组合在一起,提供适用于广泛加密用途的 DER 表示的 ASN.1 支持。

入门

要使用 swift-asn1,请将以下依赖项添加到您的 Package.swift

dependencies: [
    .package(url: "https://github.com/apple/swift-asn1.git", .upToNextMajor(from: "1.0.0"))
]

然后您可以向您的目标添加特定的产品依赖项

dependencies: [
    .product(name: "SwiftASN1", package: "swift-asn1"),
]

请参阅 文档 中的代码用法示例。仓库本身也包含一些示例。