Jak skompresować lub zakodować klucz publiczny krzywej eliptycznej i umieścić go w sieci?

Rozwijam Rozproszony podpis cyfrowy, który podpisuje dokument i wysyła go przez sieć do Application Server. Używam programowania gniazd w Javie. Myślę, że klucz publiczny powinien być zakodowany lub skompresowany, tj. Wartości xiy są w jakiś sposób reprezentowane jako pojedyncze dane binarne i zapisywane w rejestrze publicznym lub sieci. Ale nie wiem, jak to zrobić w Javie.

        // 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.

Chcę wiedzieć, jak zakodować klucz publiczny i parametry domeny, aby weryfikator podpisu zdekodował go, aby go użyć. Ponieważ po wysłaniu ich przez sieć do weryfikatora będziesz musiał kodować jako tablicę jednobajtową Nie używam dostawcy Bouncy Castle. Cała implementacja algorytmu ECDSA jest moim projektem

questionAnswers(2)

yourAnswerToTheQuestion