1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.hadoop.hbase.io.crypto;
18
19 import org.apache.hadoop.hbase.classification.InterfaceAudience;
20 import org.apache.hadoop.hbase.classification.InterfaceStability;
21 import org.apache.hadoop.conf.Configuration;
22 import org.apache.hadoop.hbase.HBaseConfiguration;
23 import org.apache.hadoop.hbase.io.crypto.aes.AES;
24
25
26
27
28 @InterfaceAudience.Public
29 @InterfaceStability.Evolving
30 public final class DefaultCipherProvider implements CipherProvider {
31
32 private static DefaultCipherProvider instance;
33
34 public static DefaultCipherProvider getInstance() {
35 if (instance != null) {
36 return instance;
37 }
38 instance = new DefaultCipherProvider();
39 return instance;
40 }
41
42 private Configuration conf = HBaseConfiguration.create();
43
44
45 private DefaultCipherProvider() { }
46
47 @Override
48 public Configuration getConf() {
49 return conf;
50 }
51
52 @Override
53 public void setConf(Configuration conf) {
54 this.conf = conf;
55 }
56
57 @Override
58 public String getName() {
59 return "default";
60 }
61
62 @Override
63 public Cipher getCipher(String name) {
64 if (name.equalsIgnoreCase("AES")) {
65 return new AES(this);
66 }
67 throw new RuntimeException("Cipher '" + name + "' is not supported by provider '" +
68 getName() + "'");
69 }
70
71 @Override
72 public String[] getSupportedCiphers() {
73 return new String[] { "AES" };
74 }
75
76 }