Example usage for org.bouncycastle.jce.provider JCEECPublicKey getAlgorithm

List of usage examples for org.bouncycastle.jce.provider JCEECPublicKey getAlgorithm

Introduction

In this page you can find the example usage for org.bouncycastle.jce.provider JCEECPublicKey getAlgorithm.

Prototype

public String getAlgorithm() 

Source Link

Usage

From source file:eu.europa.ec.markt.dss.validation102853.toolbox.PublicKeyUtils.java

License:Open Source License

/**
 * This method returns the public algorithm extracted from public key infrastructure. (ex: RSA)
 *
 * @param publicKey//w  ww . j ava  2 s.  co m
 * @return
 */
public static String getPublicKeyEncryptionAlgo(final PublicKey publicKey) {

    String publicKeyAlgorithm = "?";
    // TODO: Bob (20130513) The list of different implementation need to be completed.
    if (publicKey instanceof RSAPublicKeyImpl) {

        final RSAPublicKeyImpl rsaPublicKey = (RSAPublicKeyImpl) publicKey;
        publicKeyAlgorithm = rsaPublicKey.getAlgorithm();
    } else if (publicKey instanceof JCERSAPublicKey) {

        final JCERSAPublicKey rsaPublicKey = (JCERSAPublicKey) publicKey;
        publicKeyAlgorithm = rsaPublicKey.getAlgorithm();
    } else if (publicKey instanceof JCEECPublicKey) {

        final JCEECPublicKey jceecPublicKey = (JCEECPublicKey) publicKey;
        publicKeyAlgorithm = jceecPublicKey.getAlgorithm();
    } else if (publicKey instanceof ECPublicKey) {

        ECPublicKey ecPublicKey = (ECPublicKey) publicKey;
        publicKeyAlgorithm = ecPublicKey.getAlgorithm();
    } else if (publicKey instanceof DSAPublicKeyImpl) {

        DSAPublicKeyImpl dsaPublicKeyImpl = (DSAPublicKeyImpl) publicKey;
        publicKeyAlgorithm = dsaPublicKeyImpl.getAlgorithm();
    } else if (publicKey instanceof JDKDSAPublicKey) {

        JDKDSAPublicKey dsaPublicKeyImpl = (JDKDSAPublicKey) publicKey;
        publicKeyAlgorithm = dsaPublicKeyImpl.getAlgorithm();
    } else {

        LOG.warning("Unknown public key infrastructure: " + publicKey.getClass().getName());
    }
    if (!"?".equals(publicKeyAlgorithm)) {

        try {

            publicKeyAlgorithm = EncryptionAlgorithm.forName(publicKeyAlgorithm).getName();
        } catch (DSSException e) {

            LOG.severe(e.getMessage());
        }
    }
    return publicKeyAlgorithm;
}

From source file:org.ejbca.core.ejb.ca.caadmin.CAsTest.java

License:Open Source License

private void checkECKey(PublicKey pk) {
    if (pk instanceof JCEECPublicKey) {
        JCEECPublicKey ecpk = (JCEECPublicKey) pk;
        assertEquals(ecpk.getAlgorithm(), "EC");
        org.bouncycastle.jce.spec.ECParameterSpec spec = ecpk.getParameters();
        assertNotNull("Only ImplicitlyCA curves can have null spec", spec);
    } else if (pk instanceof BCECPublicKey) {
        BCECPublicKey ecpk = (BCECPublicKey) pk;
        assertEquals(ecpk.getAlgorithm(), "EC");
        org.bouncycastle.jce.spec.ECParameterSpec spec = ecpk.getParameters();
        assertNotNull("Only ImplicitlyCA curves can have null spec", spec);
    } else {/* w ww. ja v  a  2s . c  o m*/
        assertTrue("Public key is not EC: " + pk.getClass().getName(), false);
    }
}

From source file:org.ejbca.core.ejb.ca.caadmin.CAsTest.java

License:Open Source License

