components/python/pysnmp/patches/pycrypto.patch
author Laszlo Peter <laszlo.peter@oracle.com>
Wed, 07 Sep 2016 14:48:25 -0700
changeset 6765 49d1ca37bc48
permissions -rw-r--r--
PSARC 2016/344 pysnmp - an SNMP library for Python 23745949 pysnmp: an SNMP library for Python
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6765
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
     1
Remove use of pycrypto, and replace with PyCA cryptography.  This has not
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
     2
been submitted upstream.
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
     3
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
     4
--- pysnmp-4.3.2/pysnmp/proto/secmod/eso/priv/des3.py	2016-02-13 11:38:14.000000000 -0800
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
     5
+++ pysnmp-4.3.2/pysnmp/proto/secmod/eso/priv/des3.py	2016-07-01 12:44:37.333145737 -0700
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
     6
@@ -21,9 +21,12 @@
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
     7
     sha1 = sha.new
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
     8
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
     9
 try:
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    10
-    from Crypto.Cipher import DES3
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    11
+    from cryptography.hazmat.backends import default_backend
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    12
+    from cryptography.hazmat.primitives.ciphers import algorithms, modes, Cipher
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    13
 except ImportError:
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    14
     DES3 = None
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    15
+else:
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    16
+    DES3 = True
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    17
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    18
 random.seed()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    19
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    20
@@ -109,7 +112,9 @@
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    21
             encryptKey, snmpEngineBoots
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    22
             )
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    23
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    24
-        des3Obj = DES3.new(des3Key, DES3.MODE_CBC, iv)
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    25
+        des3Obj = Cipher(
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    26
+            algorithms.TripleDES(des3Key), modes.CBC(iv),
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    27
+            backend=default_backend()).encryptor()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    28
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    29
         privParameters = univ.OctetString(salt)
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    30
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    31
@@ -117,11 +122,12 @@
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    32
         cipherblock = iv
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    33
         ciphertext = null
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    34
         while plaintext:
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    35
-            cipherblock = des3Obj.encrypt(
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    36
+            cipherblock = des3Obj.update(
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    37
                 univ.OctetString(map(lambda x, y: x^y, univ.OctetString(cipherblock).asNumbers(), univ.OctetString(plaintext[:8]).asNumbers())).asOctets()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    38
                 )
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    39
             ciphertext = ciphertext + cipherblock
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    40
             plaintext = plaintext[8:]
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    41
+        ciphertext = ciphertext + des3Obj.finalize()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    42
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    43
         return univ.OctetString(ciphertext), privParameters
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    44
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    45
@@ -145,14 +151,17 @@
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    46
                 errorIndication=errind.decryptionError
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    47
                 )
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    48
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    49
-        des3Obj = DES3.new(des3Key, DES3.MODE_CBC, iv)
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    50
+        des3Obj = Cipher(
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    51
+            algorithms.TripleDES(des3Key), modes.CBC(iv),
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    52
+            backend=default_backend()).decryptor()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    53
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    54
         plaintext = null
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    55
         ciphertext = encryptedData.asOctets()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    56
         cipherblock = iv
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    57
         while ciphertext:
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    58
-            plaintext = plaintext + univ.OctetString(map(lambda x, y: x ^ y, univ.OctetString(cipherblock).asNumbers(), univ.OctetString(des3Obj.decrypt(ciphertext[:8])).asNumbers())).asOctets()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    59
+            plaintext = plaintext + univ.OctetString(map(lambda x, y: x ^ y, univ.OctetString(cipherblock).asNumbers(), univ.OctetString(des3Obj.update(ciphertext[:8])).asNumbers())).asOctets()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    60
             cipherblock = ciphertext[:8]
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    61
             ciphertext = ciphertext[8:]
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    62
+        plaintext = plaintext + des3Obj.finalize()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    63
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    64
         return plaintext
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    65
--- pysnmp-4.3.2/pysnmp/proto/secmod/rfc3414/priv/des.py	2016-02-13 11:38:14.000000000 -0800
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    66
+++ pysnmp-4.3.2/pysnmp/proto/secmod/rfc3414/priv/des.py	2016-07-01 12:48:29.221094169 -0700
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    67
@@ -13,9 +13,12 @@
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    68
 from sys import version_info
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    69
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    70
 try:
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    71
-    from Crypto.Cipher import DES
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    72
+    from cryptography.hazmat.backends import default_backend
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    73
+    from cryptography.hazmat.primitives.ciphers import algorithms, modes, Cipher
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    74
 except ImportError:
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    75
     DES = None
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    76
+else:
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    77
+    DES = True
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    78
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    79
 random.seed()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    80
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    81
@@ -90,14 +93,18 @@
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    82
         desKey, salt, iv = self.__getEncryptionKey(
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    83
             encryptKey, snmpEngineBoots
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    84
         )
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    85
+        # Use the same DES key three times and TripleDES is identical to DES
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    86
+        desKey *= 3
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    87
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    88
         # 8.3.1.2
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    89
         privParameters = univ.OctetString(salt)
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    90
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    91
         # 8.1.1.2
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    92
-        desObj = DES.new(desKey, DES.MODE_CBC, iv)
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    93
+        desObj = Cipher(
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    94
+            algorithms.TripleDES(desKey), modes.CBC(iv),
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    95
+            backend=default_backend()).encryptor()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    96
         plaintext = dataToEncrypt + univ.OctetString((0,) * (8 - len(dataToEncrypt) % 8)).asOctets()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    97
