2 import java.util.HashMap;
3 import javax.crypto.spec.*;
8 HashMap table=new HashMap();
12 public Table(String baseurl, String password) {
13 initCloud(baseurl, password);
16 private void initCloud(String baseurl, String password) {
18 SecretKeySpec secret=getKey(password);
19 Cipher encryptCipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
20 encryptCipher.init(Cipher.ENCRYPT_MODE, secret);
21 Cipher decryptCipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
22 decryptCipher.init(Cipher.DECRYPT_MODE, secret);
23 hmac = Mac.getInstance("HmacSHA256");
25 cloud=new CloudComm(baseurl, encryptCipher, decryptCipher, hmac);
26 } catch (Exception e) {
27 throw new Error("Failed To Initialize Ciphers");
31 private SecretKeySpec getKey(String password) {
33 PBEKeySpec keyspec = new PBEKeySpec(password.toCharArray());
34 SecretKey key = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256").generateSecret(keyspec);
35 SecretKeySpec secret = new SecretKeySpec(key.getEncoded(), "AES");
37 } catch (Exception e) {
38 throw new Error("Failed generating key.");