(self, data, pad, padmode)
| 170 | self._iv = IV |
| 171 | |
| 172 | def _padData(self, data, pad, padmode): |
| 173 | # Pad data depending on the mode |
| 174 | if padmode is None: |
| 175 | # Get the default padding mode. |
| 176 | padmode = self.getPadMode() |
| 177 | if pad and padmode == PAD_PKCS5: |
| 178 | raise ValueError("Cannot use a pad character with PAD_PKCS5") |
| 179 | |
| 180 | if padmode == PAD_NORMAL: |
| 181 | if len(data) % self.block_size == 0: |
| 182 | # No padding required. |
| 183 | return data |
| 184 | |
| 185 | if not pad: |
| 186 | # Get the default padding. |
| 187 | pad = self.getPadding() |
| 188 | if not pad: |
| 189 | raise ValueError("Data must be a multiple of " + str(self.block_size) + " bytes in length. Use padmode=PAD_PKCS5 or set the pad character.") |
| 190 | data += (self.block_size - (len(data) % self.block_size)) * pad |
| 191 | |
| 192 | elif padmode == PAD_PKCS5: |
| 193 | pad_len = 8 - (len(data) % self.block_size) |
| 194 | if _pythonMajorVersion < 3: |
| 195 | data += pad_len * chr(pad_len) |
| 196 | else: |
| 197 | data += bytes([pad_len] * pad_len) |
| 198 | |
| 199 | return data |
| 200 | |
| 201 | def _unpadData(self, data, pad, padmode): |
| 202 | # Unpad data depending on the mode. |
no test coverage detected