]> www.wagner.pp.ru Git - oss/ctypescrypto.git/commitdiff
Updated cms.py so that EnvelopedData and EncryptedData work
authorparneshraniga <parnesh.raniga@gmail.com>
Thu, 18 Aug 2016 00:11:44 +0000 (10:11 +1000)
committerGitHub <noreply@github.com>
Thu, 18 Aug 2016 00:11:44 +0000 (10:11 +1000)
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.

ctypescrypto/cms.py

index ede20f5e631bad5d346f90391cde2c97371985f2..8e856f50c24a5f5674282882db78e8aee7dd9268 100644 (file)
@@ -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")