Ale*_*nor 6 cryptography asn.1 pkcs#12 pem x509
给定在PEM内部编码的任意(有效!)私钥或公钥,pre-encapsulation boundary并且post-encapsulation boundaries完整,可以准确地知道字节采用什么格式(即它们是传统的OpenSSL,PKCS8,X.509 SubjectPublicKeyInfo等),或者是否需要一些先验信息来正确解码它们?
对于证书,情况几乎很简单 - 边界线指定了期望的内容(证书或私钥)。
在 OpenPGP 装甲数据中,边界线还告诉您预期的内容 - 密钥或数据。
由多个 SSH 应用程序创建的 SSH 密钥具有相同的边界线,但密钥本身的格式不同。因此,您需要尝试以所有期望的格式读取数据。
RSA 公钥通常采用 RSA 1.5 格式,因此您可以假设您拥有 RSA 密钥。
PKCS#12 通常不会包装到 PEM(我从未见过这样的文件)。PKCS8 也是如此。
PKCS#7 证书存储有时是 PEM 编码的,并且它们的边界线中有类似 BEGIN CERTIFICATE STORAGE 的内容。
总而言之 - 在某种程度上您可以依赖边界线文本,但这并不能给您 100% 的保证。