'decrypt(data, [pad], [padmode]) -> bytes
data : Bytes to be encrypted
pad  : Optional argument for decryption padding. Must only be one byte
padmode : Optional argument for overriding the padding mode.
The data must be a multiple of 8 bytes and will be decrypted
with the already specified key. In PAD_NORMAL mode, if the
optional padding character is supplied, then the un-encrypted
data will have the padding characters removed from the end of
the bytes. This pad removal only occurs on the last 8 bytes of
the data (last data block). In PAD_PKCS5 mode, the special
padding end markers will be removed from the data after decrypting.'

def decrypt(self, data, pad=None, padmode=None):

    data = self._guardAgainstUnicode(data)
    if (pad is not None):
        pad = self._guardAgainstUnicode(pad)
    data = self.crypt(data, des.DECRYPT)
    return self._unpadData(data, pad, padmode)
