summaryrefslogtreecommitdiff
path: root/lib/Crypto/Util/Padding.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Crypto/Util/Padding.py')
-rw-r--r--lib/Crypto/Util/Padding.py23
1 files changed, 10 insertions, 13 deletions
diff --git a/lib/Crypto/Util/Padding.py b/lib/Crypto/Util/Padding.py
index b8498a3..e05b79a 100644
--- a/lib/Crypto/Util/Padding.py
+++ b/lib/Crypto/Util/Padding.py
@@ -27,17 +27,14 @@ This module provides minimal support for adding and removing standard padding
from data.
"""
-__all__ = [ 'PaddingError', 'pad', 'unpad' ]
+__all__ = [ 'ValueError', 'pad', 'unpad' ]
from Crypto.Util.py3compat import *
-class PaddingError(ValueError):
- """Exception raised when padding is incorrect and cannot be removed."""
- pass
def pad(data_to_pad, block_size, style='pkcs7'):
"""Apply standard padding.
-
+
:Parameters:
data_to_pad : byte string
The data that needs to be padded.
@@ -63,7 +60,7 @@ def pad(data_to_pad, block_size, style='pkcs7'):
def unpad(padded_data, block_size, style='pkcs7'):
"""Remove standard padding.
-
+
:Parameters:
padded_data : byte string
A piece of data with padding that needs to be stripped.
@@ -74,29 +71,29 @@ def unpad(padded_data, block_size, style='pkcs7'):
Padding algorithm. It can be *'pkcs7'* (default), *'iso7816'* or *'x923'*.
:Return:
Data without padding.
- :Raises PaddingError:
+ :Raises ValueError:
if the padding is incorrect.
"""
pdata_len = len(padded_data)
if pdata_len % block_size:
- raise PaddingError("Input data is not padded")
+ raise ValueError("Input data is not padded")
if style in ('pkcs7', 'x923'):
padding_len = bord(padded_data[-1])
if padding_len<1 or padding_len>min(block_size, pdata_len):
- raise PaddingError("Padding is incorrect.")
+ raise ValueError("Padding is incorrect.")
if style == 'pkcs7':
if padded_data[-padding_len:]!=bchr(padding_len)*padding_len:
- raise PaddingError("PKCS#7 padding is incorrect.")
+ raise ValueError("PKCS#7 padding is incorrect.")
else:
if padded_data[-padding_len:-1]!=bchr(0)*(padding_len-1):
- raise PaddingError("ANSI X.923 padding is incorrect.")
+ raise ValueError("ANSI X.923 padding is incorrect.")
elif style == 'iso7816':
padding_len = pdata_len - padded_data.rfind(bchr(128))
if padding_len<1 or padding_len>min(block_size, pdata_len):
- raise PaddingError("Padding is incorrect.")
+ raise ValueError("Padding is incorrect.")
if padding_len>1 and padded_data[1-padding_len:]!=bchr(0)*(padding_len-1):
- raise PaddingError("ISO 7816-4 padding is incorrect.")
+ raise ValueError("ISO 7816-4 padding is incorrect.")
else:
raise ValueError("Unknown padding style")
return padded_data[:-padding_len]