@@ -52,7 +52,7 @@ def decrypt(self, data: str) -> str:
52
52
class AESCipher (SymmetricAlgorithm ):
53
53
# Sets the key and block size
54
54
def __init__ (self , key ):
55
- self .key = hashlib .sha256 (key .encode ()).digest ()
55
+ self ._key = hashlib .sha256 (key .encode ()).digest () if isinstance ( key , str ) else None
56
56
self .bs = 32
57
57
58
58
# Pad data up to block size
@@ -63,6 +63,9 @@ def unpad(self, s):
63
63
return s [:- ord (s [len (s ) - 1 :])]
64
64
65
65
def encrypt (self , data : str ):
66
+ if not isinstance (self .key , str ):
67
+ raise ValueError ('Invalid key' )
68
+
66
69
data = self .pad (data )
67
70
iv = Random .new ().read (AES .block_size )
68
71
aes = AES .new (self .key , AES .MODE_CBC , iv )
@@ -71,6 +74,9 @@ def encrypt(self, data: str):
71
74
return base64 .b64encode (C ).decode ('utf-8' )
72
75
73
76
def decrypt (self , data : str ) -> str :
77
+ if not isinstance (self .key , str ):
78
+ raise ValueError ('Invalid key' )
79
+
74
80
data = base64 .b64decode (data )
75
81
iv = data [:AES .block_size ]
76
82
aes = AES .new (self .key , AES .MODE_CBC , iv )
0 commit comments