diff --git a/scapy/layers/ipsec.py b/scapy/layers/ipsec.py
index 25b082e05cfabec0be61478f17031529475622f6..6004dd0f7202ed1affd6ea225e48445fceb4b397 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,