· 8 years ago · Jan 19, 2018, 05:04 PM
1//Generate salt
2 Random r = new SecureRandom();
3 byte[] salt = new byte[8];
4 r.nextBytes(salt);
5 //System.out.println("salt: "+salt);
6
7 //initialize vector
8 byte[] vector = new byte[128/8];
9 r.nextBytes(vector);
10 IvParameterSpec ivspec = new IvParameterSpec(vector);
11 //System.out.println("iv: "+iv);
12
13 //initialize variables
14 String MsgToEncrypt = encodedECCprivateKeyBytes;
15 String userPin = ParamUtil.getString(actionRequest, "userPin");
16 Cipher ecipher;
17
18 //Generating AES key
19 SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
20 KeySpec mykeySpec = new PBEKeySpec(userPin.toCharArray(), salt, 10000, 128);
21 SecretKey tmp = factory.generateSecret(mykeySpec);
22 SecretKeySpec mySecretkey = new SecretKeySpec(tmp.getEncoded(), "AES");
23
24 //==> Create and initiate encryption
25 System.out.println("Initiate encryption alogrithm...");
26 ecipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
27 //System.out.println("Algorithm to encrypt private key: " + ecipher);
28 ecipher.init(Cipher.ENCRYPT_MODE, mySecretkey, ivspec);
29 //System.out.println("SecKey: "+mySecretkey);