Skip to content

Commit 09eb6b3

Browse files
committed
Get files ready for 0.2 release
1 parent 62c9af4 commit 09eb6b3

7 files changed

Lines changed: 383 additions & 3 deletions

File tree

ChangeLog

Lines changed: 349 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,352 @@
1+
2014-06-19 Arthur de Jong <arthur@arthurdejong.org>
2+
3+
* [62c9af4] pskc/__init__.py: Only catch normal exceptions
4+
5+
2014-06-18 Arthur de Jong <arthur@arthurdejong.org>
6+
7+
* [deb57d7] pskc/__init__.py: Remove unused import
8+
9+
2014-06-17 Arthur de Jong <arthur@arthurdejong.org>
10+
11+
* [178ef1c] pskc/encryption.py: PEP8 fix
12+
13+
2014-06-17 Arthur de Jong <arthur@arthurdejong.org>
14+
15+
* [7435552] pskc/exceptions.py: Remove __str__ from exception
16+
17+
The message property has been deprecated as of Python 2.6 and
18+
printing the first argument is the default.
19+
20+
2014-06-16 Arthur de Jong <arthur@arthurdejong.org>
21+
22+
* [f084735] README, docs/encryption.rst, docs/exceptions.rst,
23+
docs/index.rst, docs/mac.rst, docs/policy.rst, docs/usage.rst:
24+
Update documentation
25+
26+
This updates the documentation with the current API, adding
27+
information on exceptions raised, HMAC algorithms supported and
28+
changes to the MAC checking.
29+
30+
This also includes some editorial changes to some of the text and
31+
making references shorter by not including the full package path.
32+
33+
2014-06-15 Arthur de Jong <arthur@arthurdejong.org>
34+
35+
* [d84e761] pskc/parse.py: Simplify finding ElementTree
36+
implementation
37+
38+
These are the only ElementTree implementations that have been
39+
tested to provide the needed functionality (mostly namespaces).
40+
41+
2014-06-15 Arthur de Jong <arthur@arthurdejong.org>
42+
43+
* [50b429d] pskc/key.py, pskc/parse.py, pskc/policy.py: Refactor
44+
out some functions to parse
45+
46+
This introduces the getint() and getbool() functions in parse
47+
to avoid some code duplication.
48+
49+
2014-06-15 Arthur de Jong <arthur@arthurdejong.org>
50+
51+
* [9a16ce4] pskc/key.py, tests/test_misc.doctest: Add support for
52+
setting secret
53+
54+
This supports setters for the secret, counter, time_offset,
55+
time_interval and time_drift properties. Setting these values
56+
stores the values unencrypted internally.
57+
58+
2014-06-14 Arthur de Jong <arthur@arthurdejong.org>
59+
60+
* [1b9ee9f] pskc/encryption.py: Support PBKDF2 PRF argument
61+
62+
Support specifying a pseudorandom function for PBKDF2 key
63+
derivation. It currently supports any HMAC that the MAC checking
64+
also supports.
65+
66+
2014-06-14 Arthur de Jong <arthur@arthurdejong.org>
67+
68+
* [79b9a7d] pskc/mac.py: Provide a get_hmac() function
69+
70+
Refactor the functionality to find an HMAC function into a
71+
separate function.
72+
73+
2014-06-14 Arthur de Jong <arthur@arthurdejong.org>
74+
75+
* [1417d4a] tests/invalid-mac-algorithm.pskcxml,
76+
tests/invalid-mac-value.pskcxml,
77+
tests/invalid-no-mac-method.pskcxml, tests/test_invalid.doctest:
78+
Add tests for missing or invalid MAC
79+
80+
This tests for incomplete, unknown or invalid MACs in PSKC files.
81+
82+
2014-06-14 Arthur de Jong <arthur@arthurdejong.org>
83+
84+
* [9d8aae0] pskc/key.py, pskc/mac.py: Raise exception when MAC
85+
validation fails
86+
87+
This changes the way the check() function works to raise an
88+
exception when the MAC is not correct. The MAC is also now always
89+
checked before attempting decryption.
90+
91+
This also renames the internal DataType.value property to a
92+
get_value() method for clarity.
93+
94+
2014-06-14 Arthur de Jong <arthur@arthurdejong.org>
95+
96+
* [699ecf8] pskc/encryption.py: Handle missing MAC algorithm properly
97+
98+
2014-06-14 Arthur de Jong <arthur@arthurdejong.org>
99+
100+
* [01e102b] tests/aes128-cbc.pskcxml, tests/aes192-cbc.pskcxml,
101+
tests/aes256-cbc.pskcxml, tests/test_encryption.doctest,
102+
tests/tripledes-cbc.pskcxml: Add MAC tests to all CBC encrypted
103+
keys
104+
105+
This adds hmac-sha224, hmac-sha256, hmac-sha384 and hmac-sha512
106+
tests for values that are encrypted using CBC block cypher modes.
107+
108+
2014-06-14 Arthur de Jong <arthur@arthurdejong.org>
109+
110+
* [59e790e] pskc/mac.py: Automatically support all MACs in hashlib
111+
112+
This uses the name of the hash to automatically get the correct
113+
hash object from Python's hashlib.
114+
115+
2014-06-14 Arthur de Jong <arthur@arthurdejong.org>
116+
117+
* [566e447] pskc/__init__.py, pskc/parse.py, setup.py: Support
118+
various ElementTree implementations
119+
120+
When using a recent enough lxml, even Python 2.6 should work
121+
now. The most important requirement is that the findall()
122+
function supports the namespaces argument.
123+
124+
This also now catches all exceptions when parsing the PSKC file
125+
fails and wraps it in ParseError because various implementations
126+
raise different exceptions, even between versions (Python 2.6's
127+
ElementTree raises ExpatError, lxml raises XMLSyntaxError).
128+
129+
2014-06-13 Arthur de Jong <arthur@arthurdejong.org>
130+
131+
* [5d60ee2] pskc/__init__.py, pskc/encryption.py, pskc/key.py,
132+
pskc/mac.py, pskc/parse.py, pskc/policy.py: Have parse module
133+
provide find() functions
134+
135+
This changes the parse module functions to better match the
136+
ElementTree API and extends it with findint(), findtime()
137+
and findbin().
138+
139+
It also passes the namespaces to all calls that require it
140+
without duplicating this throughout the normal code.
141+
142+
2014-06-11 Arthur de Jong <arthur@west.nl>
143+
144+
* [6a34c01] pskc/__init__.py, pskc/encryption.py, pskc/key.py,
145+
pskc/mac.py, pskc/policy.py: Use get() instead of attrib.get()
146+
(shorter)
147+
148+
2014-05-31 Arthur de Jong <arthur@arthurdejong.org>
149+
150+
* [4d92b93] pskc/encryption.py, tests/kw-tripledes.pskcxml,
151+
tests/test_encryption.doctest: Support kw-tripledes decryption
152+
153+
This adds support for key unwrapping using the RFC 3217 Triple
154+
DES key wrap algorithm if the PSKC file uses this.
155+
156+
2014-05-31 Arthur de Jong <arthur@arthurdejong.org>
157+
158+
* [fd71f01] pskc/tripledeskw.py, tests/test_tripledeskw.doctest:
159+
Implement RFC 3217 Triple DES key wrapping
160+
161+
2014-05-31 Arthur de Jong <arthur@arthurdejong.org>
162+
163+
* [f639318] tests/test_minimal.doctest, tests/test_misc.doctest:
164+
Merge test_minimal into test_misc
165+
166+
2014-05-31 Arthur de Jong <arthur@arthurdejong.org>
167+
168+
* [1e7f861] tests/draft-keyprov-actividentity-3des.pskcxml,
169+
tests/test_draft_keyprov.doctest: Add an ActivIdentity-3DES test
170+
171+
The test is taken from
172+
draft-hoyer-keyprov-pskc-algorithm-profiles-01 modified to fit
173+
the schema as described in RFC 6030.
174+
175+
2014-05-31 Arthur de Jong <arthur@arthurdejong.org>
176+
177+
* [b7cb928] tests/draft-keyprov-securid-aes-counter.pskcxml,
178+
tests/test_draft_keyprov.doctest: Add an SecurID-AES-Counter test
179+
180+
The test is taken from
181+
draft-hoyer-keyprov-pskc-algorithm-profiles-01 modified to be
182+
valid XML and to fit the schema as described in RFC 6030.
183+
184+
2014-05-31 Arthur de Jong <arthur@arthurdejong.org>
185+
186+
* [427319f] tests/draft-keyprov-totp.pskcxml,
187+
tests/test_draft_keyprov.doctest: Add an TOTP test
188+
189+
The test is taken from
190+
draft-hoyer-keyprov-pskc-algorithm-profiles-01 modified to fit
191+
the schema as described in RFC 6030.
192+
193+
2014-05-31 Arthur de Jong <arthur@arthurdejong.org>
194+
195+
* [ba49d09] tests/draft-keyprov-ocra.pskcxml,
196+
tests/test_draft_keyprov.doctest: Add an OCRA test
197+
198+
The test is taken from
199+
draft-hoyer-keyprov-pskc-algorithm-profiles-01 modified to fit
200+
the schema as described in RFC 6030.
201+
202+
2014-05-31 Arthur de Jong <arthur@arthurdejong.org>
203+
204+
* [0a66ede] tests/odd-namespace.pskcxml, tests/test_misc.doctest:
205+
Add a test for an odd namespace
206+
207+
2014-05-30 Arthur de Jong <arthur@arthurdejong.org>
208+
209+
* [287afa7] pskc/encryption.py, tests/kw-aes128.pskcxml,
210+
tests/kw-aes192.pskcxml, tests/kw-aes256.pskcxml,
211+
tests/test_encryption.doctest: Support kw-aes128, kw-aes192
212+
and kw-aes256
213+
214+
This adds support for key unwrapping using the RFC 3394 or RFC
215+
5649 algorithm if the PSKC file uses this.
216+
217+
2014-05-30 Arthur de Jong <arthur@arthurdejong.org>
218+
219+
* [99ba287] pskc/aeskw.py, tests/test_aeskw.doctest: Implement
220+
padding as specified in RFC 5649
221+
222+
This adds a pad argument with which padding can be forced or
223+
disabled.
224+
225+
2014-05-29 Arthur de Jong <arthur@arthurdejong.org>
226+
227+
* [ebf8945] pskc/aeskw.py, tests/test_aeskw.doctest: Allow speciying
228+
an initial value for key wrapping
229+
230+
2014-05-29 Arthur de Jong <arthur@arthurdejong.org>
231+
232+
* [5720fe5] pskc/aeskw.py, pskc/exceptions.py,
233+
tests/test_aeskw.doctest: Provide an RFC 3394 AES key wrapping
234+
algorithm
235+
236+
This also introduces an EncryptionError exception.
237+
238+
2014-05-29 Arthur de Jong <arthur@arthurdejong.org>
239+
240+
* [7164d89] README, docs/usage.rst, pskc/__init__.py,
241+
tests/rfc6030-figure10.pskcxml, tests/rfc6030-figure2.pskcxml,
242+
tests/rfc6030-figure3.pskcxml, tests/rfc6030-figure4.pskcxml,
243+
tests/rfc6030-figure5.pskcxml, tests/rfc6030-figure6.pskcxml,
244+
tests/rfc6030-figure7.pskcxml, tests/test_rfc6030.doctest:
245+
Always put a space between RFC and number
246+
247+
2014-05-29 Arthur de Jong <arthur@arthurdejong.org>
248+
249+
* [ccebb69] pskc/encryption.py, tests/test_encryption.doctest,
250+
tests/tripledes-cbc.pskcxml: Support Tripple DES decryption
251+
252+
2014-05-29 Arthur de Jong <arthur@arthurdejong.org>
253+
254+
* [a11f31f] tests/test_invalid.doctest: Add tests for key derivation
255+
problems
256+
257+
This tests for unknown or missing algorithms and unknown
258+
derivation parameters.
259+
260+
2014-05-29 Arthur de Jong <arthur@arthurdejong.org>
261+
262+
* [0738c94] pskc/encryption.py, pskc/exceptions.py: Raise exception
263+
when key derivation fails
264+
265+
This also renames the internal function that implements the
266+
derivation.
267+
268+
2014-05-29 Arthur de Jong <arthur@arthurdejong.org>
269+
270+
* [76ef42b] pskc/encryption.py, pskc/exceptions.py,
271+
tests/invalid-encryption.pskcxml, tests/test_invalid.doctest:
272+
Add test for missing key encryption algorithm
273+
274+
This also introduces a toplevel PSKCError exception that all
275+
exceptions have as parent.
276+
277+
2014-05-29 Arthur de Jong <arthur@arthurdejong.org>
278+
279+
* [7f26dc6] tests/aes128-cbc.pskcxml, tests/aes192-cbc.pskcxml,
280+
tests/aes256-cbc.pskcxml, tests/test_encryption.doctest: Add
281+
test for all AES-CBC encryption schemes
282+
283+
2014-05-29 Arthur de Jong <arthur@arthurdejong.org>
284+
285+
* [28f2c1c] pskc/encryption.py: Support more AES-CBC encryption
286+
schemes
287+
288+
This also moves the crypto imports to the places where they are
289+
used to avoid a depenency on pycrypto if no encryption is used.
290+
291+
2014-05-29 Arthur de Jong <arthur@arthurdejong.org>
292+
293+
* [678b127] tests/test_minimal.doctest: Add test for missing
294+
secret value
295+
296+
2014-05-25 Arthur de Jong <arthur@arthurdejong.org>
297+
298+
* [bef2f7d] pskc/__init__.py, pskc/key.py,
299+
tests/test_minimal.doctest: Add a function for adding a new key
300+
301+
2014-05-25 Arthur de Jong <arthur@arthurdejong.org>
302+
303+
* [46f5749] pskc/__init__.py: Consistency improvement
304+
305+
2014-05-25 Arthur de Jong <arthur@arthurdejong.org>
306+
307+
* [83f5a4b] pskc/__init__.py, tests/test_minimal.doctest: Support
308+
creating an empty PSKC instance
309+
310+
2014-05-25 Arthur de Jong <arthur@arthurdejong.org>
311+
312+
* [820c83c] pskc/encryption.py, pskc/mac.py: Be more lenient in
313+
accepting algorithms
314+
315+
2014-05-25 Arthur de Jong <arthur@arthurdejong.org>
316+
317+
* [02bde47] pskc/key.py: Code simplification
318+
319+
2014-05-25 Arthur de Jong <arthur@arthurdejong.org>
320+
321+
* [b62fec8] pskc/encryption.py, pskc/exceptions.py,
322+
tests/invalid-encryption.pskcxml, tests/test_invalid.doctest,
323+
tests/test_rfc6030.doctest: Raise an exception if decryption fails
324+
325+
2014-05-25 Arthur de Jong <arthur@arthurdejong.org>
326+
327+
* [7bc2e6b] pskc/encryption.py: Make decryption code better readable
328+
329+
2014-05-23 Arthur de Jong <arthur@arthurdejong.org>
330+
331+
* [714f387] setup.cfg, tests/invalid-notxml.pskcxml,
332+
tests/invalid-wrongelement.pskcxml,
333+
tests/invalid-wrongversion.pskcxml, tests/test_invalid.doctest:
334+
Add tests for invalid PSKC files
335+
336+
2014-05-23 Arthur de Jong <arthur@arthurdejong.org>
337+
338+
* [803d24c] pskc/__init__.py, pskc/exceptions.py: Raise exceptions
339+
on some parsing problems
340+
341+
2014-05-23 Arthur de Jong <arthur@arthurdejong.org>
342+
343+
* [8c37e26] setup.py: Fix install_requires
344+
345+
2014-05-23 Arthur de Jong <arthur@arthurdejong.org>
346+
347+
* [8e1729e] ChangeLog, MANIFEST.in, NEWS: Get files ready for
348+
0.1 release
349+
1350
2014-05-23 Arthur de Jong <arthur@arthurdejong.org>
2351

