Skip to content

Commit 0e6aab4

Browse files
committed
Add tests for AES cipher
Signed-off-by: Ivan Kanakarakis <[email protected]>
1 parent 7323f5c commit 0e6aab4

File tree

2 files changed

+74
-24
lines changed

2 files changed

+74
-24
lines changed

src/saml2/aes.py

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -103,27 +103,3 @@ def decrypt(self, msg, alg='aes_128_cbc', padding='PKCS#7', b64dec=True):
103103
idx = bytearray(res)[-1]
104104
res = res[:-idx]
105105
return res
106-
107-
108-
def run_test():
109-
key = b'1234523451234545' # 16 byte key
110-
# Iff padded, the message doesn't have to be multiple of 16 in length
111-
original_msg = b'ToBeOrNotTobe W.S.'
112-
aes = AESCipher(key)
113-
114-
encrypted_msg = aes.encrypt(original_msg)
115-
decrypted_msg = aes.decrypt(encrypted_msg)
116-
assert decrypted_msg == original_msg
117-
118-
encrypted_msg = aes.encrypt(original_msg)
119-
decrypted_msg = aes.decrypt(encrypted_msg)
120-
assert decrypted_msg == original_msg
121-
122-
aes = AESCipher(key)
123-
encrypted_msg = aes.encrypt(original_msg)
124-
decrypted_msg = aes.decrypt(encrypted_msg)
125-
assert decrypted_msg == original_msg
126-
127-
128-
if __name__ == '__main__':
129-
run_test()

tests/test_92_aes.py

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
import os
2+
3+
import saml2.aes
4+
5+
6+
class TestAES():
7+
def test_aes_defaults(self):
8+
original_msg = b'ToBeOrNotTobe W.S.'
9+
key = os.urandom(16)
10+
aes = saml2.aes.AESCipher(key)
11+
12+
encrypted_msg = aes.encrypt(original_msg)
13+
decrypted_msg = aes.decrypt(encrypted_msg)
14+
assert decrypted_msg == original_msg
15+
16+
def test_aes_128_cbc(self):
17+
original_msg = b'ToBeOrNotTobe W.S.'
18+
key = os.urandom(16)
19+
aes = saml2.aes.AESCipher(key)
20+
alg = 'aes_128_cbc'
21+
22+
encrypted_msg = aes.encrypt(original_msg, alg=alg)
23+
decrypted_msg = aes.decrypt(encrypted_msg, alg=alg)
24+
assert decrypted_msg == original_msg
25+
26+
def test_aes_128_cfb(self):
27+
original_msg = b'ToBeOrNotTobe W.S.'
28+
key = os.urandom(16)
29+
aes = saml2.aes.AESCipher(key)
30+
alg = 'aes_128_cfb'
31+
32+
encrypted_msg = aes.encrypt(original_msg, alg=alg)
33+
decrypted_msg = aes.decrypt(encrypted_msg, alg=alg)
34+
assert decrypted_msg == original_msg
35+
36+
def test_aes_192_cbc(self):
37+
original_msg = b'ToBeOrNotTobe W.S.'
38+
key = os.urandom(24)
39+
aes = saml2.aes.AESCipher(key)
40+
alg = 'aes_192_cbc'
41+
42+
encrypted_msg = aes.encrypt(original_msg, alg=alg)
43+
decrypted_msg = aes.decrypt(encrypted_msg, alg=alg)
44+
assert decrypted_msg == original_msg
45+
46+
def test_aes_192_cfb(self):
47+
original_msg = b'ToBeOrNotTobe W.S.'
48+
key = os.urandom(24)
49+
aes = saml2.aes.AESCipher(key)
50+
alg = 'aes_192_cfb'
51+
52+
encrypted_msg = aes.encrypt(original_msg, alg=alg)
53+
decrypted_msg = aes.decrypt(encrypted_msg, alg=alg)
54+
assert decrypted_msg == original_msg
55+
56+
def test_aes_256_cbc(self):
57+
original_msg = b'ToBeOrNotTobe W.S.'
58+
key = os.urandom(32)
59+
aes = saml2.aes.AESCipher(key)
60+
alg = 'aes_256_cbc'
61+
62+
encrypted_msg = aes.encrypt(original_msg, alg=alg)
63+
decrypted_msg = aes.decrypt(encrypted_msg, alg=alg)
64+
assert decrypted_msg == original_msg
65+
66+
def test_aes_256_cfb(self):
67+
original_msg = b'ToBeOrNotTobe W.S.'
68+
key = os.urandom(32)
69+
aes = saml2.aes.AESCipher(key)
70+
alg = 'aes_256_cfb'
71+
72+
encrypted_msg = aes.encrypt(original_msg, alg=alg)
73+
decrypted_msg = aes.decrypt(encrypted_msg, alg=alg)
74+
assert decrypted_msg == original_msg

0 commit comments

Comments
 (0)