-        ciphertext = desObj.encrypt(plaintext)
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    98
+        ciphertext = desObj.update(plaintext) + desObj.finalize()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    99
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   100
         # 8.3.1.3 & 4
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   101
         return univ.OctetString(ciphertext), privParameters
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   102
@@ -121,6 +128,8 @@
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   103
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   104
         # 8.3.2.3
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   105
         desKey, iv = self.__getDecryptionKey(decryptKey, salt)
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   106
+        # Use the same DES key three times and TripleDES is identical to DES
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   107
+        desKey *= 3
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   108
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   109
         # 8.3.2.4 -> 8.1.1.3
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   110
         if len(encryptedData) % 8 != 0:
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   111
@@ -128,7 +137,9 @@
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   112
                 errorIndication=errind.decryptionError
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   113
             )
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   114
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   115
-        desObj = DES.new(desKey, DES.MODE_CBC, iv)
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   116
+        desObj = Cipher(
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   117
+            algorithms.TripleDES(desKey), modes.CBC(iv),
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   118
+            backend=default_backend()).decryptor()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   119
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   120
         # 8.3.2.6
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   121
-        return desObj.decrypt(encryptedData.asOctets())
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   122
+        return desObj.update(encryptedData.asOctets()) + desObj.finalize()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   123
--- pysnmp-4.3.2/pysnmp/proto/secmod/rfc3826/priv/aes.py	2016-02-13 11:38:14.000000000 -0800
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   124
+++ pysnmp-4.3.2/pysnmp/proto/secmod/rfc3826/priv/aes.py	2016-07-01 12:51:20.539017683 -0700
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   125
@@ -12,9 +12,12 @@
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   126
 from pysnmp.proto import errind, error
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   127
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   128
 try:
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   129
-    from Crypto.Cipher import AES
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   130
+    from cryptography.hazmat.backends import default_backend
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   131
+    from cryptography.hazmat.primitives.ciphers import algorithms, modes, Cipher
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   132
 except ImportError:
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   133
     AES = None
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   134
+else:
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   135
+    AES = True
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   136
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   137
 random.seed()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   138
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   139
@@ -97,12 +100,15 @@
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   140
         )
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   141
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   142
         # 3.3.1.3
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   143
-        aesObj = AES.new(aesKey, AES.MODE_CFB, iv, segment_size=128)
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   144
+        # XXX segment_size=128
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   145
+        aesObj = Cipher(
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   146
+          algorithms.AES(aesKey), modes.CFB(iv),
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   147
+          backend=default_backend()).encryptor()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   148
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   149
         # PyCrypto seems to require padding
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   150
         dataToEncrypt = dataToEncrypt + univ.OctetString((0,) * (16-len(dataToEncrypt)%16)).asOctets()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   151
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   152
-        ciphertext = aesObj.encrypt(dataToEncrypt)
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   153
+        ciphertext = aesObj.update(dataToEncrypt) + aesObj.finalize()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   154
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   155
         # 3.3.1.4
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   156
         return univ.OctetString(ciphertext), univ.OctetString(salt)
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   157
@@ -127,10 +133,13 @@
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   158
             decryptKey, snmpEngineBoots, snmpEngineTime, salt
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   159
         )
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   160
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   161
-        aesObj = AES.new(aesKey, AES.MODE_CFB, iv, segment_size=128)
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   162
+        # XXX segment_size=128
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   163
+        aesObj = Cipher(
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   164
+          algorithms.AES(aesKey), modes.CFB(iv),
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   165
+          backend=default_backend()).decryptor()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   166
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   167
         # PyCrypto seems to require padding
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   168
         encryptedData = encryptedData + univ.OctetString((0,) * (16-len(encryptedData)%16)).asOctets()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   169
 
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   170
         # 3.3.2.4-6
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   171
-        return aesObj.decrypt(encryptedData.asOctets())
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   172
+        return aesObj.update(encryptedData.asOctets()) + aesObj.finalize()
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   173
--- pysnmp-4.3.2/pysnmp.egg-info/requires.txt	2016-02-13 13:14:19.000000000 -0800
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   174
+++ pysnmp-4.3.2/pysnmp.egg-info/requires.txt	2016-07-01 12:37:23.692977024 -0700
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   175
@@ -1,3 +1,2 @@
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   176
 pyasn1>=0.1.8
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   177
 pysmi
49d1ca37bc48 PSARC 2016/344 pysnmp - an SNMP library for Python
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
   178
-pycrypto>=2.4.1