2012-05-30 48 views
0

我想找到什麼是公鑰頭和公鑰信息。我已經使用openssl以C格式丟棄了一個證書,以及公鑰模數。它將公鑰信息和公鑰標題列爲公鑰。但我無法使用openssl.exe rsa -pubin -inform DER -text -noout < publickey.der轉儲這些字段作爲我的服務器上生成的公鑰。什麼是公鑰頭和公鑰信息?

請問任何人請解釋這些字段在數字證書中的重要性,它們對於所有公鑰是否相同?無法在openssl上獲得這些信息,剛纔提到的DER編碼會有額外的頁眉和頁腳。

回答

1

我從來沒有聽說過公鑰頭......你能舉個例子嗎?

公鑰信息可能是X.509證書中的公鑰通常以SubjectPublicKeyInfo attribute的形式編碼的標準方式。這些SubjectPublicKeyInfos可以變成一個公鑰文件(我假設你正在做什麼?如果我錯了,請糾正我)這部分還告訴你在哪裏可以找到關於特定算法的信息,對於RSA他們引用RFC 3279。甲SubjectPublicKeyInfo進行定義如下:

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

RFC 3279表示:

的與RSAEncryption OID意在算法字段類型爲AlgorithmIdentifier的值的 使用。參數字段MUST 對於該算法標識符具有ASN.1類型的NULL。

另外:

的RSA公共密鑰必須使用ASN.1類型RSAPublicKey編碼:

RSAPublicKey ::= SEQUENCE { 
    modulus   INTEGER, -- n 
    publicExponent  INTEGER } -- e 

因此,它是包含相關數據的執行subjectPublicKey場 - 你可以通過OpenSSL的x509命令獲得這些值:

openssl x509 -in certificate.cer -inform DER -noout -text 

打印出來(對於PEM證書,刪除-inform DER):

Subject Public Key Info: 
     Public Key Algorithm: rsaEncryption 
      Public-Key: (1024 bit) 
      Modulus: 
       00:cb:c2:... 
      Exponent: 65537 (0x10001) 

還有一個絕招,你怎麼能直接產生PEM RSA公共密鑰文件x509

openssl x509 -inform DER -in certificate.cer -pubkey -noout > pubkey.pem 

並且您的公鑰以PEM編碼方式導出。