List of usage examples for org.bouncycastle.asn1.x500 X500Name X500Name
public X500Name(X500NameStyle style, String dirName)
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); }