author | Laszlo Peter <laszlo.peter@oracle.com> |
Wed, 07 Sep 2016 14:48:25 -0700 | |
changeset 6765 | 49d1ca37bc48 |
permissions | -rw-r--r-- |
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 |