Example usage for org.bouncycastle.asn1.x500.style BCStyle ST

List of usage examples for org.bouncycastle.asn1.x500.style BCStyle ST

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.x500.style BCStyle ST.

Prototype

ASN1ObjectIdentifier ST

To view the source code for org.bouncycastle.asn1.x500.style BCStyle ST.

Click Source Link

Document

state, or province name - StringType(SIZE(1..64))

Usage

From source file:ca.trustpoint.m2m.M2mTrustAnchor.java

License:Apache License

/**
 * Creates a new instance.//from ww w  . j  a v  a 2s.co m
 *
 * @param x509Certificate X.509 certificate to use as trust anchor.
 * @throws IllegalArgumentException if x509Certificate is null.
 */
public M2mTrustAnchor(X509Certificate x509Certificate) throws IllegalArgumentException {
    if (x509Certificate == null) {
        throw new IllegalArgumentException("x509Certificate cannot be null.");
    }

    X500Name x500Name = JcaX500NameUtil.getSubject(x509Certificate);
    EntityName caName = new EntityName();
    int attributeCount = 0;

    for (RDN rdn : x500Name.getRDNs()) {
        AttributeTypeAndValue attr = rdn.getFirst();
        EntityNameAttributeId attributeId;

        if (BCStyle.C.equals(attr.getType())) {
            attributeId = EntityNameAttributeId.Country;
        } else if (BCStyle.O.equals(attr.getType())) {
            attributeId = EntityNameAttributeId.Organization;
        } else if (BCStyle.OU.equals(attr.getType())) {
            attributeId = EntityNameAttributeId.OrganizationalUnit;
        } else if (BCStyle.DN_QUALIFIER.equals(attr.getType())) {
            attributeId = EntityNameAttributeId.DistinguishedNameQualifier;
        } else if (BCStyle.ST.equals(attr.getType())) {
            attributeId = EntityNameAttributeId.StateOrProvince;
        } else if (BCStyle.L.equals(attr.getType())) {
            attributeId = EntityNameAttributeId.Locality;
        } else if (BCStyle.CN.equals(attr.getType())) {
            attributeId = EntityNameAttributeId.CommonName;
        } else if (BCStyle.SN.equals(attr.getType())) {
            attributeId = EntityNameAttributeId.SerialNumber;
        } else if (BCStyle.DC.equals(attr.getType())) {
            attributeId = EntityNameAttributeId.DomainComponent;
        } else {
            // Unsupported attribute.
            continue;
        }

        caName.addAttribute(new EntityNameAttribute(attributeId, IETFUtils.valueToString(attr.getValue())));
        attributeCount++;

        if (attributeCount == EntityName.MAXIMUM_ATTRIBUTES) {
            // We have reached the maximum number of attributes for an EntityName, so stop here.
            break;
        }
    }

    this.caName = caName;
    this.publicKey = x509Certificate.getPublicKey();
    certificate = null;
}

From source file:com.aqnote.shared.cryptology.cert.util.X500NameUtil.java

License:Open Source License

public static X500Name createClass1EndPrincipal(String cn, String email) {
    X500NameBuilder x500NameBuilder = new X500NameBuilder(BCStyle.INSTANCE);
    x500NameBuilder.addRDN(BCStyle.E, email);
    x500NameBuilder.addRDN(BCStyle.CN, cn);
    x500NameBuilder.addRDN(BCStyle.OU, DN_OU);
    x500NameBuilder.addRDN(BCStyle.O, DN_O);
    x500NameBuilder.addRDN(BCStyle.L, DN_L);
    x500NameBuilder.addRDN(BCStyle.ST, DN_ST);
    x500NameBuilder.addRDN(BCStyle.C, DN_C);
    return x500NameBuilder.build();
}

From source file:com.aqnote.shared.cryptology.cert.util.X500NameUtil.java

License:Open Source License

