つまり、次のようなPEMファイルを見つけることができますか。
-----BEGIN DH PRIVATE KEY-----
または:
-----BEGIN DH PUBLIC KEY-----
?
もしそうなら、その構造は何ですか?
私は静的DHキーが奇妙で、おそらく絶滅していることを知っています。そして、DH秘密鍵をPKCS#8ラッパー内に置くことができ、DH公開鍵をX.509証明書に入れるか、緩いX.509スタイルの公開鍵として持つことができることを知っています-または少なくとも、OpenSSLがそれを行う方法を知っているよりも!しかし、静的DHキーに古い形式を使用している人への参照は見つかりません。
私が尋ねる理由は、キーを入力として受け取るコードを書いているからです。可能な限り幅広いキーをサポートしたいと思っています。 RSA、DSA、EC、およびDHアルゴリズムのキーを処理できます。フォーマットに関しては、私はサポートします:
openssl pkey
によって生成される)openssl dsaparam -genkey
によって生成される)openssl ecparam -genkey
によって生成される)DH秘密鍵にもPKCS#1のような形式があるので、それをサポートする必要があるので、それを解決しようとしています。
ショートバージョン:
中バージョン:
昔々、RSAはいくつかの暗号を発明しました。そして、それを使用可能な形式でラップしたかったので、PKCS#1を発明しました。だからこそ、それが#1-最初に来たからです。ただし、ラッパーでの「RSA」の使用に反映されているように、実際にはRSAキーのみを処理していました。
少し先に、「ちょっと待ってください。DHキーと楕円曲線キーでも同じことができるはずです。そして...設計に柔軟性があり、さまざまなタイプを処理できる新しいPKCSを作成しましょう。キー。そして、それを実行している間に、ラッパーからアルゴリズム名OUTを取り出して、データの一部としてエンコードしましょう。」そして、それがPKCS#8が生まれた方法です。
ロングバージョン:
このスペースでいくつかの素晴らしい答えを引き起こしたスタックオーバーフローに 質問 があります。 この回答 PKCS#1/PKCS#8の違いについて説明しています。そして この答え 、その素晴らしさはクマのようですが、上記のミディアムバージョンで要約しようとした設計履歴の詳細に入ります。
脚注:私が提供した「長いバージョン」is参照されている2つを読んだら、実際にはもっと長くなりますSO答えなので、卑劣なことはしないでください。