1
2
3
4
5
6
7
8
9
10
11 package org.mule.util;
12
13 import java.security.Provider;
14 import java.security.Security;
15 import java.util.HashSet;
16 import java.util.Iterator;
17 import java.util.Set;
18
19
20
21
22
23 public final class DebugUtils
24 {
25
26
27 private DebugUtils ()
28 {
29
30 }
31
32
33
34
35 public static String[] listSecurityServiceTypes()
36 {
37 Set result = new HashSet();
38
39
40 Provider[] providers = Security.getProviders();
41 for (int i = 0; i < providers.length; i++)
42 {
43
44 Set keys = providers[i].keySet();
45 for (Iterator it = keys.iterator(); it.hasNext();)
46 {
47 String key = (String) it.next();
48 key = key.split(" ")[0];
49
50 if (key.startsWith("Alg.Alias."))
51 {
52
53 key = key.substring(10);
54 }
55 int ix = key.indexOf('.');
56 result.add(key.substring(0, ix));
57 }
58 }
59 return (String[]) result.toArray(new String[result.size()]);
60 }
61
62
63
64
65 public static String[] listCryptoImplementations(String serviceType)
66 {
67 Set result = new HashSet();
68
69
70 Provider[] providers = Security.getProviders();
71 for (int i = 0; i < providers.length; i++)
72 {
73
74 Set keys = providers[i].keySet();
75 for (Iterator it = keys.iterator(); it.hasNext();)
76 {
77 String key = (String) it.next();
78 key = key.split(" ")[0];
79
80 if (key.startsWith(serviceType + "."))
81 {
82 result.add(key.substring(serviceType.length() + 1));
83 }
84 else if (key.startsWith("Alg.Alias." + serviceType + "."))
85 {
86
87 result.add(key.substring(serviceType.length() + 11));
88 }
89 }
90 }
91 return (String[]) result.toArray(new String[result.size()]);
92 }
93 }