ドキュメントに署名してネットワーク経由でアプリケーションサーバーに送信する分散デジタル署名を開発しています。Javaでソケットプログラミングを使用しています。公開鍵はエンコードまたは圧縮する必要があると思います。つまり、x値とy値は、何らかの形で単一のバイナリデータとして表され、公開レジストリまたはネットワークに保存されますが、Javaでそれを行う方法がわかりません。
// I have class like this
public class CryptoSystem{
EllipticCurve ec = new EllipticCurve(new P192());
//-------------------
//--------------------
public ECKeyPair generatekeyPair()
{
return ECKeyPair(ec);
}
}
// i don't think i have problem in the above
CryptoSystem crypto = new CryptoSystem();
ECKeyPair keyPair = crypto.generateKeyPair();
BigInteger prvKey = keyPair.getPrivateKey();
ECPoint pubKey = keyPair.getPublicKey();
// recommend me here to compress and send it the public key to a shared network.
公開鍵とドメインパラメータをエンコードする方法を知りたいので、署名の検証者はそれを使用するためにそれをデコードします。なぜなら、それらをネットワーク経由で検証者に送信するときは、をシングルバイト配列としてエンコードする必要があるからです。 .iはBouncyCastleProviderを使用していません。ECDSAアルゴリズムの実装全体が私のプロジェクトです