1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.api.ldap.model.constants;
21
22
23 import org.apache.directory.api.util.Strings;
24
25
26
27
28
29
30
31 public enum LdapSecurityConstants
32 {
33
34 HASH_METHOD_SHA("SHA", "SHA", "sha"),
35
36
37 HASH_METHOD_SSHA("SSHA", "SHA", "ssha"),
38
39
40 HASH_METHOD_SHA256("SHA-256", "SHA-256", "sha256"),
41
42
43 HASH_METHOD_SSHA256("SSHA-256", "SHA-256", "ssha256"),
44
45
46 HASH_METHOD_SHA384("SHA-384", "SHA-384", "sha384"),
47
48
49 HASH_METHOD_SSHA384("SSHA-384", "SHA-384", "ssha384"),
50
51
52 HASH_METHOD_SHA512("SHA-512", "SHA-512", "sha512"),
53
54
55 HASH_METHOD_SSHA512("SSHA-512", "SHA-512", "ssha512"),
56
57
58 HASH_METHOD_MD5("MD5", "MD5", "md5"),
59
60
61 HASH_METHOD_SMD5("SMD5", "MD5", "smd5"),
62
63
64 HASH_METHOD_CRYPT("CRYPT", "CRYPT", "crypt"),
65
66
67 HASH_METHOD_PKCS5S2("PKCS5S2", "PBKDF2WithHmacSHA1", "PKCS5S2");
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84 private String name;
85
86
87 private String algorithm;
88
89
90 private String prefix;
91
92
93
94
95
96
97
98
99
100 private LdapSecurityConstants( String name, String algorithm, String prefix )
101 {
102 this.name = name;
103 this.algorithm = algorithm;
104 this.prefix = prefix;
105 }
106
107
108
109
110
111 public String getName()
112 {
113 return name;
114 }
115
116
117
118
119
120 public String getAlgorithm()
121 {
122 return algorithm;
123 }
124
125
126
127
128
129 public String getPrefix()
130 {
131 return prefix;
132 }
133
134
135
136
137
138
139
140
141 public static LdapSecurityConstants getAlgorithm( String name )
142 {
143 String algorithm = "";
144
145 if ( name != null )
146 {
147 algorithm = Strings.toLowerCase( name );
148 }
149
150 if ( HASH_METHOD_SHA.getName().equalsIgnoreCase( algorithm )
151 || HASH_METHOD_SHA.getPrefix().equalsIgnoreCase( algorithm ) )
152 {
153 return HASH_METHOD_SHA;
154 }
155
156 if ( HASH_METHOD_SSHA.getName().equalsIgnoreCase( algorithm )
157 || HASH_METHOD_SSHA.getPrefix().equalsIgnoreCase( algorithm ) )
158 {
159 return HASH_METHOD_SSHA;
160 }
161
162 if ( HASH_METHOD_MD5.getName().equalsIgnoreCase( algorithm )
163 || HASH_METHOD_MD5.getPrefix().equalsIgnoreCase( algorithm ))
164 {
165 return HASH_METHOD_MD5;
166 }
167
168 if ( HASH_METHOD_SMD5.getName().equalsIgnoreCase( algorithm )
169 || HASH_METHOD_SMD5.getPrefix().equalsIgnoreCase( algorithm ))
170 {
171 return HASH_METHOD_SMD5;
172 }
173
174 if ( HASH_METHOD_CRYPT.getName().equalsIgnoreCase( algorithm )
175 || HASH_METHOD_CRYPT.getPrefix().equalsIgnoreCase( algorithm ))
176 {
177 return HASH_METHOD_CRYPT;
178 }
179
180 if ( ( HASH_METHOD_SHA256.getName().equalsIgnoreCase( algorithm ) )
181 || ( HASH_METHOD_SHA256.getPrefix().equalsIgnoreCase( algorithm ) )
182 || ( "sha-256".equalsIgnoreCase( algorithm ) ) )
183 {
184 return HASH_METHOD_SHA256;
185 }
186
187 if ( ( HASH_METHOD_SSHA256.getName().equalsIgnoreCase( algorithm ) )
188 || ( HASH_METHOD_SSHA256.getPrefix().equalsIgnoreCase( algorithm ) )
189 || ( "ssha-256".equalsIgnoreCase( algorithm ) ) )
190 {
191 return HASH_METHOD_SSHA256;
192 }
193
194 if ( ( HASH_METHOD_SHA384.getName().equalsIgnoreCase( algorithm ) )
195 || ( HASH_METHOD_SHA384.getPrefix().equalsIgnoreCase( algorithm ) )
196 || ( "sha-384".equalsIgnoreCase( algorithm ) ) )
197 {
198 return HASH_METHOD_SHA384;
199 }
200
201 if ( ( HASH_METHOD_SSHA384.getName().equalsIgnoreCase( algorithm ) )
202 || ( HASH_METHOD_SSHA384.getPrefix().equalsIgnoreCase( algorithm ) )
203 || ( "ssha-384".equalsIgnoreCase( algorithm ) ) )
204 {
205 return HASH_METHOD_SSHA384;
206 }
207
208 if ( ( HASH_METHOD_SHA512.getName().equalsIgnoreCase( algorithm ) )
209 || ( HASH_METHOD_SHA512.getPrefix().equalsIgnoreCase( algorithm ) )
210 || ( "sha-512".equalsIgnoreCase( algorithm ) ) )
211 {
212 return HASH_METHOD_SHA512;
213 }
214
215 if ( ( HASH_METHOD_SSHA512.getName().equalsIgnoreCase( algorithm ) )
216 || ( HASH_METHOD_SSHA512.getPrefix().equalsIgnoreCase( algorithm ) )
217 || ( "ssha-512".equalsIgnoreCase( algorithm ) ) )
218 {
219 return HASH_METHOD_SSHA512;
220 }
221
222 if ( HASH_METHOD_PKCS5S2.getName().equalsIgnoreCase( algorithm )
223 || HASH_METHOD_PKCS5S2.getPrefix().equalsIgnoreCase( algorithm ) )
224 {
225 return HASH_METHOD_PKCS5S2;
226 }
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250 return null;
251 }
252 }