公钥的格式是什么?

时间:2011-06-27 03:40:02

标签: certificate base64 public-key pki asn.1

公共DSA密钥的格式是什么?并且所有证书都存储在base64中吗?

2 个答案:

答案 0 :(得分:4)

您的意思是证书中使用的公钥格式吗?

通常,证书中的公钥存储在SubjectPublicKeyInfo字段中(参见RFC 5280)

SubjectPublicKeyInfo  ::=  SEQUENCE  {
     algorithm            AlgorithmIdentifier,
     subjectPublicKey     BIT STRING  }

可以在RFC 3370中找到DSA的详细信息。通常,AlgorithmIdentifier的参数包含Dss-Parms的实例,给出p,k,g和subjectPublicKey BIT STRING包含编码为DER编码的INTEGER的公钥y。

关于Base64:严格来说,证书不是 Base64编码但是使用它的扩展形式,PEM格式,纯文本格式,它是X.509证书的Base64编码(RFC5280) )包含在线之间

"-----BEGIN CERTIFICATE-----" 
...
"-----END CERTIFICATE-----" 

"-----BEGIN X509 CERTIFICATE----" 
...
"-----END X509 CERTIFICATE----". 

证书本身是RFC 5280中描述的ASN.1结构的DER编码。有关DER(可分辨编码规则)的详细信息,请参阅X.690

大多数证书都以PEM格式存储,或直接以原始DER编码形式存储。

答案 1 :(得分:-2)

此页面上有大量有关规格的信息和参考。 http://en.wikipedia.org/wiki/Digital_Signature_Algorithm