From ef9c519040fa0ba83ccbecfc5358eb4d60a02f77 Mon Sep 17 00:00:00 2001 From: Pierre LALET <pierre.lalet@cea.fr> Date: Fri, 15 Jan 2016 12:26:35 +0100 Subject: [PATCH] Fix ipsec layer to work w/ pycrypto lacking some AES modes --- scapy/layers/ipsec.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/scapy/layers/ipsec.py b/scapy/layers/ipsec.py index 25b082e0..6004dd0f 100644 --- a/scapy/layers/ipsec.py +++ b/scapy/layers/ipsec.py @@ -370,16 +370,18 @@ if AES: block_size=1, iv_size=8, key_size=(16 + 4, 24 + 4, 32 + 4)) - CRYPT_ALGOS['AES-GCM'] = CryptAlgo('AES-GCM', - cipher=AES, - mode=AES.MODE_GCM, - iv_size=8, - key_size=(16 + 4, 24 + 4, 32 + 4)) - CRYPT_ALGOS['AES-CCM'] = CryptAlgo('AES-CCM', - cipher=AES, - mode=AES.MODE_CCM, - iv_size=8, - key_size=(16 + 4, 24 + 4, 32 + 4)) + if hasattr(AES, "MODE_GCM"): + CRYPT_ALGOS['AES-GCM'] = CryptAlgo('AES-GCM', + cipher=AES, + mode=AES.MODE_GCM, + iv_size=8, + key_size=(16 + 4, 24 + 4, 32 + 4)) + if hasattr(AES, "MODE_CCM"): + CRYPT_ALGOS['AES-CCM'] = CryptAlgo('AES-CCM', + cipher=AES, + mode=AES.MODE_CCM, + iv_size=8, + key_size=(16 + 4, 24 + 4, 32 + 4)) if DES: CRYPT_ALGOS['DES'] = CryptAlgo('DES', cipher=DES, -- GitLab