· 9 years ago · Dec 09, 2016, 12:50 PM
1
2 static boolean saveHmac ( byte[] stream, String filekeys, String slectedFile) {
3 try {
4 KeyGenerator keyGen = null;
5
6 keyGen = KeyGenerator.getInstance("AES");
7
8 keyGen.init(128);
9 SecretKeySpec secretKey = (SecretKeySpec) keyGen.generateKey();
10
11 byte[] hmac = Cipher_Functions.generateHMAC256(stream , secretKey);
12 //Grava ficheiro keys.txt
13 FileOutputStream fos = new FileOutputStream(filekeys);
14 Read_and_write.writeHmac(fos, hmac);
15
16
17 ByteArrayOutputStream outputStream = new ByteArrayOutputStream( );
18 outputStream.write( hmac );
19 outputStream.write( stream );
20
21 byte[] cipherText_final = outputStream.toByteArray( );
22
23 //Grava o ficheiro cifrado
24 fos = new FileOutputStream(slectedFile);
25 Read_and_write.writeciphertext(fos, cipherText_final);
26
27 } catch (NoSuchAlgorithmException | InvalidKeyException e) {
28 return false;
29 } catch (IOException e) {
30 e.printStackTrace();
31 }
32 return true ;
33 }
34
35}