diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2014-05-16 10:27:55 -0400 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2014-05-16 10:27:55 -0400 |
commit | 4892e60ab1b11181a2b573968e6fbaf0a03609f8 (patch) | |
tree | 43f90100a661a9578b5e694d74c551fd9720824d | |
parent | 3a7e9d3f4a9ad32c0782d69620543f6ad3adae93 (diff) | |
download | cryptography-4892e60ab1b11181a2b573968e6fbaf0a03609f8.tar.gz cryptography-4892e60ab1b11181a2b573968e6fbaf0a03609f8.tar.bz2 cryptography-4892e60ab1b11181a2b573968e6fbaf0a03609f8.zip |
Reduce duplication. Also improve error message
-rw-r--r-- | cryptography/hazmat/primitives/ciphers/modes.py | 37 |
1 files changed, 12 insertions, 25 deletions
diff --git a/cryptography/hazmat/primitives/ciphers/modes.py b/cryptography/hazmat/primitives/ciphers/modes.py index 004a68bf..96b07ce1 100644 --- a/cryptography/hazmat/primitives/ciphers/modes.py +++ b/cryptography/hazmat/primitives/ciphers/modes.py @@ -17,6 +17,13 @@ from cryptography import utils from cryptography.hazmat.primitives import interfaces +def _check_iv_length(mode, algorithm): + if len(mode.initialization_vector) * 8 != algorithm.block_size: + raise ValueError("Invalid IV size ({0}) for {1}".format( + len(mode.initialization_vector), mode.name + )) + + @utils.register_interface(interfaces.Mode) @utils.register_interface(interfaces.ModeWithInitializationVector) class CBC(object): @@ -25,11 +32,7 @@ class CBC(object): def __init__(self, initialization_vector): self.initialization_vector = initialization_vector - def validate_for_algorithm(self, algorithm): - if len(self.initialization_vector) * 8 != algorithm.block_size: - raise ValueError("Invalid iv size ({0}) for {1}".format( - len(self.initialization_vector), self.name - )) + validate_for_algorithm = _check_iv_length @utils.register_interface(interfaces.Mode) @@ -48,11 +51,7 @@ class OFB(object): def __init__(self, initialization_vector): self.initialization_vector = initialization_vector - def validate_for_algorithm(self, algorithm): - if len(self.initialization_vector) * 8 != algorithm.block_size: - raise ValueError("Invalid iv size ({0}) for {1}".format( - len(self.initialization_vector), self.name - )) + validate_for_algorithm = _check_iv_length @utils.register_interface(interfaces.Mode) @@ -63,11 +62,7 @@ class CFB(object): def __init__(self, initialization_vector): self.initialization_vector = initialization_vector - def validate_for_algorithm(self, algorithm): - if len(self.initialization_vector) * 8 != algorithm.block_size: - raise ValueError("Invalid iv size ({0}) for {1}".format( - len(self.initialization_vector), self.name - )) + validate_for_algorithm = _check_iv_length @utils.register_interface(interfaces.Mode) @@ -78,11 +73,7 @@ class CFB8(object): def __init__(self, initialization_vector): self.initialization_vector = initialization_vector - def validate_for_algorithm(self, algorithm): - if len(self.initialization_vector) * 8 != algorithm.block_size: - raise ValueError("Invalid iv size ({0}) for {1}".format( - len(self.initialization_vector), self.name - )) + validate_for_algorithm = _check_iv_length @utils.register_interface(interfaces.Mode) @@ -93,11 +84,7 @@ class CTR(object): def __init__(self, nonce): self.nonce = nonce - def validate_for_algorithm(self, algorithm): - if len(self.nonce) * 8 != algorithm.block_size: - raise ValueError("Invalid nonce size ({0}) for {1}".format( - len(self.nonce), self.name - )) + validate_for_algorithm = _check_iv_length @utils.register_interface(interfaces.Mode) |