/** Adds a CA Using ECDSA 'implicitlyCA' keys to the database. It also checks that the CA is stored correctly. */
@Test/*  w w  w. ja va 2  s  .c o m*/
public void test05AddECDSAImplicitlyCACA() throws Exception {
    log.trace(">test05AddECDSAImplicitlyCACA()");
    boolean ret = false;
    try {
        createEllipticCurveDsaImplicitCa();
        CAInfo info = caSession.getCAInfo(admin, TEST_ECDSA_IMPLICIT_CA_NAME);
        X509Certificate cert = (X509Certificate) info.getCertificateChain().iterator().next();
        assertTrue("Error in created ca certificate",
                cert.getSubjectDN().toString().equals("CN=TESTECDSAImplicitlyCA"));
        assertTrue("Creating CA failed", info.getSubjectDN().equals("CN=TESTECDSAImplicitlyCA"));
        PublicKey pk = cert.getPublicKey();
        if (pk instanceof JCEECPublicKey) {
            JCEECPublicKey ecpk = (JCEECPublicKey) pk;
            assertEquals(ecpk.getAlgorithm(), "EC");
            ECParameterSpec spec = ecpk.getParameters();
            assertNull(
                    "ImplicitlyCA must have null spec, because it should be explicitly set in ejbca.properties",
                    spec);
        } else if (pk instanceof BCECPublicKey) {
            BCECPublicKey ecpk = (BCECPublicKey) pk;
            assertEquals(ecpk.getAlgorithm(), "EC");
            org.bouncycastle.jce.spec.ECParameterSpec spec = ecpk.getParameters();
            assertNull(
                    "ImplicitlyCA must have null spec, because it should be explicitly set in ejbca.properties",
                    spec);
        } else {
            assertTrue("Public key is not EC: " + pk.getClass().getName(), false);
        }
        ret = true;
    } catch (CAExistsException pee) {
        log.info("CA exists.");
    } finally {
        removeOldCa(TEST_ECDSA_IMPLICIT_CA_NAME);
    }
    assertTrue("Creating ECDSA ImplicitlyCA CA failed", ret);
    log.trace("<test05AddECDSAImplicitlyCACA()");
}

From source file:org.ejbca.core.ejb.ca.sign.SignSessionTest.java

License:Open Source License

/**
 * creates cert// w w  w.j a  v  a 2  s.  co  m
 * 
 * @throws Exception
 *             if en error occurs...
 */
public void test12SignSessionECDSAWithRSACA() throws Exception {
    log.trace(">test12SignSessionECDSAWithRSACA()");

    userAdminSession.setUserStatus(admin, "foo", UserDataConstants.STATUS_NEW);
    log.debug("Reset status of 'foo' to NEW");
    // user that we know exists...
    X509Certificate selfcert = CertTools.genSelfCert("CN=selfsigned", 1, null, ecdsakeys.getPrivate(),
            ecdsakeys.getPublic(), AlgorithmConstants.SIGALG_SHA256_WITH_ECDSA, false);
    X509Certificate cert = (X509Certificate) signSession.createCertificate(admin, "foo", "foo123", selfcert);
    assertNotNull("Misslyckades skapa cert", cert);
    log.debug("Cert=" + cert.toString());
    PublicKey pk = cert.getPublicKey();
    if (pk instanceof JCEECPublicKey) {
        JCEECPublicKey ecpk = (JCEECPublicKey) pk;
        assertEquals(ecpk.getAlgorithm(), "EC");
        org.bouncycastle.jce.spec.ECParameterSpec spec = ecpk.getParameters();
        assertNotNull("ImplicitlyCA must have null spec", spec);
    } else {
        assertTrue("Public key is not EC", false);
    }
    try {
        cert.verify(rsacacert.getPublicKey());
    } catch (Exception e) {
        assertTrue("Verify failed: " + e.getMessage(), false);
    }

    // FileOutputStream fos = new FileOutputStream("testcert.crt");
    // fos.write(cert.getEncoded());
    // fos.close();
    log.trace("<test12SignSessionECDSAWithRSACA()");
}

From source file:org.ejbca.core.ejb.ca.sign.SignSessionTest.java

License:Open Source License

/**
 * tests bouncy PKCS10// w  ww .j a  v  a 2 s. com
 * 
 * @throws Exception
 *             if en error occurs...
 */
