List of usage examples for org.bouncycastle.jcajce.provider.asymmetric.util ECUtil generatePublicKeyParameter
public static AsymmetricKeyParameter generatePublicKeyParameter(PublicKey key) throws InvalidKeyException
From source file:org.cryptacular.util.KeyPairUtil.java
License:Open Source License
/** * Determines whether the given EC public and private keys form a proper key * pair by computing and verifying a digital signature with the keys. * * @param pubKey EC public key.//from ww w . j av a2s.co m * @param privKey EC private key. * * @return True if the keys form a functioning keypair, false otherwise. * Errors during signature verification are treated as false. */ public static boolean isKeyPair(final ECPublicKey pubKey, final ECPrivateKey privKey) { final ECDSASigner signer = new ECDSASigner(); try { signer.init(true, ECUtil.generatePrivateKeyParameter(privKey)); final BigInteger[] sig = signer.generateSignature(SIGN_BYTES); signer.init(false, ECUtil.generatePublicKeyParameter(pubKey)); return signer.verifySignature(SIGN_BYTES, sig[0], sig[1]); } catch (InvalidKeyException e) { throw new IllegalArgumentException("Unsupported EC key", e); } catch (Exception e) { return false; } }
From source file:org.hyperledger.fabric.sdk.shim.crypto.CryptoPrimitives.java
License:Open Source License
/** * //w w w . j a va2s. com * @param certificate * @param signature * @param plainText * @return */ public boolean ecdsaVerify(byte[] certificate, byte[] signature, byte[] plainText) { ASN1InputStream asn1 = null; InputStream in = null; DigestSHA3 sha3 = new DigestSHA3(256); try { in = new ByteArrayInputStream(certificate); CertificateFactory certFactory = CertificateFactory.getInstance("X.509"); X509Certificate c = (X509Certificate) certFactory.generateCertificate(in); ECPublicKey ecPublicKey = (ECPublicKey) c.getPublicKey(); ECDSASigner signer = new ECDSASigner(); ECPublicKeyParameters bcPubKeyParams = (ECPublicKeyParameters) ECUtil .generatePublicKeyParameter(ecPublicKey); ECPublicKeyParameters params = new ECPublicKeyParameters( CURVE.getCurve().decodePoint(bcPubKeyParams.getQ().getEncoded(false)), CURVE); signer.init(false, params); asn1 = new ASN1InputStream(signature); DLSequence seq = (DLSequence) asn1.readObject(); BigInteger r = ((ASN1Integer) seq.getObjectAt(0)).getPositiveValue(); BigInteger s = ((ASN1Integer) seq.getObjectAt(1)).getPositiveValue(); return signer.verifySignature(sha3.digest(plainText), r, s); } catch (Exception e) { e.printStackTrace(); return false; } finally { if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } if (asn1 != null) { try { asn1.close(); } catch (IOException e) { e.printStackTrace(); } } } }
From source file:org.xipki.ca.server.impl.X509SelfSignedCertBuilder.java
License:Open Source License
public static AsymmetricKeyParameter generatePublicKeyParameter(final PublicKey key) throws InvalidKeyException { if (key instanceof RSAPublicKey) { RSAPublicKey k = (RSAPublicKey) key; return new RSAKeyParameters(false, k.getModulus(), k.getPublicExponent()); } else if (key instanceof ECPublicKey) { return ECUtil.generatePublicKeyParameter(key); } else if (key instanceof DSAPublicKey) { return DSAUtil.generatePublicKeyParameter(key); } else {/* ww w. j ava 2 s . c om*/ throw new InvalidKeyException("unknown key " + key.getClass().getName()); } }
From source file:org.xipki.commons.security.util.KeyUtil.java
License:Open Source License
public static AsymmetricKeyParameter generatePublicKeyParameter(final PublicKey key) throws InvalidKeyException { ParamUtil.requireNonNull("key", key); if (key instanceof RSAPublicKey) { RSAPublicKey rsaKey = (RSAPublicKey) key; return new RSAKeyParameters(false, rsaKey.getModulus(), rsaKey.getPublicExponent()); } else if (key instanceof ECPublicKey) { return ECUtil.generatePublicKeyParameter(key); } else if (key instanceof DSAPublicKey) { return DSAUtil.generatePublicKeyParameter(key); } else {/* www . ja v a 2 s .c o m*/ throw new InvalidKeyException("unknown key " + key.getClass().getName()); } }
From source file:org.xipki.pki.ca.server.impl.X509SelfSignedCertBuilder.java
License:Open Source License
public static AsymmetricKeyParameter generatePublicKeyParameter(final PublicKey key) throws InvalidKeyException { ParamUtil.requireNonNull("key", key); if (key instanceof RSAPublicKey) { RSAPublicKey rsakey = (RSAPublicKey) key; return new RSAKeyParameters(false, rsakey.getModulus(), rsakey.getPublicExponent()); } else if (key instanceof ECPublicKey) { return ECUtil.generatePublicKeyParameter(key); } else if (key instanceof DSAPublicKey) { return DSAUtil.generatePublicKeyParameter(key); } else {/* w w w .jav a2 s . co m*/ throw new InvalidKeyException("unknown key " + key.getClass().getName()); } }