18 lines
421 B
Python
18 lines
421 B
Python
|
class PKCS7:
|
||
|
BLOCKSIZE = 16
|
||
|
|
||
|
@staticmethod
|
||
|
def pad(data, bs=BLOCKSIZE):
|
||
|
l = len(data)
|
||
|
n = bs-l%bs
|
||
|
v = bytes([n])
|
||
|
return data+v*n
|
||
|
|
||
|
@staticmethod
|
||
|
def unpad(data, bs=BLOCKSIZE):
|
||
|
l = len(data)
|
||
|
n = data[-1]
|
||
|
if n > bs:
|
||
|
raise ValueError("Cannot unpad, invalid padding length of "+str(n)+" bytes")
|
||
|
else:
|
||
|
return data[:l-n]
|