Example usage for org.bouncycastle.asn1.x500 X500Name X500Name

List of usage examples for org.bouncycastle.asn1.x500 X500Name X500Name

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.x500 X500Name X500Name.

Prototype

public X500Name(X500NameStyle style, String dirName) 

Source Link

Usage

From source file:org.ejbca.core.protocol.cmp.CrmfRequestMessage.java

License:Open Source License

@Override
public X500Name getRequestX500Name() {
    final CertTemplate templ = getReq().getCertReq().getCertTemplate();
    X500Name name = templ.getSubject();
    if (name != null) {
        name = new X500Name(new CeSecoreNameStyle(), name);
    }//from  w  w w  . ja v  a2  s.  c o m
    if (log.isDebugEnabled()) {
        log.debug("Request X500Name is: " + name);
    }
    return name;
}

From source file:org.ejbca.util.LdapTools.java

License:Open Source License

/**
 * Returns all intermediate DNs in a given DN under a base DN, in the order from the
 * first one below the base DN and further down.
 *///from w w  w .ja v a2s  .  c  om
public static List<String> getIntermediateDNs(String dn, String baseDN) {
    // Remove the base DN
    if (!dn.endsWith(baseDN))
        return new ArrayList<String>();
    final String subDN = dn.substring(0, dn.length() - baseDN.length());

    // Split and escape the DN (but ignore the lowest level component)
    final List<String> components = new ArrayList<String>();
    for (String comp : CertTools.getX500NameComponents(CertTools.getParentDN(subDN))) {
        if (!StringUtils.isEmpty(comp)) {
            components.add(LDAPDN.escapeRDN(comp));
        }
    }

    // Add each intermediate DN
    final List<String> ret = new ArrayList<String>();
    for (int start = components.size() - 1; start >= 0; start--) {
        final List<String> intermComps = components.subList(start, components.size());
        final X500NameBuilder nameBuilder = new X500NameBuilder(LdapNameStyle.INSTANCE);
        for (String comp : intermComps) {
            final RDN rdn = new X500Name(LdapNameStyle.INSTANCE, comp).getRDNs()[0];
            nameBuilder.addRDN(rdn.getFirst());
        }
        ret.add(nameBuilder.build().toString() + "," + baseDN);
    }
    return ret;
}

From source file:org.ejbca.util.LdapToolsTest.java

License:Open Source License

/**
 * Tests parsing with LdapNameStyle class which is used by the LdapTools class.
 *//*w w  w. j  av a  2s .c o  m*/
@Test
public void test04ParseLdapNameStyle() {
    // LDAP-specific attributes such as MAIL and SERIALNUMBER should work with LdapNameStyle...
    X500Name ldapName = new X500Name(LdapNameStyle.INSTANCE, LDAP_TEST_DN);
    assertEquals(LDAP_TEST_DN.toString().toLowerCase(), ldapName.toString().toLowerCase());

    // ...but they should not work with CeSecoreNameStyle
    try {
        new X500Name(CeSecoreNameStyle.INSTANCE, LDAP_TEST_DN);
        fail("LDAP-specific DN should not be accepted by CeSecoreNameStyle");
    } catch (Exception e) {
        // NOPMD: expected case
    }
}

From source file:org.ejbca.util.LdapToolsTest.java

License:Open Source License

/**
 * Tests name builder with LdapNameStyle class which is used by the LdapTools class.
 *//*www . ja va 2s. c o m*/
@Test
public void test05BuildLdapNameStyle() {
    X500Name ldapName = new X500Name(LdapNameStyle.INSTANCE, LDAP_TEST_DN);

    // LdapNameStyle should return a DN with MAIL and SERIALNUMBER
    X500NameBuilder ldapNameBuilder = new X500NameBuilder(LdapNameStyle.INSTANCE);
    for (RDN rdn : ldapName.getRDNs()) {
        for (AttributeTypeAndValue atv : rdn.getTypesAndValues()) {
            ldapNameBuilder.addRDN(atv);
        }
    }
    assertEquals(LDAP_TEST_DN.toLowerCase(), ldapNameBuilder.build().toString().toLowerCase());

    // CesecoreNameStyle should return a DN with E and SN
    X500NameBuilder cesecoreNameBuilder = new X500NameBuilder(CeSecoreNameStyle.INSTANCE);
    for (RDN rdn : ldapName.getRDNs()) {
        for (AttributeTypeAndValue atv : rdn.getTypesAndValues()) {
            cesecoreNameBuilder.addRDN(atv);
        }
    }
    assertEquals("cn=test person,e=test@example.com,sn=123456-7890",
            cesecoreNameBuilder.build().toString().toLowerCase());
}

From source file:org.globus.gsi.bc.X500NameHelper.java

License:Apache License

/**
 * Converts to {@link X500Name X500Name} object.
 *
 * @return the <code>X500Name</code> object.
 */// w w w .  j  a va2  s  .com
