Я разрабатываю распределенную цифровую подпись, которая подписывает документ и отправляет его по сети на сервер приложений. Для этого я использую программирование сокетов на 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 я не использую Bouncy Castle Provider. Вся реализация алгоритма ECDSA - мой проект