KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > datasystem > encryptdecrypt > EDCbcBlockCipher


1 package com.daffodilwoods.daffodildb.server.datasystem.encryptdecrypt;
2
3
4 public class EDCbcBlockCipher extends EDBlockCipher
5 {
6
7     private EDBlockCipher blockEDDes3Cipher;
8     private byte iVector[];
9     private byte tempArray[];
10
11     public EDCbcBlockCipher(EDBlockCipher blockcipher)
12     {
13         super(blockcipher.getKeySize(), blockcipher.getBlockSize());
14         blockEDDes3Cipher = blockcipher;
15         iVector = new byte[getBlockSize()];
16         EDUtils.zeroBlock(iVector);
17         tempArray = new byte[getBlockSize()];
18     }
19
20     public void setKey(byte bytes[])
21     {
22         blockEDDes3Cipher.setKey(bytes);
23     }
24
25     public void setIVector(byte bytes0[])
26     {
27         EDUtils.generateCopyBlock(bytes0, iVector);
28     }
29
30     public byte[] setRandomIVector()
31     {
32         byte bytes0[] = new byte[getBlockSize()];
33         EDUtils.generateRandomBlock(bytes0);
34         setIVector(bytes0);
35         return bytes0;
36     }
37
38     public void encryptBytes(byte bytes0[], int i, byte bytes1[], int j)
39     {
40         EDUtils.generateXorBlock(bytes0, i, iVector, 0, tempArray, 0, getBlockSize());
41         blockEDDes3Cipher.encryptBytes(tempArray, 0, bytes1, j);
42         EDUtils.generateCopyBlock(bytes1, j, iVector, 0, getBlockSize());
43     }
44
45     public void decryptBytes(byte bytes0[], int i, byte bytes1[], int j)
46     {
47         blockEDDes3Cipher.decryptBytes(bytes0, i, tempArray, 0);
48         EDUtils.generateXorBlock(tempArray, 0, iVector, 0, bytes1, j, getBlockSize());
49         EDUtils.generateCopyBlock(bytes0, i, iVector, 0, getBlockSize());
50     }
51 }
52
Popular Tags