公開鍵を次のように使用します。プロトン交換膜、変換する方法ダックフォーマットの使い方OpenSSL?これはx509証明書ではありません。また、この質問はRSAではなくEC(ECDSA)公開鍵に関するものです。OpenSSLC、C++、またはその他のプログラミング言語ではない
-----BEGIN PUBLIC KEY-----
xxx
-----END PUBLIC KEY-----
答え1
努力する:
openssl pkey -pubin -in ec_pub.pem -outform DER -out ec_pub.der
答え2
PEM形式は-----BEGIN …-----
、行、Base64でエンコードされたテキスト、および行で-----END …-----
構成されています。 DER(バイナリ)に変換するには、本文を抽出してBase64からバイナリに変換します。
(これはプレーンテキスト、つまり暗号化されていないファイルに対して機能します。暗号化されたPEMファイルには暗号化方法を説明する追加情報があります。通常、DERを抽出することはできず、Base64でエンコードされた部分には何もありません。解読する必要があります。
通常、次のコマンドを使用してこれを実行できます。openssl enc -base64
コマンドで減らして使用できますopenssl base64
。
openssl base64 -d -in myfile.pem -out myfile.der
たとえば、直接Base64デコーダを使用するには、base64
開始/終了行を削除する必要があります。
<myfile.pem grep '^[^-]' | base64 -d >myfile.der
または、openssl
作業中の特定のデータ型に関連する管理コマンドを使用できます。 (さまざまな理由で、複数のopensslコマンドを使用してさまざまな種類のデータを処理できます。)アクションaはPUBLIC KEY
次のとおりです。openssl pkey
。-outform DER
DER 出力を希望することを示すために渡します(-inform PEM
デフォルトであるためオプション).入力が公開鍵であることを示すために渡されます-pubin
(デフォルトでは秘密鍵が必要ですopenssl pkey
)。
openssl pkey -pubin -in myfile.pem -outform DER -out myfile.der
キーがECキーであることがわかったら大丈夫です。ただし、サポートされなくなったOpenSSLの古いバージョンを使用するためのコマンドが必要ない限り、それを使用してもopenssl ec -pubin -in myfile.pem -outform DER
何の利点もありません。ec