Example usage for org.bouncycastle.jcajce.provider.asymmetric.util ECUtil generatePublicKeyParameter

List of usage examples for org.bouncycastle.jcajce.provider.asymmetric.util ECUtil generatePublicKeyParameter

Introduction

In this page you can find the example usage for org.bouncycastle.jcajce.provider.asymmetric.util ECUtil generatePublicKeyParameter.

Prototype

public static AsymmetricKeyParameter generatePublicKeyParameter(PublicKey key) throws InvalidKeyException 

Source Link

Usage

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());
    }
}