Search in sources :

Example 21 with X509V3CertificateGenerator

use of org.bouncycastle.x509.X509V3CertificateGenerator in project nhin-d by DirectProject.

the class PKCS11Commands method createKeyPair.

@Command(name = "CreateKeyPair", usage = CREATE_KEY_PAIR)
public void createKeyPair(String[] args) {
    final String alias = StringArrayUtil.getRequiredValue(args, 0);
    final String keySize = StringArrayUtil.getOptionalValue(args, 1, "2048");
    try {
        // create a local keygen for a private key to sign the certificate
        final KeyPairGenerator localKeyGen = KeyPairGenerator.getInstance("RSA", "BC");
        final KeyPair localKeyPair = localKeyGen.generateKeyPair();
        final KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA", mgr.getKS().getProvider().getName());
        keyGen.initialize(Integer.parseInt(keySize));
        final KeyPair keyPair = keyGen.generateKeyPair();
        // create a self signed certificate
        X509V3CertificateGenerator v1CertGen = new X509V3CertificateGenerator();
        v1CertGen.setPublicKey(keyPair.getPublic());
        v1CertGen.setSignatureAlgorithm("SHA256WithRSAEncryption");
        Calendar start = Calendar.getInstance();
        Calendar end = Calendar.getInstance();
        end.add(Calendar.DAY_OF_MONTH, 3000);
        v1CertGen.setSerialNumber(BigInteger.valueOf(generatePositiveRandom()));
        v1CertGen.setIssuerDN(new X509Principal("cn=test"));
        v1CertGen.setNotBefore(start.getTime());
        v1CertGen.setNotAfter(end.getTime());
        // issuer and subject are the same for a CA
        v1CertGen.setSubjectDN(new X509Principal("cn=test"));
        v1CertGen.setPublicKey(keyPair.getPublic());
        X509Certificate newCACert = v1CertGen.generate(localKeyPair.getPrivate(), "BC");
        mgr.getKS().setKeyEntry(alias, keyPair.getPrivate(), "".toCharArray(), new X509Certificate[] { newCACert });
        System.out.println("Key pair created and stored.");
    } catch (Exception e) {
        e.printStackTrace();
        System.err.println("Failed to generate key pair: " + e.getMessage());
    }
}
Also used : KeyPair(java.security.KeyPair) X509V3CertificateGenerator(org.bouncycastle.x509.X509V3CertificateGenerator) X509Principal(org.bouncycastle.jce.X509Principal) Calendar(java.util.Calendar) KeyPairGenerator(java.security.KeyPairGenerator) X509Certificate(java.security.cert.X509Certificate) Command(org.nhindirect.common.tooling.Command)

Example 22 with X509V3CertificateGenerator

use of org.bouncycastle.x509.X509V3CertificateGenerator in project oxAuth by GluuFederation.

the class ECDSAKeyFactory method generateV3Certificate.

public Certificate generateV3Certificate(Date startDate, Date expirationDate, String dnName) throws CertificateEncodingException, InvalidKeyException, IllegalStateException, NoSuchProviderException, NoSuchAlgorithmException, SignatureException {
    // Create certificate
    // serial number for certificate
    BigInteger serialNumber = new BigInteger(1024, new Random());
    X509V3CertificateGenerator certGen = new X509V3CertificateGenerator();
    X500Principal principal = new X500Principal(dnName);
    certGen.setSerialNumber(serialNumber);
    certGen.setIssuerDN(principal);
    certGen.setNotBefore(startDate);
    certGen.setNotAfter(expirationDate);
    // note: same as issuer
    certGen.setSubjectDN(principal);
    certGen.setPublicKey(keyPair.getPublic());
    certGen.setSignatureAlgorithm(signatureAlgorithm.getAlgorithm());
    X509Certificate x509Certificate = certGen.generate(keyPair.getPrivate(), "BC");
    return new Certificate(signatureAlgorithm, x509Certificate);
}
Also used : X509V3CertificateGenerator(org.bouncycastle.x509.X509V3CertificateGenerator) Random(java.util.Random) BigInteger(java.math.BigInteger) X500Principal(javax.security.auth.x500.X500Principal) X509Certificate(java.security.cert.X509Certificate) X509Certificate(java.security.cert.X509Certificate) Certificate(org.xdi.oxauth.model.crypto.Certificate)

