def doFinal(self, inBuff, inOffset, inLength, outBuff, outOffset): Cipher.doFinal(self, inBuff, inOffset, inLength, outBuff, outOffset) data = [0 for i in xrange(inLength)] Util.arrayCopy(inBuff, inOffset, data, 0, inLength) data = _arrayTobinary(data) if self.mode == Cipher.MODE_ENCRYPT: result = self._cipher.encrypt(data) else: result = self._cipher.decrypt(data) result = _binaryToarray(result) Util.arrayCopy(result, 0, outBuff, outOffset, len(result)) return len(result)
def init(self, theKey, theMode, bArray = [0,0,0,0,0,0,0,0], bOff = 0, bLen = 8): Cipher.init(self, theKey, theMode, bArray, bOff, bLen) if not isinstance(theKey, pyDesDESKey): raise CryptoException(CryptoException.ILLEGAL_VALUE) if bLen != 8: raise CryptoException(CryptoException.ILLEGAL_VALUE) iv = [0 for i in xrange(8)] Util.arrayCopy(bArray, bOff, iv, 0, bLen) iv = _arrayTobinary(iv) if 64 == theKey.getSize(): # DES self._cipher = pyDes.des(theKey._key, self.desmode, iv, padmode = self.padmode)
def setKey(self, keyData, keyOff): self._key = _arrayTobinary(keyData[keyOff:keyOff+8]) self._setInitialized()