diff --git a/src/cryptography/hazmat/primitives/ciphers/aead.py b/src/cryptography/hazmat/primitives/ciphers/aead.py
index 07b6bce..415a45a 100644
--- a/src/cryptography/hazmat/primitives/ciphers/aead.py
+++ b/src/cryptography/hazmat/primitives/ciphers/aead.py
@@ -108,8 +108,8 @@
     def _validate_lengths(self, nonce, data_len):
         # For information about computing this, see
         # https://tools.ietf.org/html/rfc3610#section-2.1
-        l = 15 - len(nonce)
-        if 2 ** (8 * l) < data_len:
+        l_val = 15 - len(nonce)
+        if 2 ** (8 * l_val) < data_len:
             raise ValueError("Nonce too long for data")
 
     def _check_params(self, nonce, data, associated_data):
diff --git a/src/cryptography/hazmat/primitives/kdf/kbkdf.py b/src/cryptography/hazmat/primitives/kdf/kbkdf.py
index 29ac0fa..14de56e 100644
--- a/src/cryptography/hazmat/primitives/kdf/kbkdf.py
+++ b/src/cryptography/hazmat/primitives/kdf/kbkdf.py
@@ -139,9 +139,9 @@
         if self._fixed_data and isinstance(self._fixed_data, bytes):
             return self._fixed_data
 
-        l = utils.int_to_bytes(self._length * 8, self._llen)
+        l_val = utils.int_to_bytes(self._length * 8, self._llen)
 
-        return b"".join([self._label, b"\x00", self._context, l])
+        return b"".join([self._label, b"\x00", self._context, l_val])
 
     def verify(self, key_material, expected_key):
         if not constant_time.bytes_eq(self.derive(key_material), expected_key):