public static X500Name createClass3EndPrincipal(String cn, String email) {
    X500NameBuilder x500NameBuilder = new X500NameBuilder(BCStyle.INSTANCE);
    x500NameBuilder.addRDN(BCStyle.E, email);
    x500NameBuilder.addRDN(BCStyle.CN, cn);
    x500NameBuilder.addRDN(BCStyle.OU, DN_OU);
    x500NameBuilder.addRDN(BCStyle.O, DN_O);
    x500NameBuilder.addRDN(BCStyle.L, DN_L);
    x500NameBuilder.addRDN(BCStyle.ST, DN_ST);
    x500NameBuilder.addRDN(BCStyle.C, DN_C);
    return x500NameBuilder.build();
}

From source file:com.aqnote.shared.cryptology.cert.util.X500NameUtil.java

License:Open Source License

public static X500Name createClass3EndPrincipal(List<String> cnList, String email) {
    X500NameBuilder x500NameBuilder = new X500NameBuilder(BCStyle.INSTANCE);
    x500NameBuilder.addRDN(BCStyle.E, email);
    for (String cn : cnList) {
        x500NameBuilder.addRDN(BCStyle.CN, cn);
    }// ww w .j  a  v  a  2  s.c  o  m
    x500NameBuilder.addRDN(BCStyle.OU, DN_OU);
    x500NameBuilder.addRDN(BCStyle.O, DN_O);
    x500NameBuilder.addRDN(BCStyle.L, DN_L);
    x500NameBuilder.addRDN(BCStyle.ST, DN_ST);
    x500NameBuilder.addRDN(BCStyle.C, DN_C);
    return x500NameBuilder.build();
}

From source file:com.hypersocket.certs.X509CertificateUtils.java

License:Open Source License

public static X509Certificate generateSelfSignedCertificate(String cn, String ou, String o, String l, String s,
        String c, KeyPair pair, String signatureType) {
    try {/*from   ww w.j  a v  a  2s. co  m*/
        // Generate self-signed certificate
        X500NameBuilder builder = new X500NameBuilder(BCStyle.INSTANCE);
        builder.addRDN(BCStyle.OU, ou);
        builder.addRDN(BCStyle.O, o);
        builder.addRDN(BCStyle.L, l);
        builder.addRDN(BCStyle.ST, s);
        builder.addRDN(BCStyle.CN, cn);

        Date notBefore = new Date(System.currentTimeMillis() - 1000L * 60 * 60 * 24 * 30);
        Date notAfter = new Date(System.currentTimeMillis() + (1000L * 60 * 60 * 24 * 365 * 10));

        BigInteger serial = BigInteger.valueOf(System.currentTimeMillis());

        X509v3CertificateBuilder certGen = new JcaX509v3CertificateBuilder(builder.build(), serial, notBefore,
                notAfter, builder.build(), pair.getPublic());
        ContentSigner sigGen = new JcaContentSignerBuilder(signatureType).setProvider(BC)
                .build(pair.getPrivate());
        X509Certificate cert = new JcaX509CertificateConverter().setProvider(BC)
                .getCertificate(certGen.build(sigGen));
        cert.checkValidity(new Date());
        cert.verify(cert.getPublicKey());

        return cert;

    } catch (Throwable t) {
        throw new RuntimeException("Failed to generate self-signed certificate!", t);
    }
}

From source file:com.motorolamobility.studio.android.certmanager.core.KeyStoreUtils.java

License:Apache License

/**
 * Create a new X509 certificate for a given KeyPair
 * @param keyPair the {@link KeyPair} used to create the certificate,
 *     RSAPublicKey and RSAPrivateKey are mandatory on keyPair, IllegalArgumentExeption will be thrown otherwise.
 * @param issuerName The issuer name to be used on the certificate
 * @param ownerName  The owner name to be used on the certificate
 * @param expireDate The expire date/*from  w  w w. ja v  a2 s .c  om*/
 * @return The {@link X509Certificate}
 * @throws IOException
 * @throws OperatorCreationException
 * @throws CertificateException
 */
