~ubuntu-branches/ubuntu/natty/paramiko/natty

« back to all changes in this revision

Viewing changes to paramiko/dsskey.py

  • Committer: Bazaar Package Importer
  • Author(s): Jelmer Vernooij, Jelmer Vernooij, Andrew Bennetts
  • Date: 2011-01-14 06:54:41 UTC
  • Revision ID: james.westby@ubuntu.com-20110114065441-t1b38geuyx2ojxz2
Tags: 1.7.6-5ubuntu1
[ Jelmer Vernooij ]

* Avoid deprecated RandomPool. Patch by Gary van der Merwe. Closes:
  #576697, LP: #271791, LP: #682600.
* Switch to source format 3.0 (quilt).

[ Andrew Bennetts ]

* Try connecting to each available address family until one succeeds.
  LP: #579530

Show diffs side-by-side

added added

removed removed

Lines of Context:
91
91
    def can_sign(self):
92
92
        return self.x is not None
93
93
 
94
 
    def sign_ssh_data(self, rpool, data):
 
94
    def sign_ssh_data(self, rng, data):
95
95
        digest = SHA.new(data).digest()
96
96
        dss = DSA.construct((long(self.y), long(self.g), long(self.p), long(self.q), long(self.x)))
97
97
        # generate a suitable k
98
98
        qsize = len(util.deflate_long(self.q, 0))
99
99
        while True:
100
 
            k = util.inflate_long(rpool.get_bytes(qsize), 1)
 
100
            k = util.inflate_long(rng.read(qsize), 1)
101
101
            if (k > 2) and (k < self.q):
102
102
                break
103
103
        r, s = dss.sign(util.inflate_long(digest, 1), k)
161
161
        @return: new private key
162
162
        @rtype: L{DSSKey}
163
163
        """
164
 
        randpool.stir()
165
 
        dsa = DSA.generate(bits, randpool.get_bytes, progress_func)
 
164
        dsa = DSA.generate(bits, rng.read, progress_func)
166
165
        key = DSSKey(vals=(dsa.p, dsa.q, dsa.g, dsa.y))
167
166
        key.x = dsa.x
168
167
        return key