public X500Name getAsName() {
    RDN[] rdns = new RDN[seq.size()];
    int index = 0;
    for (Enumeration<?> e = seq.getObjects(); e.hasMoreElements();) {
        rdns[index++] = RDN.getInstance(e.nextElement());
    }
    return new X500Name(BCStyle.INSTANCE, rdns);
}

From source file:org.globus.gsi.bc.X500NameHelper.java

License:Apache License

private static String toString(ASN1Sequence seq) {
    if (seq == null) {
        return null;
    }//from w w  w.  j a  v a  2s.  c o  m
    RDN[] rdns = new RDN[seq.size()];
    int index = 0;
    for (Enumeration<?> e = seq.getObjects(); e.hasMoreElements();) {
        rdns[index++] = RDN.getInstance(e.nextElement());
    }
    return new X500Name(GlobusStyle.INSTANCE, rdns).toString();
}

From source file:org.kse.gui.dnchooser.DistinguishedNameChooser.java

License:Open Source License

public DistinguishedNameChooser(X500Name dn, boolean editable, String defaultDN) {
    this.editable = editable;
    if (dn == null || dn.getRDNs().length == 0) {
        if (defaultDN == null || defaultDN.isEmpty()) {
            defaultDN = "CN=, OU=, O=, L=, ST=, C=";
        }/*from   w  w  w  .j a v a  2s .co  m*/
        currentName = new X500Name(KseX500NameStyle.INSTANCE, defaultDN);
    } else {
        this.currentName = dn;
    }
    this.defaultName = defaultDN;
    init();
}

From source file:org.kse.gui.dnchooser.DistinguishedNameChooser.java

License:Open Source License

public static void main(String[] args) throws Exception {

    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

    JFrame frame = new JFrame();
    frame.setSize(800, 400);/*from w  ww  . j  a va 2  s  .c  o m*/

    X500Name dn = new X500Name(KseX500NameStyle.INSTANCE,
            "CN=test, OU=Development, OU=Software, O=ACME Ltd., C=UK, E=test@example.com");
    String defaultDN = "CN=, OU=, O=, C=";

    final DistinguishedNameChooser nameChooser = new DistinguishedNameChooser(dn, true, defaultDN);

    frame.getContentPane().setLayout(new BorderLayout());
    frame.getContentPane().add(nameChooser, BorderLayout.CENTER);

    JButton resetButton = new JButton("Reset to Default DN");
    resetButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent evt) {
            nameChooser.reset();
        }
    });
    frame.getContentPane().add(resetButton, BorderLayout.NORTH);

    JButton showNameButton = new JButton("Print Name");
    showNameButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent evt) {
            System.out.println(nameChooser.getDN().toString());
        }
    });
    frame.getContentPane().add(showNameButton, BorderLayout.SOUTH);

    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

From source file:org.vesalainen.security.cert.X509Generator.java

License:Open Source License

/**
 * Create a signed X.509 Certificate/*  ww  w  .j  a  va 2  s  .c o  m*/
 * @param subjectDN the X.509 Distinguished Name, eg "CN=Test, L=London, C=GB"
 * @param issuerDN Signers X.509 Distinguished Name, eg "CN=Test, L=London, C=GB"
 * @param pair the KeyPair
 * @param privkey Signers private key
 * @param days how many days from now the Certificate is valid for
 * @param signingAlgorithm the signing algorithm, e.g. "SHA1withRSA"
 * @return 
 * @throws java.security.cert.CertificateException 
 */
public X509Certificate generateCertificate(String subjectDN, String issuerDN, KeyPair pair, PrivateKey privkey,
        int days, String signingAlgorithm) throws CertificateException {
    if (privkey == null) {
        privkey = pair.getPrivate();
    }
    X500Name issuer;
    if (issuerDN == null) {
        issuer = new X500Name(RFC4519Style.INSTANCE, subjectDN);
    } else {
        issuer = new X500Name(RFC4519Style.INSTANCE, issuerDN);
    }
    long now = System.currentTimeMillis();
    BigInteger serial = BigInteger.probablePrime(64, new SecureRandom(Primitives.writeLong(now)));
    X500Name subject = new X500Name(RFC4519Style.INSTANCE, subjectDN);
    PublicKey publicKey = pair.getPublic();
    byte[] encoded = publicKey.getEncoded();
    SubjectPublicKeyInfo subjectPublicKeyInfo = SubjectPublicKeyInfo.getInstance(encoded);
    X509v3CertificateBuilder builder = new X509v3CertificateBuilder(issuer, serial, new Date(now - 86400000l),
            new Date(now + days * 86400000l), subject, subjectPublicKeyInfo);
    X509CertificateHolder holder = builder.build(createSigner(privkey, signingAlgorithm));
    return new JcaX509CertificateConverter().getCertificate(holder);
}