3352
* [15ca643] README, pskc/__init__.py, tests/rfc6030-figure10.pskc,

NEWS

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,24 @@
1+
changes from 0.1 to 0.2
2+
-----------------------
3+
4+
* raise exceptions on parsing, decryption and other problems
5+
* support Python 2.6 and multiple ElementTree implementations (lxml is
6+
required when using Python 2.6)
7+
* support more encryption algorithms (AES128-CBC, AES192-CBC, AES256-CBC,
8+
TripleDES-CBC, KW-AES128, KW-AES192, KW-AES256 and KW-TripleDES) and be
9+
more lenient in accepting algorithm URIs
10+
* support all HMAC algorithms that Python's hashlib module has hash functions
11+
for (HMAC-MD5, HMAC-SHA1, HMAC-SHA224, HMAC-SHA256, HMAC-SHA384 and
12+
HMAC-SHA512)
13+
* support PRF attribute of PBKDF2 algorithm
14+
* support creating PSKC objects and keys
15+
* when accessing values for which a MAC is present, a MAC failure will raise
16+
an exception (DecryptionError)
17+
* many code cleanups
18+
* improve test coverage
19+
20+
21+
changes in 0.1
22+
--------------
23+
124
Initial release

docs/changes.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Changes in python-pskc
2+
======================
3+
4+
.. include:: ../NEWS

docs/index.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@ Contents
66
--------
77

88
.. toctree::
9-
:maxdepth: 2
9+
:maxdepth: 1
1010

1111
usage
1212
encryption
1313
mac
1414
policy
1515
exceptions
16+
changes
1617

1718

1819
Security considerations

0 commit comments

Comments
 (0)