Example 23 with X509V3CertificateGenerator

use of org.bouncycastle.x509.X509V3CertificateGenerator in project android_frameworks_base by ResurrectionRemix.

the class AndroidKeyStoreKeyPairGeneratorSpi method generateSelfSignedCertificateWithValidSignature.

@SuppressWarnings("deprecation")
private X509Certificate generateSelfSignedCertificateWithValidSignature(PrivateKey privateKey, PublicKey publicKey, String signatureAlgorithm) throws Exception {
    final X509V3CertificateGenerator certGen = new X509V3CertificateGenerator();
    certGen.setPublicKey(publicKey);
    certGen.setSerialNumber(mSpec.getCertificateSerialNumber());
    certGen.setSubjectDN(mSpec.getCertificateSubject());
    certGen.setIssuerDN(mSpec.getCertificateSubject());
    certGen.setNotBefore(mSpec.getCertificateNotBefore());
    certGen.setNotAfter(mSpec.getCertificateNotAfter());
    certGen.setSignatureAlgorithm(signatureAlgorithm);
    return certGen.generate(privateKey);
}
Also used : X509V3CertificateGenerator(com.android.org.bouncycastle.x509.X509V3CertificateGenerator)

Example 24 with X509V3CertificateGenerator

use of org.bouncycastle.x509.X509V3CertificateGenerator in project android_frameworks_base by crdroidandroid.

the class AndroidKeyStoreKeyPairGeneratorSpi method generateSelfSignedCertificateWithValidSignature.

@SuppressWarnings("deprecation")
private X509Certificate generateSelfSignedCertificateWithValidSignature(PrivateKey privateKey, PublicKey publicKey, String signatureAlgorithm) throws Exception {
    final X509V3CertificateGenerator certGen = new X509V3CertificateGenerator();
    certGen.setPublicKey(publicKey);
    certGen.setSerialNumber(mSpec.getCertificateSerialNumber());
    certGen.setSubjectDN(mSpec.getCertificateSubject());
    certGen.setIssuerDN(mSpec.getCertificateSubject());
    certGen.setNotBefore(mSpec.getCertificateNotBefore());
    certGen.setNotAfter(mSpec.getCertificateNotAfter());
    certGen.setSignatureAlgorithm(signatureAlgorithm);
    return certGen.generate(privateKey);
}
Also used : X509V3CertificateGenerator(com.android.org.bouncycastle.x509.X509V3CertificateGenerator)

Aggregations

X509Certificate (java.security.cert.X509Certificate)16 X509V3CertificateGenerator (com.android.org.bouncycastle.x509.X509V3CertificateGenerator)14 KeyPair (java.security.KeyPair)9 X509V3CertificateGenerator (org.bouncycastle.x509.X509V3CertificateGenerator)8 X509Principal (org.bouncycastle.jce.X509Principal)7 Calendar (java.util.Calendar)6 BigInteger (java.math.BigInteger)4 X500Principal (javax.security.auth.x500.X500Principal)4 AuthorityKeyIdentifierStructure (org.bouncycastle.x509.extension.AuthorityKeyIdentifierStructure)4 KeyFactory (java.security.KeyFactory)3 KeyPairGenerator (java.security.KeyPairGenerator)3 PrivateKey (java.security.PrivateKey)3 Certificate (java.security.cert.Certificate)3 Date (java.util.Date)3 BasicConstraints (org.bouncycastle.asn1.x509.BasicConstraints)3 SubjectKeyIdentifierStructure (org.bouncycastle.x509.extension.SubjectKeyIdentifierStructure)3 BasicConstraints (com.android.org.bouncycastle.asn1.x509.BasicConstraints)2 ByteArrayInputStream (java.io.ByteArrayInputStream)2 InvalidKeyException (java.security.InvalidKeyException)2 NoSuchAlgorithmException (java.security.NoSuchAlgorithmException)2