21 * questions. |
21 * questions. |
22 */ |
22 */ |
23 |
23 |
24 /** |
24 /** |
25 * @test |
25 * @test |
26 * @bug 6854712 7171570 |
26 * @bug 6854712 7171570 8010748 |
27 * @summary Basic unit test for PKIXRevocationChecker |
27 * @summary Basic unit test for PKIXRevocationChecker |
28 */ |
28 */ |
29 |
29 |
30 import java.io.ByteArrayInputStream; |
30 import java.io.ByteArrayInputStream; |
31 import java.io.InputStream; |
31 import java.io.InputStream; |
32 import java.io.IOException; |
32 import java.io.IOException; |
33 import java.io.OutputStream; |
33 import java.io.OutputStream; |
34 import java.net.URI; |
34 import java.net.URI; |
35 import java.security.cert.CertificateFactory; |
35 import java.security.cert.*; |
36 import java.security.cert.CertPathBuilder; |
|
37 import java.security.cert.CertPathChecker; |
|
38 import java.security.cert.CertPathValidator; |
|
39 import java.security.cert.Extension; |
|
40 import java.security.cert.PKIXRevocationChecker; |
|
41 import java.security.cert.PKIXRevocationChecker.Option; |
36 import java.security.cert.PKIXRevocationChecker.Option; |
42 import java.security.cert.X509Certificate; |
37 import java.util.*; |
43 import java.util.ArrayList; |
|
44 import java.util.EnumSet; |
|
45 import java.util.List; |
|
46 import java.util.Map; |
|
47 import java.util.Set; |
|
48 |
38 |
49 public class UnitTest { |
39 public class UnitTest { |
50 |
40 |
51 public static void main(String[] args) throws Exception { |
41 public static void main(String[] args) throws Exception { |
52 |
42 |
54 CertPathChecker cpc = cpv.getRevocationChecker(); |
44 CertPathChecker cpc = cpv.getRevocationChecker(); |
55 PKIXRevocationChecker prc = (PKIXRevocationChecker)cpc; |
45 PKIXRevocationChecker prc = (PKIXRevocationChecker)cpc; |
56 |
46 |
57 System.out.println("Testing that get methods return null or " + |
47 System.out.println("Testing that get methods return null or " + |
58 "empty lists/sets/maps"); |
48 "empty lists/sets/maps"); |
59 requireNull(prc.getOCSPResponder(), "getOCSPResponder()"); |
49 requireNull(prc.getOcspResponder(), "getOcspResponder()"); |
60 requireNull(prc.getOCSPResponderCert(), "getOCSPResponderCert()"); |
50 requireNull(prc.getOcspResponderCert(), "getOcspResponderCert()"); |
61 requireEmpty(prc.getOCSPExtensions(), "getOCSPExtensions()"); |
51 requireEmpty(prc.getOcspExtensions(), "getOcspExtensions()"); |
62 requireEmpty(prc.getOCSPResponses(), "getOCSPResponses()"); |
52 requireEmpty(prc.getOcspResponses(), "getOcspResponses()"); |
63 requireEmpty(prc.getOptions(), "getOptions()"); |
53 requireEmpty(prc.getOptions(), "getOptions()"); |
|
54 requireEmpty(prc.getSoftFailExceptions(), "getSoftFailExceptions()"); |
64 |
55 |
65 System.out.println("Testing that get methods return same parameters " + |
56 System.out.println("Testing that get methods return same parameters " + |
66 "that are passed to set methods"); |
57 "that are passed to set methods"); |
67 URI uri = new URI("http://localhost"); |
58 URI uri = new URI("http://localhost"); |
68 prc.setOCSPResponder(uri); |
59 prc.setOcspResponder(uri); |
69 requireEquals(uri, prc.getOCSPResponder(), "getOCSPResponder()"); |
60 requireEquals(uri, prc.getOcspResponder(), "getOcspResponder()"); |
70 |
61 |
71 X509Certificate cert = getCert(); |
62 X509Certificate cert = getCert(); |
72 prc.setOCSPResponderCert(cert); |
63 prc.setOcspResponderCert(cert); |
73 requireEquals(cert, prc.getOCSPResponderCert(), |
64 requireEquals(cert, prc.getOcspResponderCert(), |
74 "getOCSPResponderCert()"); |
65 "getOcspResponderCert()"); |
75 |
66 |
76 List<Extension> exts = new ArrayList<>(); |
67 List<Extension> exts = new ArrayList<>(); |
77 for (String oid : cert.getNonCriticalExtensionOIDs()) { |
68 for (String oid : cert.getNonCriticalExtensionOIDs()) { |
78 System.out.println(oid); |
69 System.out.println(oid); |
79 exts.add(new ExtensionImpl(oid, |
70 exts.add(new ExtensionImpl(oid, |
80 cert.getExtensionValue(oid), false)); |
71 cert.getExtensionValue(oid), false)); |
81 } |
72 } |
82 prc.setOCSPExtensions(exts); |
73 prc.setOcspExtensions(exts); |
83 requireEquals(exts, prc.getOCSPExtensions(), "getOCSPExtensions()"); |
74 requireEquals(exts, prc.getOcspExtensions(), "getOcspExtensions()"); |
84 |
75 |
85 Set<Option> options = EnumSet.of(Option.ONLY_END_ENTITY); |
76 Set<Option> options = EnumSet.of(Option.ONLY_END_ENTITY); |
86 prc.setOptions(options); |
77 prc.setOptions(options); |
87 requireEquals(options, prc.getOptions(), "getOptions()"); |
78 requireEquals(options, prc.getOptions(), "getOptions()"); |
88 |
79 |
89 System.out.println("Testing that parameters are re-initialized to " + |
80 System.out.println("Testing that parameters are re-initialized to " + |
90 "default values if null is passed to set methods"); |
81 "default values if null is passed to set methods"); |
91 prc.setOCSPResponder(null); |
82 prc.setOcspResponder(null); |
92 requireNull(prc.getOCSPResponder(), "getOCSPResponder()"); |
83 requireNull(prc.getOcspResponder(), "getOcspResponder()"); |
93 prc.setOCSPResponderCert(null); |
84 prc.setOcspResponderCert(null); |
94 requireNull(prc.getOCSPResponderCert(), "getOCSPResponderCert()"); |
85 requireNull(prc.getOcspResponderCert(), "getOcspResponderCert()"); |
95 prc.setOCSPExtensions(null); |
86 prc.setOcspExtensions(null); |
96 requireEmpty(prc.getOCSPExtensions(), "getOCSPExtensions()"); |
87 requireEmpty(prc.getOcspExtensions(), "getOcspExtensions()"); |
97 prc.setOCSPResponses(null); |
88 prc.setOcspResponses(null); |
98 requireEmpty(prc.getOCSPResponses(), "getOCSPResponses()"); |
89 requireEmpty(prc.getOcspResponses(), "getOcspResponses()"); |
99 prc.setOptions(null); |
90 prc.setOptions(null); |
100 requireEmpty(prc.getOptions(), "getOptions()"); |
91 requireEmpty(prc.getOptions(), "getOptions()"); |
101 |
92 |
102 System.out.println("Testing that getRevocationChecker returns new " + |
93 System.out.println("Testing that getRevocationChecker returns new " + |
103 "instance each time"); |
94 "instance each time"); |