package com.intrbiz.bergamot.crypto.util; import static org.hamcrest.CoreMatchers.*; import static org.hamcrest.MatcherAssert.*; import java.security.KeyPair; import org.junit.Test; import com.intrbiz.bergamot.crypto.util.RSAUtil.KeyType; public class TestRSAUtil { @Test public void testGenerateRSAKeyPair() { KeyPair pair = RSAUtil.generateRSAKeyPair(512); assertThat(pair, is(notNullValue())); } @Test public void testBuildDN() { String dn = RSAUtil.buildDN("GB", "SomeState", "SomeLocality", "MyOrg", "Basement", "testing.123"); assertThat(dn, is(notNullValue())); assertThat(dn, is(equalTo("C=GB, ST=SomeState, L=SomeLocality, O=MyOrg, OU=Basement, CN=testing.123"))); } @Test public void testGenerateCertificate() throws Exception { String rootDn = RSAUtil.buildDN("GB", "SomeState", "SomeLocality", "MyOrg", "Basement", "testing.root"); // generate our root cert CertificatePair root = RSAUtil.generateCertificate(rootDn, SerialNum.randomSerialNum(), 365 * 15, 512, KeyType.CA, null); assertThat(root, is(notNullValue())); assertThat(root.getCertificate(), is(notNullValue())); assertThat(root.getKey(), is(notNullValue())); System.out.println("Root:\n" + root); // generate a server cert String serverDn = RSAUtil.buildDN("GB", "SomeState", "SomeLocality", "MyOrg", "Basement", "testing.server"); CertificatePair server = RSAUtil.generateCertificate(serverDn, SerialNum.randomSerialNum(), 365 * 15, 512, KeyType.SERVER, root); assertThat(server, is(notNullValue())); assertThat(server.getCertificate(), is(notNullValue())); assertThat(server.getKey(), is(notNullValue())); server.getCertificate().verify(root.getCertificate().getPublicKey()); System.out.println("Server:\n" + server); } }