public void test13TestBCPKCS10ECDSAWithRSACA() throws Exception {
    log.trace(">test13TestBCPKCS10ECDSAWithRSACA()");
    userAdminSession.setUserStatus(admin, "foo", UserDataConstants.STATUS_NEW);
    log.debug("Reset status of 'foo' to NEW");
    // Create certificate request
    PKCS10CertificationRequest req = new PKCS10CertificationRequest("SHA256WithECDSA",
            CertTools.stringToBcX509Name("C=SE, O=AnaTom, CN=foo"), ecdsakeys.getPublic(), new DERSet(),
            ecdsakeys.getPrivate());
    ByteArrayOutputStream bOut = new ByteArrayOutputStream();
    DEROutputStream dOut = new DEROutputStream(bOut);
    dOut.writeObject(req);
    dOut.close();

    PKCS10CertificationRequest req2 = new PKCS10CertificationRequest(bOut.toByteArray());
    boolean verify = req2.verify();
    log.debug("Verify returned " + verify);
    assertTrue(verify);
    log.debug("CertificationRequest generated successfully.");
    byte[] bcp10 = bOut.toByteArray();
    PKCS10RequestMessage p10 = new PKCS10RequestMessage(bcp10);
    p10.setUsername("foo");
    p10.setPassword("foo123");
    IResponseMessage resp = signSession.createCertificate(admin, p10,
            org.ejbca.core.protocol.X509ResponseMessage.class, null);
    Certificate cert = CertTools.getCertfromByteArray(resp.getResponseMessage());
    assertNotNull("Failed to create certificate", cert);
    log.debug("Cert=" + cert.toString());
    PublicKey pk = cert.getPublicKey();
    if (pk instanceof JCEECPublicKey) {
        JCEECPublicKey ecpk = (JCEECPublicKey) pk;
        assertEquals(ecpk.getAlgorithm(), "EC");
        org.bouncycastle.jce.spec.ECParameterSpec spec = ecpk.getParameters();
        assertNotNull("ImplicitlyCA must have null spec", spec);
    } else {
        assertTrue("Public key is not EC", false);
    }
    try {
        cert.verify(rsacacert.getPublicKey());
    } catch (Exception e) {
        assertTrue("Verify failed: " + e.getMessage(), false);
    }
    log.trace("<test13TestBCPKCS10ECDSAWithRSACA()");
}

From source file:org.ejbca.core.ejb.ca.sign.SignSessionTest.java

License:Open Source License

/**
 * creates cert//from w  w  w.j  a v a  2 s. c o m
 * 
 * @throws Exception
 *             if en error occurs...
 */
public void test14SignSessionECDSAWithECDSACA() throws Exception {
    log.trace(">test14SignSessionECDSAWithECDSACA()");

    userAdminSession.setUserStatus(admin, "fooecdsa", UserDataConstants.STATUS_NEW);
    log.debug("Reset status of 'fooecdsa' to NEW");
    // user that we know exists...
    X509Certificate selfcert = CertTools.genSelfCert("CN=selfsigned", 1, null, ecdsakeys.getPrivate(),
            ecdsakeys.getPublic(), AlgorithmConstants.SIGALG_SHA256_WITH_ECDSA, false);
    X509Certificate cert = (X509Certificate) signSession.createCertificate(admin, "fooecdsa", "foo123",
            selfcert);
    assertNotNull("Misslyckades skapa cert", cert);
    log.debug("Cert=" + cert.toString());
    PublicKey pk = cert.getPublicKey();
    if (pk instanceof JCEECPublicKey) {
        JCEECPublicKey ecpk = (JCEECPublicKey) pk;
        assertEquals(ecpk.getAlgorithm(), "EC");
        org.bouncycastle.jce.spec.ECParameterSpec spec = ecpk.getParameters();
        assertNotNull("ImplicitlyCA must have null spec", spec);
    } else {
        assertTrue("Public key is not EC", false);
    }
    try {
        cert.verify(ecdsacacert.getPublicKey());
    } catch (Exception e) {
        assertTrue("Verify failed: " + e.getMessage(), false);
    }

    // FileOutputStream fos = new FileOutputStream("testcert.crt");
    // fos.write(cert.getEncoded());
    // fos.close();
    log.trace("<test14SignSessionECDSAWithECDSACA()");
}

From source file:org.ejbca.core.ejb.ca.sign.SignSessionTest.java

License:Open Source License

/**
 * tests bouncy PKCS10//from w  w w.j  ava 2s .co m
 * 
 * @throws Exception
 *             if en error occurs...
 */
