2

我们需要通过 QR 码(或任何二维条码,此时,尽管 PDF-417 似乎无法存储足够多的数据)来传输 X.509 证书。目前,我们将证书作为 PEM 编码(这是 DER 格式的 X.509 证书的 base64 编码字符串表示形式,加上开始和结束标签)写入 QR 码。我们面临的问题是生成的字符串太长了。

虽然我们可以去掉开头和结尾的标签,但这不会有太大的不同,这就是为什么我去 Interwebs 寻找一种方法来压缩我们的证书。

事实证明,DER 只是一种可能的编码。根据Wikipedia,还有 PER(带有变体 UPER 和 APER)。我下载了一些样本,如果证书的读者知道 ASN.1 模式(我们可以在我们的例子中管理它),我们似乎可以节省大约 40-45% 的字节。这足以使 QR 码再次可扫描。

但是,我找不到将 DER 转换为 PER 的方法。有谁知道如何做到这一点?

或者有谁更好地了解我们如何将 X.509 证书传输到用户的手机上,而无需在中央存储库中提供它们?

4

1 回答 1

3

查找同时支持 DER 和 PER 的 ASN.1 工具。使用该工具,编写一个小程序,将 DER 编码的值(即证书)解码为内部表示,然后在 PER 中重新编码。

通常,PER Unaligned 产生最紧凑的编码,但我建议您同时尝试 PER Unaligned 和 PER Aligned。

于 2020-04-04T15:00:46.020 回答