私は質問 ECC秘密鍵をPKCS#1形式に変換する を読みました。また、従来のEC秘密鍵のバージョンフィールドの値が01
であることを理解しました。
コマンドopenssl pkcs8 -topk8 -nocrypt
を使用して、従来のキーを暗号化されていない)PKCS#8形式に変換できます。キーが変換されると、変換されたキーのバージョンフィールドは00
になります。
これらのバージョンフィールドの意味は何ですか?バージョンフィールドの値が01
と表示された場合、そのキーはPKCS#8形式ではないことを確認していますか?
リンクしているメッセージを誤って解釈している可能性があります。
秘密鍵は、SECからの構造として表され、常に「1」の値を持つ「バージョンフィールド」を含みます。
秘密鍵がPKCS#8でエンコードされている場合、前の構造は「ラップ」されます。PKCS#8には、使用されたアルゴリズムの識別子(「これはEC鍵です」)と(全体値「1」のバージョンフィールドを含む、上記で指定された秘密鍵構造.
PKCS#8ラッパーまたはには「バージョン」フィールドがあり、通常は値が「0」です。したがって、PKCS#8では、両方を取得します。
「バージョン」フィールドがある場合、これは他のレイアウトをサポートするためのメカニズムです(そのようなものが定義されている場合)。現在、他のレイアウトは定義されていないため、別の値を使用してできることは、一部のソフトウェアでオブジェクトをデコード不可能にすることだけです。