public static X509Certificate createX509Certificate(KeyPair keyPair, CertificateDetailsInfo certDetails)
        throws IOException, OperatorCreationException, CertificateException {

    PublicKey publicKey = keyPair.getPublic();
    PrivateKey privateKey = keyPair.getPrivate();
    if (!(publicKey instanceof RSAPublicKey) || !(privateKey instanceof RSAPrivateKey)) {
        throw new IllegalArgumentException(CertificateManagerNLS.KeyStoreUtils_RSA_Keys_Expected);
    }

    RSAPublicKey rsaPublicKey = (RSAPublicKey) publicKey;
    RSAPrivateKey rsaPrivateKey = (RSAPrivateKey) privateKey;

    //Transform the PublicKey into the BouncyCastle expected format
    ASN1InputStream asn1InputStream = null;
    X509Certificate x509Certificate = null;

    try {
        asn1InputStream = new ASN1InputStream(new ByteArrayInputStream(rsaPublicKey.getEncoded()));
        SubjectPublicKeyInfo pubKey = new SubjectPublicKeyInfo((ASN1Sequence) asn1InputStream.readObject());

        X500NameBuilder nameBuilder = new X500NameBuilder(new BCStrictStyle());
        addField(BCStyle.C, certDetails.getCountry(), nameBuilder);
        addField(BCStyle.ST, certDetails.getState(), nameBuilder);
        addField(BCStyle.L, certDetails.getLocality(), nameBuilder);
        addField(BCStyle.O, certDetails.getOrganization(), nameBuilder);
        addField(BCStyle.OU, certDetails.getOrganizationUnit(), nameBuilder);
        addField(BCStyle.CN, certDetails.getCommonName(), nameBuilder);

        X500Name subjectName = nameBuilder.build();
        X500Name issuerName = subjectName;
        X509v3CertificateBuilder certBuilder = new X509v3CertificateBuilder(issuerName,
                BigInteger.valueOf(new SecureRandom().nextInt()), GregorianCalendar.getInstance().getTime(),
                certDetails.getExpirationDate(), subjectName, pubKey);

        AlgorithmIdentifier sigAlgId = new DefaultSignatureAlgorithmIdentifierFinder().find("SHA1withRSA"); //$NON-NLS-1$
        AlgorithmIdentifier digAlgId = new DefaultDigestAlgorithmIdentifierFinder().find(sigAlgId);
        BcContentSignerBuilder sigGen = new BcRSAContentSignerBuilder(sigAlgId, digAlgId);

        //Create RSAKeyParameters, the private key format expected by Bouncy Castle
        RSAKeyParameters keyParams = new RSAKeyParameters(true, rsaPrivateKey.getPrivateExponent(),
                rsaPrivateKey.getModulus());

        ContentSigner contentSigner = sigGen.build(keyParams);
        X509CertificateHolder certificateHolder = certBuilder.build(contentSigner);

        //Convert the X509Certificate from BouncyCastle format to the java.security format
        JcaX509CertificateConverter certConverter = new JcaX509CertificateConverter();
        x509Certificate = certConverter.getCertificate(certificateHolder);
    } finally {
        if (asn1InputStream != null) {
            try {
                asn1InputStream.close();
            } catch (IOException e) {
                StudioLogger.error("Could not close stream while creating X509 certificate. " + e.getMessage());
            }
        }
    }

    return x509Certificate;
}

From source file:com.motorolamobility.studio.android.certmanager.ui.dialogs.CertificateInfoDialog.java

License:Apache License

