1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.common.util.encrypt;
17
18 import static java.lang.String.format;
19 import static org.kuali.common.util.encrypt.openssl.OpenSSL.buildOpenSSLEncryptor;
20 import static org.kuali.common.util.log.Loggers.newLogger;
21
22 import org.kuali.common.util.encrypt.provider.DefaultEncryptionContextProviderChain;
23 import org.kuali.common.util.encrypt.provider.EncryptionContextProvider;
24 import org.slf4j.Logger;
25
26 import com.google.common.base.Optional;
27
28 public final class Encryption {
29
30 private static final Logger logger = newLogger();
31
32 private static Encryptor encryptor;
33
34 public static Encryptor buildEncryptor() {
35 EncryptionContextProvider provider = new DefaultEncryptionContextProviderChain();
36 Optional<EncryptionContext> context = provider.getEncryptionContext();
37 if (context.isPresent()) {
38 return buildOpenSSLEncryptor(context.get());
39 } else {
40 logger.info(format("encryption disabled. no encryption password was located"));
41 return NoOpEncryptor.INSTANCE;
42 }
43 }
44
45 public synchronized static Encryptor getDefaultEncryptor() {
46 if (encryptor == null) {
47 encryptor = buildEncryptor();
48 }
49 return encryptor;
50 }
51
52 }