public void test15TestBCPKCS10ECDSAWithECDSACA() throws Exception {
    log.trace(">test15TestBCPKCS10ECDSAWithECDSACA()");
    userAdminSession.setUserStatus(admin, "fooecdsa", UserDataConstants.STATUS_NEW);
    log.debug("Reset status of 'foo' to NEW");
    // Create certificate request
    PKCS10CertificationRequest req = new PKCS10CertificationRequest("SHA256WithECDSA",
            CertTools.stringToBcX509Name("C=SE, O=AnaTom, CN=fooecdsa"), ecdsakeys.getPublic(), new DERSet(),
            ecdsakeys.getPrivate());
    ByteArrayOutputStream bOut = new ByteArrayOutputStream();
    DEROutputStream dOut = new DEROutputStream(bOut);
    dOut.writeObject(req);
    dOut.close();

    PKCS10CertificationRequest req2 = new PKCS10CertificationRequest(bOut.toByteArray());
    boolean verify = req2.verify();
    log.debug("Verify returned " + verify);
    assertTrue(verify);
    log.debug("CertificationRequest generated successfully.");
    byte[] bcp10 = bOut.toByteArray();
    PKCS10RequestMessage p10 = new PKCS10RequestMessage(bcp10);
    p10.setUsername("fooecdsa");
    p10.setPassword("foo123");
    IResponseMessage resp = signSession.createCertificate(admin, p10,
            org.ejbca.core.protocol.X509ResponseMessage.class, null);
    Certificate cert = CertTools.getCertfromByteArray(resp.getResponseMessage());
    assertNotNull("Failed to create certificate", cert);
    log.debug("Cert=" + cert.toString());
    PublicKey pk = cert.getPublicKey();
    if (pk instanceof JCEECPublicKey) {
        JCEECPublicKey ecpk = (JCEECPublicKey) pk;
        assertEquals(ecpk.getAlgorithm(), "EC");
        org.bouncycastle.jce.spec.ECParameterSpec spec = ecpk.getParameters();
        assertNotNull("ImplicitlyCA must have null spec", spec);
    } else {
        assertTrue("Public key is not EC", false);
    }
    try {
        cert.verify(ecdsacacert.getPublicKey());
    } catch (Exception e) {
        assertTrue("Verify failed: " + e.getMessage(), false);
    }
    log.trace("<test15TestBCPKCS10ECDSAWithECDSACA()");
}

From source file:org.ejbca.core.ejb.ca.sign.SignSessionTest.java

License:Open Source License

/**
 * creates cert/*from   w w  w .  j  av  a2  s.  c  om*/
 * 
 * @throws Exception
 *             if en error occurs...
 */
public void test16SignSessionECDSAWithECDSAImplicitlyCACA() throws Exception {
    log.trace(">test16SignSessionECDSAWithECDSAImplicitlyCACA()");

    userAdminSession.setUserStatus(admin, "fooecdsaimpca", UserDataConstants.STATUS_NEW);
    log.debug("Reset status of 'fooecdsaimpca' to NEW");
    // user that we know exists...
    X509Certificate selfcert = CertTools.genSelfCert("CN=selfsigned", 1, null, ecdsakeys.getPrivate(),
            ecdsakeys.getPublic(), AlgorithmConstants.SIGALG_SHA256_WITH_ECDSA, false);
    X509Certificate cert = (X509Certificate) signSession.createCertificate(admin, "fooecdsaimpca", "foo123",
            selfcert);
    assertNotNull("Misslyckades skapa cert", cert);
    log.debug("Cert=" + cert.toString());
    PublicKey pk = cert.getPublicKey();
    if (pk instanceof JCEECPublicKey) {
        JCEECPublicKey ecpk = (JCEECPublicKey) pk;
        assertEquals(ecpk.getAlgorithm(), "EC");
        org.bouncycastle.jce.spec.ECParameterSpec spec = ecpk.getParameters();
        assertNotNull("ImplicitlyCA must have null spec", spec);
    } else {
        assertTrue("Public key is not EC", false);
    }
    try {
        cert.verify(ecdsaimplicitlycacacert.getPublicKey());
    } catch (Exception e) {
        assertTrue("Verify failed: " + e.getMessage(), false);
    }

    // FileOutputStream fos = new FileOutputStream("testcert.crt");
    // fos.write(cert.getEncoded());
    // fos.close();
    log.trace("<test16SignSessionECDSAWithECDSAImplicitlyCACA()");
}