@Override
protected Control createDialogArea(Composite parent) {
    Composite newComposite = (Composite) super.createDialogArea(parent);
    X509Certificate cert = null;/*  ww w . jav a  2 s . com*/

    try {
        cert = entry.getX509Certificate();

        if (cert != null) {
            X500Name x500name = new JcaX509CertificateHolder(cert).getSubject();
            RDN commonName = x500name.getRDNs(BCStyle.CN).length >= 1 ? x500name.getRDNs(BCStyle.CN)[0] : null;
            RDN organization = x500name.getRDNs(BCStyle.O).length >= 1 ? x500name.getRDNs(BCStyle.O)[0] : null;
            RDN organizationUnit = x500name.getRDNs(BCStyle.OU).length >= 1 ? x500name.getRDNs(BCStyle.OU)[0]
                    : null;
            RDN country = x500name.getRDNs(BCStyle.C).length >= 1 ? x500name.getRDNs(BCStyle.C)[0] : null;
            RDN state = x500name.getRDNs(BCStyle.ST).length >= 1 ? x500name.getRDNs(BCStyle.ST)[0] : null;
            RDN locality = x500name.getRDNs(BCStyle.L).length >= 1 ? x500name.getRDNs(BCStyle.L)[0] : null;

            block.createInfoBlock(newComposite, entry.getAlias(), printCertInfo(commonName),
                    printCertInfo(organization), printCertInfo(organizationUnit), printCertInfo(country),
                    printCertInfo(state), printCertInfo(locality), cert.getNotAfter(), cert.getNotBefore());
        } else {
            //not found Android certificate expected (X509Certificate)
            EclipseUtils.showErrorDialog(
                    CertificateManagerNLS.CertificateInfoDialog_UnknownCertificateKeypairType,
                    CertificateManagerNLS.CertificatePropertiesHandler_ErrorGettingCertificateOrKeypairProperties);
        }
    } catch (Exception e) {
        EclipseUtils.showErrorDialog(
                CertificateManagerNLS.CertificatePropertiesHandler_ErrorGettingCertificateOrKeypairProperties,
                e.getMessage());
        StudioLogger.error(CertificateInfoDialog.class,
                CertificateManagerNLS.CertificatePropertiesHandler_ErrorGettingCertificateOrKeypairProperties,
                e);
    }
    return newComposite;
}

From source file:ddf.security.SubjectUtilsTest.java

License:Open Source License

@Test
public void testFilterDNDropTwo() {
    Predicate<RDN> predicate = rdn -> !ImmutableSet.of(BCStyle.C, BCStyle.ST)
            .contains(rdn.getTypesAndValues()[0].getType());
    String baseDN = SubjectUtils.filterDN(dnPrincipal, predicate);
    assertThat(baseDN, is("CN=Foo,OU=Engineering,OU=Dev,O=DDF"));
}

From source file:ddf.security.SubjectUtilsTest.java

License:Open Source License

@Test
public void testFilterDNRemoveAll() {
    Predicate<RDN> predicate = rdn -> !ImmutableSet.of(BCStyle.OU, BCStyle.CN, BCStyle.O, BCStyle.ST, BCStyle.C)
            .contains(rdn.getTypesAndValues()[0].getType());
    String baseDN = SubjectUtils.filterDN(dnPrincipal, predicate);
    assertThat(baseDN, is(""));
}

From source file:eu.betaas.taas.securitymanager.core.service.impl.InitGWStarService.java

License:Apache License

public void initGwStar(String countryCode, String state, String location, String orgName, String gwId) {

    // subject root
    X500NameBuilder subjRootBld = new X500NameBuilder(BCStyle.INSTANCE);
    subjRootBld.addRDN(BCStyle.C, countryCode);
    subjRootBld.addRDN(BCStyle.ST, state);
    subjRootBld.addRDN(BCStyle.L, location);
    subjRootBld.addRDN(BCStyle.O, orgName);
    subjRootBld.addRDN(BCStyle.CN, "BETaaS Instance Root Certificate");

    X500Name subjRoot = subjRootBld.build();

    X500NameBuilder subjInterBld = new X500NameBuilder(BCStyle.INSTANCE);
    subjInterBld.addRDN(BCStyle.C, countryCode);
    subjInterBld.addRDN(BCStyle.ST, state);
    subjInterBld.addRDN(BCStyle.L, location);
    subjInterBld.addRDN(BCStyle.O, orgName);
    subjInterBld.addRDN(BCStyle.CN, "BETaaS Instance CA Certificate");

    X500Name subjInter = subjInterBld.build();

    X500NameBuilder subjEndBld = new X500NameBuilder(BCStyle.INSTANCE);
    subjEndBld.addRDN(BCStyle.C, countryCode);
    subjEndBld.addRDN(BCStyle.ST, state);
    subjEndBld.addRDN(BCStyle.L, location);
    subjEndBld.addRDN(BCStyle.O, orgName);
    subjEndBld.addRDN(BCStyle.CN, "BETaaS Gateway Certificate");

    X500Name subjEnd = subjEndBld.build();

    log.info("Start initiating GW* certificate now!!");
    gwStarCertIntService.createGwStarCredentials(subjRoot, subjInter, subjEnd, gwId);
}