mirror of
				https://gitlab.sectorq.eu/jaydee/omv_backup.git
				synced 2025-10-31 02:21:10 +01:00 
			
		
		
		
	added v3
This commit is contained in:
		| @@ -0,0 +1,5 @@ | ||||
| # 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 | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -0,0 +1,107 @@ | ||||
| # 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 | ||||
|  | ||||
| from cryptography.hazmat.primitives._cipheralgorithm import ( | ||||
|     BlockCipherAlgorithm, | ||||
|     CipherAlgorithm, | ||||
|     _verify_key_size, | ||||
| ) | ||||
|  | ||||
|  | ||||
| class ARC4(CipherAlgorithm): | ||||
|     name = "RC4" | ||||
|     key_sizes = frozenset([40, 56, 64, 80, 128, 160, 192, 256]) | ||||
|  | ||||
|     def __init__(self, key: bytes): | ||||
|         self.key = _verify_key_size(self, key) | ||||
|  | ||||
|     @property | ||||
|     def key_size(self) -> int: | ||||
|         return len(self.key) * 8 | ||||
|  | ||||
|  | ||||
| class TripleDES(BlockCipherAlgorithm): | ||||
|     name = "3DES" | ||||
|     block_size = 64 | ||||
|     key_sizes = frozenset([64, 128, 192]) | ||||
|  | ||||
|     def __init__(self, key: bytes): | ||||
|         if len(key) == 8: | ||||
|             key += key + key | ||||
|         elif len(key) == 16: | ||||
|             key += key[:8] | ||||
|         self.key = _verify_key_size(self, key) | ||||
|  | ||||
|     @property | ||||
|     def key_size(self) -> int: | ||||
|         return len(self.key) * 8 | ||||
|  | ||||
|  | ||||
| class Blowfish(BlockCipherAlgorithm): | ||||
|     name = "Blowfish" | ||||
|     block_size = 64 | ||||
|     key_sizes = frozenset(range(32, 449, 8)) | ||||
|  | ||||
|     def __init__(self, key: bytes): | ||||
|         self.key = _verify_key_size(self, key) | ||||
|  | ||||
|     @property | ||||
|     def key_size(self) -> int: | ||||
|         return len(self.key) * 8 | ||||
|  | ||||
|  | ||||
| class CAST5(BlockCipherAlgorithm): | ||||
|     name = "CAST5" | ||||
|     block_size = 64 | ||||
|     key_sizes = frozenset(range(40, 129, 8)) | ||||
|  | ||||
|     def __init__(self, key: bytes): | ||||
|         self.key = _verify_key_size(self, key) | ||||
|  | ||||
|     @property | ||||
|     def key_size(self) -> int: | ||||
|         return len(self.key) * 8 | ||||
|  | ||||
|  | ||||
| class SEED(BlockCipherAlgorithm): | ||||
|     name = "SEED" | ||||
|     block_size = 128 | ||||
|     key_sizes = frozenset([128]) | ||||
|  | ||||
|     def __init__(self, key: bytes): | ||||
|         self.key = _verify_key_size(self, key) | ||||
|  | ||||
|     @property | ||||
|     def key_size(self) -> int: | ||||
|         return len(self.key) * 8 | ||||
|  | ||||
|  | ||||
| class IDEA(BlockCipherAlgorithm): | ||||
|     name = "IDEA" | ||||
|     block_size = 64 | ||||
|     key_sizes = frozenset([128]) | ||||
|  | ||||
|     def __init__(self, key: bytes): | ||||
|         self.key = _verify_key_size(self, key) | ||||
|  | ||||
|     @property | ||||
|     def key_size(self) -> int: | ||||
|         return len(self.key) * 8 | ||||
|  | ||||
|  | ||||
| # This class only allows RC2 with a 128-bit key. No support for | ||||
| # effective key bits or other key sizes is provided. | ||||
| class RC2(BlockCipherAlgorithm): | ||||
|     name = "RC2" | ||||
|     block_size = 64 | ||||
|     key_sizes = frozenset([128]) | ||||
|  | ||||
|     def __init__(self, key: bytes): | ||||
|         self.key = _verify_key_size(self, key) | ||||
|  | ||||
|     @property | ||||
|     def key_size(self) -> int: | ||||
|         return len(self.key) * 8 | ||||
		Reference in New Issue
	
	Block a user