1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 package dk.sosi.seal.pki;
30
31 import dk.sosi.seal.pki.impl.HashMapCertificateCache;
32 import dk.sosi.seal.pki.impl.PropertiesSOSIConfiguration;
33 import dk.sosi.seal.pki.impl.federationcert.FederationCertificateStoreAdapter;
34 import dk.sosi.seal.xml.CertificateParser;
35 import dk.sosi.seal.xml.XmlUtil;
36
37 import java.security.cert.X509Certificate;
38 import java.util.Properties;
39
40
41
42
43
44
45
46
47
48 public class OCESTestCertificationAuthority extends AbstractOCESCertificationAuthority {
49
50 private static final String OCES1_TEST_ROOT_CERTIFICATE_BASE_64 =
51 "MIIEXTCCA8agAwIBAgIEQDYX/DANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQGEwJE" +
52 "SzEMMAoGA1UEChMDVERDMSIwIAYDVQQDExlUREMgT0NFUyBTeXN0ZW10ZXN0IENB" +
53 "IElJMB4XDTA0MDIyMDEzNTE0OVoXDTM3MDYyMDE0MjE0OVowPzELMAkGA1UEBhMC" +
54 "REsxDDAKBgNVBAoTA1REQzEiMCAGA1UEAxMZVERDIE9DRVMgU3lzdGVtdGVzdCBD" +
55 "QSBJSTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArawANI56sljDsnosDU+M" +
56 "p4r+RKFys9c5qy8jWZyA+7PYFs4+IZcFxnbNuHi8aAcbSFOUJF0PGpNgPEtNc+XA" +
57 "K7p16iawNTYpMkHm2VoInNfwWEj/wGmtb4rKDT2a7auGk76q+Xdqnno4PRO8e7AK" +
58 "EHw7pN3kiHmZCI48PTRpRx8CAwEAAaOCAmQwggJgMA8GA1UdEwEB/wQFMAMBAf8w" +
59 "DgYDVR0PAQH/BAQDAgEGMIIBAwYDVR0gBIH7MIH4MIH1BgkpAQEBAQEBAQEwgecw" +
60 "LwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2VydGlmaWthdC5kay9yZXBvc2l0b3J5" +
61 "MIGzBggrBgEFBQcCAjCBpjAKFgNUREMwAwIBARqBl1REQyBUZXN0IENlcnRpZmlr" +
62 "YXRlciBmcmEgZGVubmUgQ0EgdWRzdGVkZXMgdW5kZXIgT0lEIDEuMS4xLjEuMS4x" +
63 "LjEuMS4xLjEuIFREQyBUZXN0IENlcnRpZmljYXRlcyBmcm9tIHRoaXMgQ0EgYXJl" +
64 "IGlzc3VlZCB1bmRlciBPSUQgMS4xLjEuMS4xLjEuMS4xLjEuMS4wEQYJYIZIAYb4" +
65 "QgEBBAQDAgAHMIGWBgNVHR8EgY4wgYswVqBUoFKkUDBOMQswCQYDVQQGEwJESzEM" +
66 "MAoGA1UEChMDVERDMSIwIAYDVQQDExlUREMgT0NFUyBTeXN0ZW10ZXN0IENBIElJ" +
67 "MQ0wCwYDVQQDEwRDUkwxMDGgL6AthitodHRwOi8vdGVzdC5jcmwub2Nlcy5jZXJ0" +
68 "aWZpa2F0LmRrL29jZXMuY3JsMCsGA1UdEAQkMCKADzIwMDQwMjIwMTM1MTQ5WoEP" +
69 "MjAzNzA2MjAxNDIxNDlaMB8GA1UdIwQYMBaAFByYCUcaTDi5EMUEKVvx9E6Aasx+" +
70 "MB0GA1UdDgQWBBQcmAlHGkw4uRDFBClb8fROgGrMfjAdBgkqhkiG9n0HQQAEEDAO" +
71 "GwhWNi4wOjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEApyoAjiKq6WK5XaKWUpVs" +
72 "kutzohv1VcCke/3JeUVtmB+byexJMC171s4RHoqcbufcI2ASVWwu84i45MaKg/nx" +
73 "oqojMyY19/W2wbQFEdsxUCnLa9e9tlWj0xS/AaKeUhk2MBOqv+hMdc71jOqc5JN7" +
74 "T2Ba6ZRIY5uXkO3IGZ3XUsw=";
75
76 private static final String OCES2_TEST_IG_ROOT_CERTIFICATE_BASE_64 =
77 "MIIGRTCCBC2gAwIBAgIETHO9tTANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJE" +
78 "SzESMBAGA1UEChMJVFJVU1QyNDA4MSswKQYDVQQDEyJUUlVTVDI0MDggU3lzdGVt" +
79 "dGVzdCBJWCBQcmltYXJ5IENBMB4XDTEwMDgyNDEyMTAyM1oXDTM3MTIyNDEyNDAy" +
80 "M1owTjELMAkGA1UEBhMCREsxEjAQBgNVBAoTCVRSVVNUMjQwODErMCkGA1UEAxMi" +
81 "VFJVU1QyNDA4IFN5c3RlbXRlc3QgSVggUHJpbWFyeSBDQTCCAiIwDQYJKoZIhvcN" +
82 "AQEBBQADggIPADCCAgoCggIBAMgd7UdslIik/4S2EF+i37FaxHOD+tvtJQgeMAei" +
83 "0kOBFtCuu+tz6uJGWOVDRvh6SyTncdZGAlRKNZAK+ZULUnU1pdB2fbV9rhLF4q0M" +
84 "BGSgjUd+DpQhUmLi2QLaZvfmmTz4melVewCtYjqCRzPULHetHQKCQIduIhMfR0EE" +
85 "e38Ooy6PwLEUrYbKyq6rd0Xf2jcSV0srM3INfEULmeWld/kYPI8SH6M/XXiyvhFv" +
86 "ymAYY3v9XlAWUtTSnJmqs1yU6xpQG1VwRsHQSDvyWmPluGKwELCLWKXK2sNco6Yy" +
87 "RwNGcnhsjM2kPZ8nhgDJNVFFdd9AjD/qAeex54n+sJHMH/WtmOz9HWeQYrbGO+lW" +
88 "W/ZXss8Z+KlMzje3pWgxYIhK8OZoRvoUKoLQ1JJH/KjgwcZxuxKzGm7uwoLGHUjg" +
89 "Yr/1TzJT+sddLTK9TNL2SOwATbg+ueZ7kqIt7Uxih9203b4Y1x1rtIxa7zxtZ4Fc" +
90 "MvOc8rVfEnanBdhC1nUCThPivf6HrsybD3FG/22FQdq/7ZmcOB2avn4Z1F983Wlc" +
91 "o6etLHsHfqDy771bMO83aLp/bHBHqOUG7bnNaSegmK5blfEBmYkzAXFaxQnr02LK" +
92 "7v54dCO8lzBya/06erErdTywSRGLN/+We/h2NVGDokv6remDdAC0XFIs4WrTSvYg" +
93 "oiP/AgMBAAGjggEpMIIBJTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB" +
94 "BjARBgNVHSAECjAIMAYGBFUdIAAwga4GA1UdHwSBpjCBozA6oDigNoY0aHR0cDov" +
95 "L2NybC5zeXN0ZW10ZXN0OS50cnVzdDI0MDguY29tL3N5c3RlbXRlc3Q5LmNybDBl" +
96 "oGOgYaRfMF0xCzAJBgNVBAYTAkRLMRIwEAYDVQQKEwlUUlVTVDI0MDgxKzApBgNV" +
97 "BAMTIlRSVVNUMjQwOCBTeXN0ZW10ZXN0IElYIFByaW1hcnkgQ0ExDTALBgNVBAMT" +
98 "BENSTDEwHwYDVR0jBBgwFoAUAMhRPjg1v23MAbpjBIk5L7AlcdowHQYDVR0OBBYE" +
99 "FADIUT44Nb9tzAG6YwSJOS+wJXHaMA0GCSqGSIb3DQEBCwUAA4ICAQAk/ghXxPKM" +
100 "5E/VwViE0UtJQKBzsaCT33Jzqx081Cmt8mfQTEhpVhiE3jMkYYj5kaN0qqHfuvip" +
101 "mcpjs4qs38lpZGR13XeuHKY5QLEKo7L14DxhmJi3nfBIUMdcplQpvGZFr9zmyWZ3" +
102 "DUXNdLfKLwXXZHJB5+N3TrOk/11yksibNLEDLpS/tCjYKZI3VKL/6QDdFbR1JjCy" +
103 "t6hUeCG4Do2SIggst3oiKRcuPYkX6kukm1V5+vY8i0zRd48jKh3oPQFyi5StD1+o" +
104 "uHYLHDr5UgueC77xJ3ZcVpyToxJjc2mxqovB5r2Zrfs9JdT/iLQDs5kvpkOuZL8F" +
105 "4yPj3PgNvz1WZkQq/QwlO6EdwoAiLTzWxlnTSQ2XGYEjREkOglrLuRoBWz89ZgMC" +
106 "xrMfPWbCRyTC6i5MRNmdRKUtqhe/KO2oSuO1RioIO0sTe2tnkiEmIN7kXD92R1KL" +
107 "JCZB2NFaWOv+yU1GvpER2gXrlvq/yoFuU8g+72BT6UiaCsmr7L1iK7poJKDClS+A" +
108 "t+5/+gvQRq9BjGtR/q4d3B8xL8Mg58rZbf6FHas6cb0c3e9iVtqSQviXO6VYPQch" +
109 "X8rjBrXViDvlKXa3fwu6pzhJhJQnsM0jgSV7wEQfoRoTvkXPxwik1xyroV3qKIhx" +
110 "y3pgq7fDfTxMgVDvMIhjU0+ZQ/DP4ska2g==";
111
112 private static final String OCES2_TEST_PP_ROOT_CERTIFICATE_BASE_64 =
113 "MIIGSDCCBDCgAwIBAgIES+pulDANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQGEwJE" +
114 "SzESMBAGA1UEChMJVFJVU1QyNDA4MSwwKgYDVQQDEyNUUlVTVDI0MDggU3lzdGVt" +
115 "dGVzdCBWSUkgUHJpbWFyeSBDQTAeFw0xMDA1MTIwODMyMTRaFw0zNzAxMTIwOTAy" +
116 "MTRaME8xCzAJBgNVBAYTAkRLMRIwEAYDVQQKEwlUUlVTVDI0MDgxLDAqBgNVBAMT" +
117 "I1RSVVNUMjQwOCBTeXN0ZW10ZXN0IFZJSSBQcmltYXJ5IENBMIICIjANBgkqhkiG" +
118 "9w0BAQEFAAOCAg8AMIICCgKCAgEApuuMpdHu/lXhQ+9TyecthOxrg5hPgxlK1rpj" +
119 "syBNDEmOEpmOlK8ghyZ7MnSF3ffsiY+0jA51p+AQfYYuarGgUQVO+VM6E3VUdDpg" +
120 "WEksetCYY8L7UrpyDeYx9oywT7E+YXH0vCoug5F9vBPnky7PlfVNaXPfgjh1+66m" +
121 "lUD9sV3fiTjDL12GkwOLt35S5BkcqAEYc37HT69N88QugxtaRl8eFBRumj1Mw0LB" +
122 "xCwl21GdVY4EjqH1Us7YtRMRJ2nEFTCRWHzm2ryf7BGd80YmtJeL6RoiidwlIgzv" +
123 "hoFhv4XdLHwzaQbdb9s141q2s9KDPZCGcgIgeXZdqY1Vz7UBCMiBDG7q2S2ni7wp" +
124 "UMBye+iYVkvJD32srGCzpWqG7203cLyZCjq2oWuLkL807/Sk4sYleMA4YFqsazIf" +
125 "V+M0OVrJCCCkPysS10n/+ioleM0hnoxQiupujIGPcJMA8anqWueGIaKNZFA/m1IK" +
126 "wnn0CTkEm2aGTTEwpzb0+dCATlLyv6Ss3w+D7pqWCXsAVAZmD4pncX+/ASRZQd3o" +
127 "SvNQxUQr8EoxEULxSae0CPRyGwQwswGpqmGm8kNPHjIC5ks2mzHZAMyTz3zoU3h/" +
128 "QW2T2U2+pZjUeMjYhyrReWRbOIBCizoOaoaNcSnPGUEohGUyLPTbZLpWsm3vjbyk" +
129 "7yvPqoUCAwEAAaOCASowggEmMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD" +
130 "AgEGMBEGA1UdIAQKMAgwBgYEVR0gADCBrwYDVR0fBIGnMIGkMDqgOKA2hjRodHRw" +
131 "Oi8vY3JsLnN5c3RlbXRlc3Q3LnRydXN0MjQwOC5jb20vc3lzdGVtdGVzdDcuY3Js" +
132 "MGagZKBipGAwXjELMAkGA1UEBhMCREsxEjAQBgNVBAoTCVRSVVNUMjQwODEsMCoG" +
133 "A1UEAxMjVFJVU1QyNDA4IFN5c3RlbXRlc3QgVklJIFByaW1hcnkgQ0ExDTALBgNV" +
134 "BAMTBENSTDEwHwYDVR0jBBgwFoAUI7pMMZDh08zTG7MbWrbIRc3Tg5cwHQYDVR0O" +
135 "BBYEFCO6TDGQ4dPM0xuzG1q2yEXN04OXMA0GCSqGSIb3DQEBCwUAA4ICAQCRJ9TM" +
136 "7sISJBHQwN8xdey4rxA0qT7NZdKICcIxyIC82HIOGAouKb3oHjIoMgxIUhA3xbU3" +
137 "Putr4+Smnc1Ldrw8AofLGlFYG2ypg3cpF9pdHrVdh8QiERozLwfNPDgVeCAnjKPN" +
138 "t8mu0FWBS32tiVM5DEOUwDpoDDRF27Ku9qTFH4IYg90wLHfLi+nqc2HwVBUgDt3t" +
139 "XU6zK4pzM0CpbrbOXPJOYHMvaw/4Em2r0PZD+QOagcecxPMWI65t2h/USbyO/ah3" +
140 "VKnBWDkPsMKjj5jEbBVRnGZdv5rcJb0cHqQ802eztziA4HTbSzBE4oRaVCrhXg/g" +
141 "6Jj8/tZlgxRI0JGgAX2dvWQyP4xhbxLNCVXPdvRV0g0ehKvhom1FGjIz975/DMav" +
142 "kybh0gzygq4sY9Fykl4oT4rDkDvZLYIxS4u1BrUJJJaDzHCeXmZqOhx8She+Fj9Y" +
143 "wVVRGfxT4FL0Qd3WAtaCVyhSQ6SkZgrPvzAmxOUruI6XhEhYGlP5O8WFETiATxuZ" +
144 "AJNuKMJtibfRhMNsQ+TVv/ZPr5Swe+3DIQtmt1MIlGlTn4k40z4s6gDGKiFwAYXj" +
145 "d/kID32R/hJPE41o9+3nd8aHZhBy2lF0jKAmr5a6Lbhg2O7zjGq7mQ3MceNeebuW" +
146 "XD44AxIinryzhqnEWI+BxdlFaia3U7o2+HYdHw==";
147
148 static final X509Certificate OCES_1_TEST_ROOT_CERTIFICATE = CertificateParser.asCertificate(XmlUtil.fromBase64(OCES1_TEST_ROOT_CERTIFICATE_BASE_64));
149
150 static final X509Certificate OCES_2_TEST_IG_ROOT_CERTIFICATE = CertificateParser.asCertificate(XmlUtil.fromBase64(OCES2_TEST_IG_ROOT_CERTIFICATE_BASE_64));
151
152 static final X509Certificate OCES_2_TEST_PP_ROOT_CERTIFICATE = CertificateParser.asCertificate(XmlUtil.fromBase64(OCES2_TEST_PP_ROOT_CERTIFICATE_BASE_64));
153
154
155
156
157
158
159
160 @Deprecated
161 public OCESTestCertificationAuthority(Properties properties, CertificateStatusChecker certificateStatusChecker, IntermediateCertificateCache intermediateCertificateCache) {
162
163 this(PropertiesSOSIConfiguration.createWithDefaultOcesTestProperties(properties), certificateStatusChecker, intermediateCertificateCache,
164 new FederationCertificateStoreAdapter(PropertiesSOSIConfiguration.createWithDefaultOcesTestProperties(properties), new HashMapCertificateCache()));
165 }
166
167 public OCESTestCertificationAuthority(SOSIConfiguration configuration, CertificateStatusChecker certificateStatusChecker, IntermediateCertificateCache intermediateCertificateCache, FederationCertificateResolver federationCertificateResolver) {
168 super(configuration, certificateStatusChecker, intermediateCertificateCache, federationCertificateResolver);
169 }
170
171 protected X509Certificate getOCES1RootCertificate() {
172 return OCES_1_TEST_ROOT_CERTIFICATE;
173 }
174
175 protected X509Certificate[] getOCES2RootCertificates() {
176 return new X509Certificate[] {OCES_2_TEST_IG_ROOT_CERTIFICATE, OCES_2_TEST_PP_ROOT_CERTIFICATE};
177 }
178
179 protected String getCertificationAuthorityName() {
180 return "OCES Test";
181 }
182
183 }