From source file:org.ejbca.core.ejb.ca.sign.SignSessionTest.java

License:Open Source License

/**
 * tests bouncy PKCS10//  w  ww. j  a  va  2s.c o  m
 * 
 * @throws Exception
 *             if en error occurs...
 */
public void test17TestBCPKCS10ECDSAWithECDSAImplicitlyCACA() throws Exception {
    log.trace(">test17TestBCPKCS10ECDSAWithECDSAImplicitlyCACA()");
    userAdminSession.setUserStatus(admin, "fooecdsaimpca", UserDataConstants.STATUS_NEW);
    log.debug("Reset status of 'foo' to NEW");
    // Create certificate request
    PKCS10CertificationRequest req = new PKCS10CertificationRequest("SHA256WithECDSA",
            CertTools.stringToBcX509Name("C=SE, O=AnaTom, CN=fooecdsaimpca"), ecdsakeys.getPublic(),
            new DERSet(), ecdsakeys.getPrivate());
    ByteArrayOutputStream bOut = new ByteArrayOutputStream();
    DEROutputStream dOut = new DEROutputStream(bOut);
    dOut.writeObject(req);
    dOut.close();

    PKCS10CertificationRequest req2 = new PKCS10CertificationRequest(bOut.toByteArray());
    boolean verify = req2.verify();
    log.debug("Verify returned " + verify);
    assertTrue(verify);
    log.debug("CertificationRequest generated successfully.");
    byte[] bcp10 = bOut.toByteArray();
    PKCS10RequestMessage p10 = new PKCS10RequestMessage(bcp10);
    p10.setUsername("fooecdsaimpca");
    p10.setPassword("foo123");
    IResponseMessage resp = signSession.createCertificate(admin, p10,
            org.ejbca.core.protocol.X509ResponseMessage.class, null);
    Certificate cert = CertTools.getCertfromByteArray(resp.getResponseMessage());
    assertNotNull("Failed to create certificate", cert);
    log.debug("Cert=" + cert.toString());
    PublicKey pk = cert.getPublicKey();
    if (pk instanceof JCEECPublicKey) {
        JCEECPublicKey ecpk = (JCEECPublicKey) pk;
        assertEquals(ecpk.getAlgorithm(), "EC");
        org.bouncycastle.jce.spec.ECParameterSpec spec = ecpk.getParameters();
        assertNotNull("ImplicitlyCA must have null spec", spec);
    } else {
        assertTrue("Public key is not EC", false);
    }
    try {
        cert.verify(ecdsaimplicitlycacacert.getPublicKey());
    } catch (Exception e) {
        assertTrue("Verify failed: " + e.getMessage(), false);
    }
    log.trace("<test17TestBCPKCS10ECDSAWithECDSAImplicitlyCACA()");
}

From source file:org.ejbca.core.ejb.ca.sign.SignSessionWithECGOST3410Test.java

License:Open Source License

private void checkECKey(PublicKey pk) {
    if (pk instanceof JCEECPublicKey) {
        JCEECPublicKey ecpk = (JCEECPublicKey) pk;
        assertEquals(ecpk.getAlgorithm(), "EC");
        org.bouncycastle.jce.spec.ECParameterSpec spec = ecpk.getParameters();
        assertNotNull("Only ImplicitlyCA curves can have null spec", spec);
    } else if (pk instanceof BCECPublicKey) {
        BCECPublicKey ecpk = (BCECPublicKey) pk;
        assertEquals(ecpk.getAlgorithm(), "EC");
        org.bouncycastle.jce.spec.ECParameterSpec spec = ecpk.getParameters();
        assertNotNull("Only ImplicitlyCA curves can have null spec", spec);
    } else if (pk instanceof BCECGOST3410PublicKey) {
        BCECGOST3410PublicKey ecpk = (BCECGOST3410PublicKey) pk;
        assertEquals(ecpk.getAlgorithm(), AlgorithmConstants.KEYALGORITHM_ECGOST3410);
        org.bouncycastle.jce.spec.ECParameterSpec spec = ecpk.getParameters();
        assertNotNull("Only ImplicitlyCA curves can have null spec", spec);
    } else {/*ww w . j av  a 2  s  .c o  m*/
        assertTrue("Public key is not EC: " + pk.getClass().getName(), false);
    }
}