|
15 | 15 | # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, |
16 | 16 | # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
17 | 17 | # |
18 | | -# $Id: password.py,v 1.14 2005-12-03 11:35:54 a1s Exp $ |
| 18 | +# $Id: password.py,v 1.15 2005-12-25 15:38:40 a1s Exp $ |
19 | 19 |
|
20 | 20 | """Password handling (encoding, decoding). |
21 | 21 | """ |
@@ -89,32 +89,34 @@ def __init__(self, plaintext=None, scheme=None, encrypted=None): |
89 | 89 | if scheme is None: |
90 | 90 | scheme = self.default_scheme |
91 | 91 | if plaintext is not None: |
92 | | - self.password = encodePassword(plaintext, self.default_scheme) |
93 | | - self.scheme = self.default_scheme |
| 92 | + self.setPassword (plaintext, scheme) |
94 | 93 | elif encrypted is not None: |
95 | | - self.unpack(encrypted) |
| 94 | + self.unpack(encrypted, scheme) |
96 | 95 | else: |
97 | | - self.password = None |
98 | 96 | self.scheme = self.default_scheme |
| 97 | + self.password = None |
| 98 | + self.plaintext = None |
99 | 99 |
|
100 | | - def unpack(self, encrypted): |
| 100 | + def unpack(self, encrypted, scheme=None): |
101 | 101 | '''Set the password info from the scheme:<encryted info> string |
102 | 102 | (the inverse of __str__) |
103 | 103 | ''' |
104 | 104 | m = self.pwre.match(encrypted) |
105 | 105 | if m: |
106 | 106 | self.scheme = m.group(1) |
107 | 107 | self.password = m.group(2) |
| 108 | + self.plaintext = None |
108 | 109 | else: |
109 | 110 | # currently plaintext - encrypt |
110 | | - self.password = encodePassword(encrypted, self.default_scheme) |
111 | | - self.scheme = self.default_scheme |
| 111 | + self.setPassword(encrypted, scheme) |
112 | 112 |
|
113 | 113 | def setPassword(self, plaintext, scheme=None): |
114 | 114 | '''Sets encrypts plaintext.''' |
115 | 115 | if scheme is None: |
116 | 116 | scheme = self.default_scheme |
| 117 | + self.scheme = scheme |
117 | 118 | self.password = encodePassword(plaintext, scheme) |
| 119 | + self.plaintext = plaintext |
118 | 120 |
|
119 | 121 | def __cmp__(self, other): |
120 | 122 | '''Compare this password against another password.''' |
|
0 commit comments