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 package org.apache.hc.core5.ssl;
29
30 import java.security.Provider;
31 import java.security.Security;
32 import java.util.HashSet;
33 import java.util.Set;
34
35 public class DummyProvider extends Provider {
36
37 private final Provider realJSSEProvider = Security.getProvider(TestSSLContextBuilder.PROVIDER_SUN_JSSE);
38 private final Provider realJCEEProvider = Security.getProvider(TestSSLContextBuilder.PROVIDER_SUN_JCE);
39 final static String NAME = "FAKE";
40
41 private final Set<String> requestedTypes = new HashSet<>();
42
43 public DummyProvider() {
44 super(NAME, 1.1, "http core fake provider 1.1");
45 }
46
47 public boolean hasBeenRequested(final String what) {
48 return requestedTypes.contains(what);
49 }
50
51 @Override
52 public Service getService(final String type, final String algorithm) {
53 requestedTypes.add(type);
54 if ("KeyStore".equals(type)) {
55 return realJCEEProvider.getService(type, algorithm);
56 }
57 return realJSSEProvider.getService(type, algorithm);
58 }
59
60 @Override
61 public synchronized Set<Service> getServices() {
62 return realJSSEProvider.getServices();
63 }
64 }