Как сжать или закодировать открытый ключ эллиптической кривой и поместить его в сеть?

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

Я хочу знать, как кодировать открытый ключ и параметры домена, чтобы верификатор подписи расшифровал его, чтобы использовать его. Потому что, когда вы отправляете их по сети в верификатор, вам придется кодировать как однобайтовый массив Я не использую Bouncy Castle Provider. Вся реализация алгоритма ECDSA - мой проект

Ответы на вопрос(2)

Ваш ответ на вопрос