Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
 def setKey(self, keyData, keyOff):
     self._key = _arrayTobinary(keyData[keyOff:keyOff+8]) 
     self._setInitialized()