公開鍵ヘッダーについて聞いたことがありません...例を挙げていただけますか?
公開鍵情報は、おそらく、X.509 証明書の公開鍵が一般的にエンコードされる標準的な方法であり、SubjectPublicKeyInfo 属性の形式になります。これらの SubjectPublicKeyInfos は、公開鍵ファイルに変換できます (それがあなたがやろうとしていたことだと思いますか? 間違っていたら訂正してください!) そのセクションでは、RSA が参照する特定のアルゴリズムに関する情報を見つけることができる場所についても説明します。RFC 3279。SubjectPublicKeyInfo は次のように定義されます。
SubjectPublicKeyInfo ::= SEQUENCE {
algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING }
RFC 3279 は次のように述べています。
rsaEncryption OID は、タイプ AlgorithmIdentifier の値のアルゴリズム フィールドで使用されることを意図しています。パラメータ フィールドには、このアルゴリズム識別子の ASN.1 タイプ NULL が含まれている必要があります。
さらに遠く:
RSA 公開鍵は、ASN.1 タイプ RSAPublicKey を使用してエンコードする必要があります。
RSAPublicKey ::= SEQUENCE {
modulus INTEGER, -- n
publicExponent INTEGER } -- e
したがって、関連するデータを含むのは subjectPublicKey フィールドです。たとえばx509
、OpenSSL のコマンドを使用してこれらの値を取得できます。
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エンコーディングでエクスポートされた公開鍵があります。