· 9 years ago · Sep 23, 2016, 06:28 PM
1when(encryptDecryptUtil.getKeyFromKeyStore(any(String.class))).thenReturn(keyMock);
2
3@Test
4public void testDecryptData_Success() throws NoSuchPaddingException, NoSuchAlgorithmException, BadPaddingException, IllegalBlockSizeException {
5 encryptDecryptUtil = spy(new EncryptDecryptUtil());
6 Key keyMock = Mockito.mock(Key.class);
7 when(encryptDecryptUtil.getKeyFromKeyStore(any(String.class))).thenReturn(keyMock);
8 String inputData = "TestMessage";
9 String version = GetPropValues.getPropValue(PublisherConstants.KEYSTORE_VERSION);
10 byte[] enCryptedValue= new byte[] {9,2,5,8,9};
11 Cipher cipherMock = Mockito.mock(Cipher.class);
12 when(Cipher.getInstance(any(String.class))).thenReturn(cipherMock);
13 when(cipherMock.doFinal(any(byte[].class))).thenReturn(enCryptedValue);
14 String encryptedMessage = encryptDecryptUtil.encryptData(inputData);
15 assert(encryptedMessage.contains(version));
16 assertTrue(!encryptedMessage.contains(inputData));
17}
18
19GetPropValues.getPropValue(PublisherConstants.KEYSTORE_PATH);
20 private String pubKeyStorePwd = "changeit";
21 private static final String SHA1PRNG = "SHA1PRNG";
22 private static final String pubKeyAlias="jceksaes";
23 private static final String JCEKS = "JCEKS";
24 private static final String AES_PADDING = "AES/CBC/PKCS5Padding";
25 private static final String AES = "AES";
26 private static final int CONST_16 = 16;
27 private static final int CONST_0 = 0;
28 private static final String KEY_STORE = "aes-keystore";
29 private static final String KEY_STORE_TYPE = "jck";
30 private static final Logger logger = Logger.getLogger(KafkaPublisher.class);
31
32 public Key getKeyFromKeyStore( String keystoreVersion) {
33
34 KeyStore keyStore = null;
35 Key key = null;
36 try {
37 keyStore = KeyStore.getInstance(JCEKS);
38 FileInputStream stream = null;
39 stream = new FileInputStream(publicKeyStoreFileName+KEY_STORE+PublisherConstants.UNDERSCORE+keystoreVersion+PublisherConstants.DOT+KEY_STORE_TYPE);
40 keyStore.load(stream, pubKeyStorePwd.toCharArray());
41 stream.close();
42 key = keyStore.getKey(pubKeyAlias, pubKeyStorePwd.toCharArray());
43 } catch (KeyStoreException e) {
44 e.printStackTrace();
45 }
46 catch (FileNotFoundException e) {
47 logger.error("Error Inside getKeyFromKeyStore, Exception = " + e);
48 e.printStackTrace();
49 } catch (CertificateException e) {
50 logger.error("Error Inside getKeyFromKeyStore, Exception = " + e);
51 e.printStackTrace();
52 } catch (UnrecoverableKeyException e) {
53 logger.error("Error Inside getKeyFromKeyStore, Exception = " + e);
54 e.printStackTrace();
55 } catch (NoSuchAlgorithmException e) {
56 logger.error("Error Inside getKeyFromKeyStore, Exception = " + e);
57 e.printStackTrace();
58 } catch (IOException e) {
59 logger.error("Error Inside getKeyFromKeyStore, Exception = " + e);
60 e.printStackTrace();
61 }
62 return key;
63 }
64
65 public String encryptData(String data) {
66 String keystoreVersion = GetPropValues.getPropValue(PublisherConstants.KEYSTORE_VERSION);
67 SecretKey secKey = new SecretKeySpec(getKeyFromKeyStore(keystoreVersion).getEncoded(), AES);
68 String base64EncodedEncryptedMsg = null;
69 Cipher cipher = null;
70
71 try { ------- Logic -------------------}
72catch() { }
73}
74}