OXIESEC PANEL
- Current Dir:
/
/
snap
/
certbot
/
4730
/
lib
/
python3.12
/
site-packages
/
cryptography
/
hazmat
/
primitives
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
06/10/2025 09:51:14 PM
rwxr-xr-x
📄
__init__.py
180 bytes
06/10/2025 09:51:03 PM
rw-r--r--
📁
__pycache__
-
06/10/2025 09:51:14 PM
rwxr-xr-x
📄
_asymmetric.py
532 bytes
06/10/2025 09:51:03 PM
rw-r--r--
📄
_cipheralgorithm.py
1.46 KB
06/10/2025 09:51:03 PM
rw-r--r--
📄
_serialization.py
5.02 KB
06/10/2025 09:51:03 PM
rw-r--r--
📁
asymmetric
-
06/10/2025 09:51:14 PM
rwxr-xr-x
📁
ciphers
-
06/10/2025 09:51:14 PM
rwxr-xr-x
📄
cmac.py
338 bytes
06/10/2025 09:51:03 PM
rw-r--r--
📄
constant_time.py
422 bytes
06/10/2025 09:51:03 PM
rw-r--r--
📄
hashes.py
4.97 KB
06/10/2025 09:51:03 PM
rw-r--r--
📄
hmac.py
423 bytes
06/10/2025 09:51:03 PM
rw-r--r--
📁
kdf
-
06/10/2025 09:51:14 PM
rwxr-xr-x
📄
keywrap.py
5.52 KB
06/10/2025 09:51:03 PM
rw-r--r--
📄
padding.py
4.82 KB
06/10/2025 09:51:03 PM
rw-r--r--
📄
poly1305.py
355 bytes
06/10/2025 09:51:03 PM
rw-r--r--
📁
serialization
-
06/10/2025 09:51:14 PM
rwxr-xr-x
📁
twofactor
-
06/10/2025 09:51:14 PM
rwxr-xr-x
Editing: _cipheralgorithm.py
Close
# This file is dual licensed under the terms of the Apache License, Version # 2.0, and the BSD License. See the LICENSE file in the root of this repository # for complete details. from __future__ import annotations import abc from cryptography import utils # This exists to break an import cycle. It is normally accessible from the # ciphers module. class CipherAlgorithm(metaclass=abc.ABCMeta): @property @abc.abstractmethod def name(self) -> str: """ A string naming this mode (e.g. "AES", "Camellia"). """ @property @abc.abstractmethod def key_sizes(self) -> frozenset[int]: """ Valid key sizes for this algorithm in bits """ @property @abc.abstractmethod def key_size(self) -> int: """ The size of the key being used as an integer in bits (e.g. 128, 256). """ class BlockCipherAlgorithm(CipherAlgorithm): key: bytes @property @abc.abstractmethod def block_size(self) -> int: """ The size of a block as an integer in bits (e.g. 64, 128). """ def _verify_key_size(algorithm: CipherAlgorithm, key: bytes) -> bytes: # Verify that the key is instance of bytes utils._check_byteslike("key", key) # Verify that the key size matches the expected key size if len(key) * 8 not in algorithm.key_sizes: raise ValueError( f"Invalid key size ({len(key) * 8}) for {algorithm.name}." ) return key