List of usage examples for org.bouncycastle.jcajce.provider.asymmetric.ec BCECPublicKey getEncoded
public byte[] getEncoded()
From source file:dorkbox.util.crypto.EccTest.java
License:Apache License
@Test public void EccJceSerialization() throws IOException { AsymmetricCipherKeyPair generateKeyPair = CryptoECC.generateKeyPair(CryptoECC.default_curve, new SecureRandom()); ECPrivateKeyParameters privateKey = (ECPrivateKeyParameters) generateKeyPair.getPrivate(); ECPublicKeyParameters publicKey = (ECPublicKeyParameters) generateKeyPair.getPublic(); BCECPublicKey bcecPublicKey = new BCECPublicKey("EC", publicKey, (ECParameterSpec) null, BouncyCastleProvider.CONFIGURATION); byte[] publicBytes = bcecPublicKey.getEncoded(); // relies on the BC public key. BCECPrivateKey bcecPrivateKey = new BCECPrivateKey("EC", privateKey, bcecPublicKey, (ECParameterSpec) null, BouncyCastleProvider.CONFIGURATION); byte[] privateBytes = bcecPrivateKey.getEncoded(); ECPublicKeyParameters publicKey2 = (ECPublicKeyParameters) PublicKeyFactory.createKey(publicBytes); ECPrivateKeyParameters privateKey2 = (ECPrivateKeyParameters) PrivateKeyFactory.createKey(privateBytes); // test via signing byte[] bytes = "hello, my name is inigo montoya".getBytes(); BigInteger[] signature = CryptoECC.generateSignature("SHA384", privateKey, new SecureRandom(entropySeed.getBytes()), bytes); boolean verify1 = CryptoECC.verifySignature("SHA384", publicKey, bytes, signature); if (!verify1) { fail("failed signature verification"); }//w ww. j av a 2 s. c o m boolean verify2 = CryptoECC.verifySignature("SHA384", publicKey2, bytes, signature); if (!verify2) { fail("failed signature verification"); } // now reverse who signs what. BigInteger[] signatureB = CryptoECC.generateSignature("SHA384", privateKey2, new SecureRandom(entropySeed.getBytes()), bytes); boolean verifyB1 = CryptoECC.verifySignature("SHA384", publicKey, bytes, signatureB); if (!verifyB1) { fail("failed signature verification"); } boolean verifyB2 = CryptoECC.verifySignature("SHA384", publicKey2, bytes, signatureB); if (!verifyB2) { fail("failed signature verification"); } }