Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(503)

Side by Side Diff: third_party/tlslite/tlslite/utils/pycrypto_rsakey.py

Issue 210323002: Update tlslite to 0.4.6. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Executable bit and --similarity=80 Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # Author: Trevor Perrin
2 # See the LICENSE file for legal information regarding use of this file.
3
1 """PyCrypto RSA implementation.""" 4 """PyCrypto RSA implementation."""
2 5
3 from cryptomath import * 6 from .cryptomath import *
4 7
5 from rsakey import * 8 from .rsakey import *
6 from python_rsakey import Python_RSAKey 9 from .python_rsakey import Python_RSAKey
7 10
8 if pycryptoLoaded: 11 if pycryptoLoaded:
9 12
10 from Crypto.PublicKey import RSA 13 from Crypto.PublicKey import RSA
11 14
12 class PyCrypto_RSAKey(RSAKey): 15 class PyCrypto_RSAKey(RSAKey):
13 def __init__(self, n=0, e=0, d=0, p=0, q=0, dP=0, dQ=0, qInv=0): 16 def __init__(self, n=0, e=0, d=0, p=0, q=0, dP=0, dQ=0, qInv=0):
14 if not d: 17 if not d:
15 self.rsa = RSA.construct( (n, e) ) 18 self.rsa = RSA.construct( (n, e) )
16 else: 19 else:
17 self.rsa = RSA.construct( (n, e, d, p, q) ) 20 self.rsa = RSA.construct( (n, e, d, p, q) )
18 21
19 def __getattr__(self, name): 22 def __getattr__(self, name):
20 return getattr(self.rsa, name) 23 return getattr(self.rsa, name)
21 24
22 def hasPrivateKey(self): 25 def hasPrivateKey(self):
23 return self.rsa.has_private() 26 return self.rsa.has_private()
24 27
25 def hash(self):
26 return Python_RSAKey(self.n, self.e).hash()
27
28 def _rawPrivateKeyOp(self, m): 28 def _rawPrivateKeyOp(self, m):
29 s = numberToString(m) 29 s = bytes(numberToByteArray(m, numBytes(self.n)))
30 byteLength = numBytes(self.n) 30 c = bytesToNumber(bytearray(self.rsa.decrypt((s,))))
31 if len(s)== byteLength:
32 pass
33 elif len(s) == byteLength-1:
34 s = '\0' + s
35 else:
36 raise AssertionError()
37 c = stringToNumber(self.rsa.decrypt((s,)))
38 return c 31 return c
39 32
40 def _rawPublicKeyOp(self, c): 33 def _rawPublicKeyOp(self, c):
41 s = numberToString(c) 34 s = bytes(numberToByteArray(c, numBytes(self.n)))
42 byteLength = numBytes(self.n) 35 m = bytesToNumber(bytearray(self.rsa.encrypt(s, None)[0]))
43 if len(s)== byteLength:
44 pass
45 elif len(s) == byteLength-1:
46 s = '\0' + s
47 else:
48 raise AssertionError()
49 m = stringToNumber(self.rsa.encrypt(s, None)[0])
50 return m 36 return m
51 37
52 def writeXMLPublicKey(self, indent=''):
53 return Python_RSAKey(self.n, self.e).write(indent)
54
55 def generate(bits): 38 def generate(bits):
56 key = PyCrypto_RSAKey() 39 key = PyCrypto_RSAKey()
57 def f(numBytes): 40 def f(numBytes):
58 return bytesToString(getRandomBytes(numBytes)) 41 return bytes(getRandomBytes(numBytes))
59 key.rsa = RSA.generate(bits, f) 42 key.rsa = RSA.generate(bits, f)
60 return key 43 return key
61 generate = staticmethod(generate) 44 generate = staticmethod(generate)
OLDNEW
« no previous file with comments | « third_party/tlslite/tlslite/utils/pycrypto_rc4.py ('k') | third_party/tlslite/tlslite/utils/pycrypto_tripledes.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698