ASN.1 类型和 DER 序列化的实现。
ASN.1 和 DER 编码方案是一种常用的对象序列化格式。ASN.1 在通用计算中最常见的用例是在密码学领域,但在各个领域都有许多用例。该模块提供了一些 ASN.1 类型的实现,以及 ASN.1 的 DER 序列化格式。
ASN.1 可以抽象地用于描述几乎任何类型的对象。ASN.1 对象由原始类型或复合类型(称为“构造”类型)组成。单个标量对象可以组合成聚合类型,并可以进行任意组合以形成抽象对象格式。
重要的是,ASN.1 对象描述不定义这些对象的特定编码。相反,有多种可能的方式来序列化或反序列化 ASN.1 对象。一些最突出的是 BER(基本编码规则)、CER(规范编码规则)、DER(可区分编码规则)和 XER(XML 编码规则)。对于密码学用例,DER 是标准选择,因为给定的 ASN.1 对象在 DER 下只能以一种方式进行编码。这使得签名和验证变得更加容易,因为至少在原则上可以完美地重建已解析对象的序列化。
此模块提供以下几个组成部分
ASN1Node
)。DER.parse(_:)
)。DER.Serializer
)。这些组成部分结合在一起,为 ASN.1 的 DER 表示提供支持,适用于各种密码学用途。
要使用 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"),
]
有关如何使用代码的示例,请查阅 文档。存储库本身也提供了许多示例。