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 |