From: parneshraniga Date: Thu, 18 Aug 2016 00:11:44 +0000 (+1000) Subject: Updated cms.py so that EnvelopedData and EncryptedData work X-Git-Url: http://wagner.pp.ru/gitweb/?a=commitdiff_plain;h=9394b769c7573617630484e7a932f6542068a8b6;p=oss%2Fctypescrypto.git Updated cms.py so that EnvelopedData and EncryptedData work Wrong fields were used for cert and cipher parameter into calls of CMS_encrypt and CMS_decrypt for EnvelopedData. Similarly for CMS_EncryptedData_encrypt in EncryptedData. --- diff --git a/ctypescrypto/cms.py b/ctypescrypto/cms.py index ede20f5..8e856f5 100644 --- a/ctypescrypto/cms.py +++ b/ctypescrypto/cms.py @@ -243,7 +243,7 @@ class EnvelopedData(CMSBase): """ recp = StackOfX509(recipients) bio = Membio(data) - cms_ptr = libcrypto.CMS_encrypt(recp.ptr, bio.bio, cipher.cipher_type, + cms_ptr = libcrypto.CMS_encrypt(recp.ptr, bio.bio, cipher.cipher, flags) if cms_ptr is None: raise CMSError("encrypt EnvelopedData") @@ -263,7 +263,7 @@ class EnvelopedData(CMSBase): if pkey != cert.pubkey: raise ValueError("Certificate doesn't match private key") bio = Membio() - res = libcrypto.CMS_decrypt(self.ptr, pkey.key, cert.ccert, None, + res = libcrypto.CMS_decrypt(self.ptr, pkey.key, cert.cert, None, bio.bio, flags) if res <= 0: raise CMSError("decrypting CMS") @@ -285,7 +285,7 @@ class EncryptedData(CMSBase): @param flags - OR-ed combination of Flags constant """ bio = Membio(data) - ptr = libcrypto.CMS_EncryptedData_encrypt(bio.bio, cipher.cipher_type, + ptr = libcrypto.CMS_EncryptedData_encrypt(bio.bio, cipher.cipher, key, len(key), flags) if ptr is None: raise CMSError("encrypt data")