APIサーバーと通信するnodejsアプリを構築しています。API サーバーは、私が行う各リクエストに、 ECDSA 曲線と特定のデータ セットのハッシュX-Signature
を使用するヘッダーが含まれていることを要求します。prime256v1
sha256
cryptoとtlsのドキュメントを調べましたが、適切なものは見つかりませんでした。で秘密鍵を正常に生成しましopenssl ecparam -name prime256v1 -genkey
たが、PEM 形式です。DER 形式のキーも生成しました。これらには両方とも、使用される曲線や、PEM の場合はコメントなどの追加のメタデータが含まれます。
これらのキーを使用して署名操作を行うことができますが、サーバーでは、16 進エンコードを使用して公開キーをアップロードする必要があります (サーバーは、要求に対して行った署名を検証できます)。
具体的には、サーバーは次の Python コードの出力のようなものを必要としています。
from ecdsa import SigningKey
from binascii import hexlify
hexlify(SigningKey.from_pem(content).to_string())
pubkey の出力例 (改行なし):c5bd76cd0cd948de17a31261567d219576e992d9066fe1a6bca97496dec634e2c8e06f8949773b300b9f73fabbbc7710d5d6691e96bcf3c9145e15daf6fe07b9
ノードアプリへの依存関係としてPythonを追加したくない... PEMまたはDERファイルから秘密鍵を表すバイナリデータを抽出できる方法を知っている人がいるので、それをバッファに入れて呼び出すことができますbuffer.toString('hex')
か? または、ネイティブcrypto
ライブラリを使用して ECDSA キーペアを生成する方法はありますか? または同じことをするライブラリ?