From bda9492c89eb38a1aec85220294f6d637ad68724 Mon Sep 17 00:00:00 2001 From: Victor Wagner Date: Fri, 24 Oct 2014 18:08:15 +0400 Subject: [PATCH] Fixed variable keylength error --- ctypescrypto/cipher.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ctypescrypto/cipher.py b/ctypescrypto/cipher.py index 8734b6d..3320d2f 100644 --- a/ctypescrypto/cipher.py +++ b/ctypescrypto/cipher.py @@ -121,14 +121,16 @@ class Cipher: if len(key) != cipher_type.key_length(): if (cipher_type.flags() & 8) != 0: # Variable key length cipher. - result = libcrypto.EVP_CipherInit_ex(self.ctx, cipher_type.cipher, None, key_ptr, iv_ptr, c_int(enc)) + result = libcrypto.EVP_CipherInit_ex(self.ctx, cipher_type.cipher, None, None, None, c_int(enc)) result=libcrypto.EVP_CIPHER_CTX_set_key_length(self.ctx,len(key)) if result == 0: self._clean_ctx() raise CipherError("Unable to set key length") + result = libcrypto.EVP_CipherInit_ex(self.ctx, None, None, key_ptr, iv_ptr, c_int(enc)) else: raise ValueError("Invalid key length for this algorithm") - result = libcrypto.EVP_CipherInit_ex(self.ctx, cipher_type.cipher, None, key_ptr, iv_ptr, c_int(enc)) + else: + result = libcrypto.EVP_CipherInit_ex(self.ctx, cipher_type.cipher, None, key_ptr, iv_ptr, c_int(enc)) if result == 0: self._clean_ctx() raise CipherError, "Unable to initialize cipher" -- 2.39.2