📄 testcerttools.java
字号:
/************************************************************************* * * * EJBCA: The OpenSource Certificate Authority * * * * This software is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or any later version. * * * * See terms of license at gnu.org. * * * *************************************************************************/package se.anatom.ejbca.util;import java.security.cert.X509Certificate;import junit.framework.TestCase;import org.apache.log4j.Logger;/** * Tests the CertTools class . * * @version $Id: TestCertTools.java,v 1.6.2.5 2005/11/17 20:42:01 herrvendil Exp $ */public class TestCertTools extends TestCase { private static Logger log = Logger.getLogger(TestCertTools.class); static byte[] testcert = Base64.decode(("MIIDATCCAmqgAwIBAgIIczEoghAwc3EwDQYJKoZIhvcNAQEFBQAwLzEPMA0GA1UE" + "AxMGVGVzdENBMQ8wDQYDVQQKEwZBbmFUb20xCzAJBgNVBAYTAlNFMB4XDTAzMDky" + "NDA2NDgwNFoXDTA1MDkyMzA2NTgwNFowMzEQMA4GA1UEAxMHcDEydGVzdDESMBAG" + "A1UEChMJUHJpbWVUZXN0MQswCQYDVQQGEwJTRTCBnTANBgkqhkiG9w0BAQEFAAOB" + "iwAwgYcCgYEAnPAtfpU63/0h6InBmesN8FYS47hMvq/sliSBOMU0VqzlNNXuhD8a" + "3FypGfnPXvjJP5YX9ORu1xAfTNao2sSHLtrkNJQBv6jCRIMYbjjo84UFab2qhhaJ" + "wqJgkQNKu2LHy5gFUztxD8JIuFPoayp1n9JL/gqFDv6k81UnDGmHeFcCARGjggEi" + "MIIBHjAPBgNVHRMBAf8EBTADAQEAMA8GA1UdDwEB/wQFAwMHoAAwOwYDVR0lBDQw" + "MgYIKwYBBQUHAwEGCCsGAQUFBwMCBggrBgEFBQcDBAYIKwYBBQUHAwUGCCsGAQUF" + "BwMHMB0GA1UdDgQWBBTnT1aQ9I0Ud4OEfNJkSOgJSrsIoDAfBgNVHSMEGDAWgBRj" + "e/R2qFQkjqV0pXdEpvReD1eSUTAiBgNVHREEGzAZoBcGCisGAQQBgjcUAgOgCQwH" + "Zm9vQGZvbzASBgNVHSAECzAJMAcGBSkBAQEBMEUGA1UdHwQ+MDwwOqA4oDaGNGh0" + "dHA6Ly8xMjcuMC4wLjE6ODA4MC9lamJjYS93ZWJkaXN0L2NlcnRkaXN0P2NtZD1j" + "cmwwDQYJKoZIhvcNAQEFBQADgYEAU4CCcLoSUDGXJAOO9hGhvxQiwjGD2rVKCLR4" + "emox1mlQ5rgO9sSel6jHkwceaq4A55+qXAjQVsuy76UJnc8ncYX8f98uSYKcjxo/" + "ifn1eHMbL8dGLd5bc2GNBZkmhFIEoDvbfn9jo7phlS8iyvF2YhC4eso8Xb+T7+BZ" + "QUOBOvc=").getBytes()); static byte[] guidcert = Base64.decode( ("MIIC+zCCAmSgAwIBAgIIBW0F4eGmH0YwDQYJKoZIhvcNAQEFBQAwMTERMA8GA1UE" +"AxMIQWRtaW5DQTExDzANBgNVBAoTBkFuYVRvbTELMAkGA1UEBhMCU0UwHhcNMDQw" +"OTE2MTc1NzQ1WhcNMDYwOTE2MTgwNzQ1WjAyMRQwEgYKCZImiZPyLGQBARMEZ3Vp" +"ZDENMAsGA1UEAxMER3VpZDELMAkGA1UEBhMCU0UwgZ8wDQYJKoZIhvcNAQEBBQAD" +"gY0AMIGJAoGBANdjsBcLJKUN4hzJU1p3cqaXhPgEjGul62/3xv+Gow+7oOYePcK8" +"bM5VO4zdQVWEhuGOZFaZ70YbXhei4F9kvqlN7xuG47g7DNZ0/fnRzvGY0BHmIR4Y" +"/U87oMEDa2Giy0WTjsmT14uzy4luFgqb2ZA3USGcyJ9hoT6j1WDyOxitAgMBAAGj" +"ggEZMIIBFTAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIFoDA7BgNVHSUENDAy" +"BggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMEBggrBgEFBQcDBQYIKwYBBQUH" +"AwcwHQYDVR0OBBYEFJlDddj88zI7tz3SPfdig0gw5IWvMB8GA1UdIwQYMBaAFI1k" +"9WhE1WXpeezZx/kM0qsoZyqVMHgGA1UdEQRxMG+BDGd1aWRAZm9vLmNvbYIMZ3Vp" +"ZC5mb28uY29thhRodHRwOi8vZ3VpZC5mb28uY29tL4cECgwNDqAcBgorBgEEAYI3" +"FAIDoA4MDGd1aWRAZm9vLmNvbaAXBgkrBgEEAYI3GQGgCgQIEjRWeJCrze8wDQYJ" +"KoZIhvcNAQEFBQADgYEAq39n6CZJgJnW0CH+QkcuU5F4RQveNPGiJzIJxUeOQ1yQ" +"gSkt3hvNwG4kLBmmwe9YLdS83dgNImMWL/DgID/47aENlBNai14CvtMceokik4IN" +"sacc7x/Vp3xezHLuBMcf3E3VSo4FwqcUYFmu7Obke3ebmB08nC6gnQHkzjNsmQw=").getBytes()); static byte[] altNameCert = Base64.decode( ("MIIDDzCCAfegAwIBAgIIPiL0klmu1uIwDQYJKoZIhvcNAQEFBQAwNzERMA8GA1UE" +"AxMIQWRtaW5DQTExFTATBgNVBAoTDEVKQkNBIFNhbXBsZTELMAkGA1UEBhMCU0Uw" +"HhcNMDUwODAyMTAxOTQ5WhcNMDcwODAyMTAyOTQ5WjAsMQwwCgYDVQQDEwNmb28x" +"DzANBgNVBAoTBkFuYVRvbTELMAkGA1UEBhMCU0UwXDANBgkqhkiG9w0BAQEFAANL" +"ADBIAkEAmMVWkkEMLbDNoB/NG3kJ22eC18syXqaHWRWc4DldFeCMGeLzfB2NklNv" +"hmr2kgIJcK+wyFpMkYm46dSMOrvovQIDAQABo4HxMIHuMAwGA1UdEwEB/wQCMAAw" +"DgYDVR0PAQH/BAQDAgWgMDsGA1UdJQQ0MDIGCCsGAQUFBwMBBggrBgEFBQcDAgYI" +"KwYBBQUHAwQGCCsGAQUFBwMFBggrBgEFBQcDBzAdBgNVHQ4EFgQUIV/Fck/+UVnw" +"tJigtZIF5OuuhlIwHwYDVR0jBBgwFoAUB/2KRYNOZxRDkJ5oChjNeXgwtCcwUQYD" +"VR0RBEowSIEKdG9tYXNAYS5zZYIId3d3LmEuc2WGEGh0dHA6Ly93d3cuYS5zZS+H" +"BAoBAQGgGAYKKwYBBAGCNxQCA6AKDAhmb29AYS5zZTANBgkqhkiG9w0BAQUFAAOC" +"AQEAfAGJM0/s+Yi1Ewmvt9Z/9w8X/T/02bF8P8MJG2H2eiIMCs/tkNhnlFGYYGhD" +"Km8ynveQZbdYvKFioOr/D19gMis/HNy9UDfOMrJdeGWiwxUHvKKbtcSlOPH3Hm0t" +"LSKomWdKfjTksfj69Tf01S0oNonprvwGxIdsa1uA9BC/MjkkPt1qEWkt/FWCfq9u" +"8Xyj2tZEJKjLgAW6qJ3ye81pEVKHgMmapWTQU2uI1qyEPYxoT9WkQtSObGI1wCqO" +"YmKglnd5BIUBPO9LOryyHlSRTID5z0UgDlrTAaNYuN8QOYF+DZEQxm4bSXTDooGX" +"rHjSjn/7Urb31CXWAxq0Zhk3fg==").getBytes()); /** * Creates a new TestCertTools object. * * @param name DOCUMENT ME! */ public TestCertTools(String name) { super(name); } protected void setUp() throws Exception { log.debug(">setUp()"); CertTools.installBCProvider(); log.debug("<setUp()"); } protected void tearDown() throws Exception { } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void test01GetPartFromDN() throws Exception { log.debug(">test01GetPartFromDN()"); // We try to examine the general case and som special cases, which we want to be able to handle String dn0 = "C=SE, O=AnaTom, CN=foo"; assertEquals(CertTools.getPartFromDN(dn0, "CN"), "foo"); assertEquals(CertTools.getPartFromDN(dn0, "O"), "AnaTom"); assertEquals(CertTools.getPartFromDN(dn0, "C"), "SE"); assertEquals(CertTools.getPartFromDN(dn0, "cn"), "foo"); assertEquals(CertTools.getPartFromDN(dn0, "o"), "AnaTom"); assertEquals(CertTools.getPartFromDN(dn0, "c"), "SE"); String dn1 = "c=SE, o=AnaTom, cn=foo"; assertEquals(CertTools.getPartFromDN(dn1, "CN"), "foo"); assertEquals(CertTools.getPartFromDN(dn1, "O"), "AnaTom"); assertEquals(CertTools.getPartFromDN(dn1, "C"), "SE"); assertEquals(CertTools.getPartFromDN(dn1, "cn"), "foo"); assertEquals(CertTools.getPartFromDN(dn1, "o"), "AnaTom"); assertEquals(CertTools.getPartFromDN(dn1, "c"), "SE"); String dn2 = "C=SE, O=AnaTom, CN=cn"; assertEquals(CertTools.getPartFromDN(dn2, "CN"), "cn"); String dn3 = "C=SE, O=AnaTom, CN=CN"; assertEquals(CertTools.getPartFromDN(dn3, "CN"), "CN"); String dn4 = "C=CN, O=AnaTom, CN=foo"; assertEquals(CertTools.getPartFromDN(dn4, "CN"), "foo"); String dn5 = "C=cn, O=AnaTom, CN=foo"; assertEquals(CertTools.getPartFromDN(dn5, "CN"), "foo"); String dn6 = "CN=foo, O=PrimeKey, C=SE"; assertEquals(CertTools.getPartFromDN(dn6, "CN"), "foo"); assertEquals(CertTools.getPartFromDN(dn6, "O"), "PrimeKey"); assertEquals(CertTools.getPartFromDN(dn6, "C"), "SE"); String dn7 = "CN=foo, O=PrimeKey, C=cn"; assertEquals(CertTools.getPartFromDN(dn7, "CN"), "foo"); assertEquals(CertTools.getPartFromDN(dn7, "C"), "cn"); String dn8 = "CN=foo, O=PrimeKey, C=CN"; assertEquals(CertTools.getPartFromDN(dn8, "CN"), "foo"); assertEquals(CertTools.getPartFromDN(dn8, "C"), "CN"); String dn9 = "CN=foo, O=CN, C=CN"; assertEquals(CertTools.getPartFromDN(dn9, "CN"), "foo"); assertEquals(CertTools.getPartFromDN(dn9, "O"), "CN"); String dn10 = "CN=foo, CN=bar,O=CN, C=CN"; assertEquals(CertTools.getPartFromDN(dn10, "CN"), "foo"); assertEquals(CertTools.getPartFromDN(dn10, "O"), "CN"); String dn11 = "CN=foo,CN=bar, O=CN, C=CN"; assertEquals(CertTools.getPartFromDN(dn11, "CN"), "foo"); assertEquals(CertTools.getPartFromDN(dn11, "O"), "CN"); String dn12 = "CN=\"foo, OU=bar\", O=baz\\\\\\, quux,C=C"; assertEquals(CertTools.getPartFromDN(dn12, "CN"), "foo, OU=bar"); assertEquals(CertTools.getPartFromDN(dn12, "O"), "baz\\, quux"); assertNull(CertTools.getPartFromDN(dn12, "OU")); String dn13 = "C=SE, O=PrimeKey, EmailAddress=foo@primekey.se"; assertEquals(CertTools.getEmailFromDN(dn13), "foo@primekey.se"); String dn14 = "C=SE, E=foo@primekey.se, O=PrimeKey"; assertEquals(CertTools.getEmailFromDN(dn14), "foo@primekey.se"); String dn15 = "C=SE, E=foo@primekey.se, O=PrimeKey, EmailAddress=bar@primekey.se"; assertEquals(CertTools.getEmailFromDN(dn15), "bar@primekey.se"); log.debug("<test01GetPartFromDN()"); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void test02StringToBCDNString() throws Exception { log.debug(">test02StringToBCDNString()"); // We try to examine the general case and som special cases, which we want to be able to handle String dn1 = "C=SE, O=AnaTom, CN=foo"; assertEquals(CertTools.stringToBCDNString(dn1), "CN=foo,O=AnaTom,C=SE"); String dn2 = "C=SE, O=AnaTom, CN=cn"; assertEquals(CertTools.stringToBCDNString(dn2), "CN=cn,O=AnaTom,C=SE"); String dn3 = "CN=foo, O=PrimeKey, C=SE"; assertEquals(CertTools.stringToBCDNString(dn3), "CN=foo,O=PrimeKey,C=SE"); String dn4 = "cn=foo, o=PrimeKey, c=SE"; assertEquals(CertTools.stringToBCDNString(dn4), "CN=foo,O=PrimeKey,C=SE"); String dn5 = "cn=foo,o=PrimeKey,c=SE"; assertEquals(CertTools.stringToBCDNString(dn5), "CN=foo,O=PrimeKey,C=SE"); String dn6 = "C=SE, O=AnaTom, CN=CN"; assertEquals(CertTools.stringToBCDNString(dn6), "CN=CN,O=AnaTom,C=SE"); String dn7 = "C=CN, O=AnaTom, CN=foo"; assertEquals(CertTools.stringToBCDNString(dn7), "CN=foo,O=AnaTom,C=CN"); String dn8 = "C=cn, O=AnaTom, CN=foo"; assertEquals(CertTools.stringToBCDNString(dn8), "CN=foo,O=AnaTom,C=cn"); String dn9 = "CN=foo, O=PrimeKey, C=CN"; assertEquals(CertTools.stringToBCDNString(dn9), "CN=foo,O=PrimeKey,C=CN"); String dn10 = "CN=foo, O=PrimeKey, C=cn"; assertEquals(CertTools.stringToBCDNString(dn10), "CN=foo,O=PrimeKey,C=cn"); String dn11 = "CN=foo, O=CN, C=CN"; assertEquals(CertTools.stringToBCDNString(dn11), "CN=foo,O=CN,C=CN"); String dn12 = "O=PrimeKey,C=SE,CN=CN"; assertEquals(CertTools.stringToBCDNString(dn12), "CN=CN,O=PrimeKey,C=SE"); String dn13 = "O=PrimeKey,C=SE,CN=CN, OU=FooOU"; assertEquals(CertTools.stringToBCDNString(dn13), "CN=CN,OU=FooOU,O=PrimeKey,C=SE"); String dn14 = "O=PrimeKey,C=CN,CN=CN, OU=FooOU"; assertEquals(CertTools.stringToBCDNString(dn14), "CN=CN,OU=FooOU,O=PrimeKey,C=CN"); String dn15 = "O=PrimeKey,C=CN,CN=cn, OU=FooOU"; assertEquals(CertTools.stringToBCDNString(dn15), "CN=cn,OU=FooOU,O=PrimeKey,C=CN"); String dn16 = "CN=foo, CN=bar,O=CN, C=CN"; assertEquals(CertTools.stringToBCDNString(dn16), "CN=foo,CN=bar,O=CN,C=CN"); String dn17 = "CN=foo,CN=bar, O=CN, O=C, C=CN"; assertEquals(CertTools.stringToBCDNString(dn17), "CN=foo,CN=bar,O=CN,O=C,C=CN"); String dn18 = "cn=jean,cn=EJBCA,dc=home,dc=jean"; assertEquals(CertTools.stringToBCDNString(dn18), "CN=jean,CN=EJBCA,DC=home,DC=jean"); String dn19 = "cn=bar, cn=foo,o=oo, O=EJBCA,DC=DC2, dc=dc1, C=SE"; assertEquals(CertTools.stringToBCDNString(dn19), "CN=bar,CN=foo,O=oo,O=EJBCA,DC=DC2,DC=dc1,C=SE"); String dn20 = " CN=\"foo, OU=bar\", O=baz\\\\\\, quux,C=SE "; // BC always escapes with backslash, it doesn't use quotes. assertEquals(CertTools.stringToBCDNString(dn20), "CN=foo\\, OU=bar,O=baz\\\\\\, quux,C=SE"); String dn21 = "C=SE,O=Foo\\, Inc, OU=Foo\\, Dep, CN=Foo\\'"; String bcdn21 = CertTools.stringToBCDNString(dn21); assertEquals(bcdn21, "CN=Foo\',OU=Foo\\, Dep,O=Foo\\, Inc,C=SE"); // it is allowed to escape , assertEquals(StringTools.strip(bcdn21), "CN=Foo',OU=Foo\\, Dep,O=Foo\\, Inc,C=SE"); String dn22 = "C=SE,O=Foo\\, Inc, OU=Foo, Dep, CN=Foo'"; String bcdn22 = CertTools.stringToBCDNString(dn22); assertEquals(bcdn22, "CN=Foo',OU=Foo,O=Foo\\, Inc,C=SE"); assertEquals(StringTools.strip(bcdn22), "CN=Foo',OU=Foo,O=Foo\\, Inc,C=SE"); log.debug("<test02StringToBCDNString()"); } /** * DOCUMENT ME!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -