Skip to content

Commit fe63c42

Browse files
committed
Get files ready for 1.0 release
1 parent 2651e80 commit fe63c42

File tree

5 files changed

+388
-4
lines changed

5 files changed

+388
-4
lines changed

ChangeLog

Lines changed: 359 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,362 @@
1+
2017-12-29 Arthur de Jong <arthur@arthurdejong.org>
2+
3+
* [2651e80] tests/test_write.doctest: Not all XML serialisers
4+
write namespaces in same order
5+
6+
This ignores the namespace declarations in the generated XML
7+
files because not all implementations on all environments write
8+
these in the same order.
9+
10+
2017-12-29 Arthur de Jong <arthur@arthurdejong.org>
11+
12+
* [44b1353] docs/conf.py, setup.cfg, tox.ini: Add Sphinx
13+
documentation checks
14+
15+
This also slightly tunes the way Sphinx documentation is built.
16+
17+
2017-12-15 Arthur de Jong <arthur@arthurdejong.org>
18+
19+
* [42be53b] pskc2csv.py, tox.ini: Add support for PyPy
20+
21+
2017-12-15 Arthur de Jong <arthur@arthurdejong.org>
22+
23+
* [660ed65] setup.py, tox.ini: Add support for Python 3.7
24+
25+
2017-12-15 Arthur de Jong <arthur@arthurdejong.org>
26+
27+
* [9cd97c9] README, setup.py: Use README as package long description
28+
29+
2017-12-15 Arthur de Jong <arthur@arthurdejong.org>
30+
31+
* [20bf9c5] docs/encryption.rst, pskc/encryption.py, pskc2csv.py,
32+
tests/test_rfc6030.doctest: Add an is_encrypted property
33+
34+
This property can be use to see whether the PSKC file needs an
35+
additional pre-shared key or passphrase to decrypt any stored
36+
information.
37+
38+
2017-12-27 Arthur de Jong <arthur@arthurdejong.org>
39+
40+
* [c365a70] : Implement XML signature checking
41+
42+
2017-12-17 Arthur de Jong <arthur@arthurdejong.org>
43+
44+
* [418f3dc] docs/encryption.rst, docs/index.rst, docs/mac.rst,
45+
docs/signatures.rst, docs/usage.rst: Add documentation for signed
46+
PSKC files
47+
48+
2017-12-23 Arthur de Jong <arthur@arthurdejong.org>
49+
50+
* [a97ac46] pskc/parser.py, pskc/serialiser.py,
51+
pskc/signature.py, pskc/xml.py, setup.py,
52+
tests/certificate/README, tests/certificate/ca-certificate.pem,
53+
tests/certificate/ca-key.pem, tests/certificate/certificate.pem,
54+
tests/certificate/key.pem, tests/certificate/request.pem,
55+
tests/certificate/ss-certificate.pem,
56+
tests/rfc6030/figure9.pskcxml,
57+
tests/test_draft_ietf_keyprov_pskc_02.doctest,
58+
tests/test_rfc6030.doctest, tests/test_signature.doctest, tox.ini:
59+
Implement signature checking
60+
61+
This adds support for creating and verifying embedded XML
62+
signatures in PSKC files. This uses the third-party signxml
63+
library for actual signing and verification.
64+
65+
The signxml library has a dependency on lxml and defusedxml
66+
(and a few others) but all parts of python-pskc still work
67+
correctly with our without lxml and/or defusedxml and signxml
68+
is only required when working with embedded signatures.
69+
70+
This modifies the tox configuration to skip the signature
71+
checks if singxml is not installed and to only require 100%
72+
code coverage if the signature tests are done.
73+
74+
2017-12-15 Arthur de Jong <arthur@arthurdejong.org>
75+
76+
* [c0bd21f] pskc/xml.py: Move namespace moving to own function
77+
78+
2017-09-22 Arthur de Jong <arthur@arthurdejong.org>
79+
80+
* [ea503d6] pskc/__init__.py, pskc/parser.py, pskc/signature.py,
81+
tests/test_draft_ietf_keyprov_pskc_02.doctest,
82+
tests/test_rfc6030.doctest: Implement basic parsing of signature
83+
properties
84+
85+
2017-12-23 Arthur de Jong <arthur@arthurdejong.org>
86+
87+
* [fcc6cdb] pskc2csv.py: Explicitly close output file in pskc2csv
88+
89+
This ensures that the file descriptor is closed if we opened
90+
the file. This is not a big problem for the script (because
91+
the script exists anyway) but causes problems for the tests.
92+
93+
2017-12-18 Arthur de Jong <arthur@arthurdejong.org>
94+
95+
* [052f5bc] docs/policy.rst, pskc/parser.py,
96+
pskc/policy.py, pskc/serialiser.py, tests/test_misc.doctest,
97+
tests/test_write.doctest: Fix typo in pin_max_failed_attempts
98+
attribute
99+
100+
This makes the old name (pin_max_failed_attemtps) available as
101+
a deprecated property.
102+
103+
2017-12-15 Arthur de Jong <arthur@arthurdejong.org>
104+
105+
* [6f0ca70] pskc/parser.py,
106+
tests/draft-hoyer-keyprov-portable-symmetric-key-container-00/non-encrypted.pskcxml,
107+
tests/draft-hoyer-keyprov-portable-symmetric-key-container-00/password-encrypted.pskcxml,
108+
tests/draft-hoyer-keyprov-portable-symmetric-key-container-01/non-encrypted.pskcxml,
109+
tests/draft-hoyer-keyprov-portable-symmetric-key-container-01/password-encrypted.pskcxml,
110+
tests/test_draft_hoyer_keyprov_portable_symmetric_key_container.doctest:
111+
Add limited support for very old draft PSKC versions
112+
113+
This adds basic support for parsing the PSKC files as specified
114+
in draft-hoyer-keyprov-portable-symmetric-key-container-00 and
115+
draft-hoyer-keyprov-portable-symmetric-key-container-01.
116+
117+
It should be able to extract secrets, counters, etc. but not
118+
all properties from the PSKC file are supported.
119+
120+
It is speculated that this format resembles the "Verisign PSKC
121+
format" that some applications produce.
122+
123+
2016-09-19 Arthur de Jong <arthur@arthurdejong.org>
124+
125+
* [9b85634] tests/multiotp/pskc-hotp-aes.txt,
126+
tests/multiotp/pskc-hotp-pbe.txt, tests/multiotp/pskc-totp-aes.txt,
127+
tests/multiotp/pskc-totp-pbe.txt,
128+
tests/multiotp/tokens_hotp_aes.pskc,
129+
tests/multiotp/tokens_hotp_pbe.pskc,
130+
tests/multiotp/tokens_ocra_aes.pskc,
131+
tests/multiotp/tokens_ocra_pbe.pskc,
132+
tests/multiotp/tokens_totp_aes.pskc,
133+
tests/multiotp/tokens_totp_pbe.pskc, tests/test_multiotp.doctest:
134+
Add test files from multiOTP
135+
136+
This adds tests for parsing the files that are shipped as part
137+
of the multiOTP test suite.
138+
139+
https://www.multiotp.net/
140+
141+
2017-12-15 Arthur de Jong <arthur@arthurdejong.org>
142+
143+
* [01507af] pskc/key.py, pskc/parser.py, pskc/serialiser.py,
144+
tests/misc/partialxml.pskcxml, tests/test_misc.doctest,
145+
tests/test_write.doctest: Refactor internal storate of encrypted
146+
values
147+
148+
This changes the way encrypted values are stored internally before
149+
being decrypted. For example, the internal _secret property can now
150+
be a decrypted plain value or an EncryptedValue instance instead
151+
of always being a DataType, simplifying some things (e.g. all
152+
XML encoding/decoding is now done in the corresponding module).
153+
154+
This should not change the public API but does have consequences
155+
for those who use custom serialisers or parsers.
156+
157+
2017-12-13 Arthur de Jong <arthur@arthurdejong.org>
158+
159+
* [dcf1919] pskc/crypto/aeskw.py, pskc/encryption.py,
160+
tests/encryption/kw-camellia128.pskcxml,
161+
tests/encryption/kw-camellia192.pskcxml,
162+
tests/encryption/kw-camellia256.pskcxml,
163+
tests/test_encryption.doctest: Add support for KW-Camellia suite
164+
of algorithms
165+
166+
2017-12-13 Arthur de Jong <arthur@arthurdejong.org>
167+
168+
* [364e93d] pskc/encryption.py,
169+
tests/encryption/camellia128-cbc.pskcxml,
170+
tests/encryption/camellia192-cbc.pskcxml,
171+
tests/encryption/camellia256-cbc.pskcxml,
172+
tests/test_encryption.doctest: Add support for Camellia-CBC
173+
suite of algorithms
174+
175+
2017-10-11 Arthur de Jong <arthur@arthurdejong.org>
176+
177+
* [4c5e046] docs/conf.py, docs/pskc2csv.rst, setup.cfg: Add a
178+
manual page for pskc2csv
179+
180+
2017-10-09 Arthur de Jong <arthur@arthurdejong.org>
181+
182+
* [25cb2fc] setup.cfg: Ignore missing docstring in __init__ in flake
183+
184+
2017-09-30 Arthur de Jong <arthur@arthurdejong.org>
185+
186+
* [225e569] pskc/crypto/__init__.py, pskc/crypto/aeskw.py,
187+
pskc/crypto/tripledeskw.py, pskc/encryption.py,
188+
pskc/mac.py, setup.cfg, setup.py, tests/test_crypto.doctest,
189+
tests/test_encryption.doctest, tox.ini: Replace pycrypto with
190+
cryptography
191+
192+
The cryptography library is better supported.
193+
194+
This uses the functions from cryptography for AES and Triple
195+
DES encryption, replaces the (un)padding functions that were
196+
previously implemented in python-pskc with cryptography and uses
197+
PBKDF2 implementation from hashlib.
198+
199+
2017-09-30 Arthur de Jong <arthur@arthurdejong.org>
200+
201+
* [5dff7d4] pskc/encryption.py: Use PBKDF2 from hashlib
202+
203+
This uses pbkdf2_hmac() from hashlib for the PBKDF2 calculation.
204+
The downside of this is that this function is only available
205+
since Python 2.7.8.
206+
207+
2017-09-30 Arthur de Jong <arthur@arthurdejong.org>
208+
209+
* [2c8a9b7] pskc/crypto/aeskw.py, pskc/crypto/tripledeskw.py,
210+
pskc/encryption.py, pskc/mac.py, tests/test_aeskw.doctest,
211+
tests/test_write.doctest: Replace use of pycrypto utility functions
212+
213+
This uses os.urandom() as a source for random data and replaces
214+
other utility functions. This also removes one import for getting
215+
the lengths of Tripple DES keys.
216+
217+
2017-09-24 Arthur de Jong <arthur@arthurdejong.org>
218+
219+
* [d0eddf8] pskc/serialiser.py, pskc/xml.py,
220+
tests/test_write.doctest: Implement our own XML formatting
221+
222+
This avoids a using xml.dom.minidom to indent the XML tree and
223+
keep the attributes ordered alphabetically. This also allows
224+
for customisations to the XML formatting.
225+
226+
2017-09-24 Arthur de Jong <arthur@arthurdejong.org>
227+
228+
* [4ed4e11] tests/test_mac.doctest: Support hashlib from Python 2.7.3
229+
230+
Some Python versions don't have the algorithms_available property
231+
but do have the algorithms property in hashlib.
232+
233+
2017-09-24 Arthur de Jong <arthur@arthurdejong.org>
234+
235+
* [b90faeb] pskc/xml.py, setup.py, tox.ini: Use defusedxml if
236+
available
237+
238+
This uses the defusedxml library if available to defend agains
239+
a number of XML-based attacks.
240+
241+
2017-09-23 Arthur de Jong <arthur@arthurdejong.org>
242+
243+
* [7272e54] pskc/serialiser.py, tests/test_write.doctest: Fix bug
244+
in saving PBKDF2 salt on Python3
245+
246+
The PBKDF2 salt was saved in the wrong way (b'base64encodeddata'
247+
instead of base64encodeddata) when using Python 3. This fixes
248+
that problem and tests that saving and loading of a file that
249+
uses PBKDF2 key derivation works.
250+
251+
2017-09-23 Arthur de Jong <arthur@arthurdejong.org>
252+
253+
* [cd33833] pskc2csv.py, setup.cfg, tests/test_pskc2csv.doctest:
254+
Add tests for the pskc2csv script
255+
256+
This makes minor changes to the pskc2csv script to make it more
257+
easily testable.
258+
259+
2017-09-22 Arthur de Jong <arthur@arthurdejong.org>
260+
261+
* [6028b8e] pskc2csv.py: Support adding custom CSV file headers
262+
263+
This allows adding an optional label to the --columns option that
264+
can be used to output a label different from the key property
265+
name in the CSV file header.
266+
267+
2017-09-20 Arthur de Jong <arthur@arthurdejong.org>
268+
269+
* [eef681b] pskc2csv.py: Add --secret-encoding option to pskc2csv
270+
271+
This option can be used to configure the encoding of the secret
272+
in the CSV file (still hex by default).
273+
274+
2017-09-20 Arthur de Jong <arthur@arthurdejong.org>
275+
276+
* [6f78dd6] pskc/__init__.py, pskc/crypto/aeskw.py,
277+
pskc/crypto/tripledeskw.py, pskc/exceptions.py, pskc/mac.py,
278+
pskc/parser.py, pskc/policy.py, pskc/serialiser.py, setup.cfg,
279+
tox.ini: Run flake8 from tox
280+
281+
This also makes a few small code formatting changes to ensure
282+
that the flake8 tests pass.
283+
284+
2017-09-11 Arthur de Jong <arthur@arthurdejong.org>
285+
286+
* [cc3acc2] tox.ini: Simplify Tox configuration
287+
288+
2017-06-10 Arthur de Jong <arthur@arthurdejong.org>
289+
290+
* [0c00c80] pskc/__init__.py, pskc/encryption.py, pskc/parser.py,
291+
pskc/serialiser.py, pskc/xml.py, pskc2csv.py: Various minor code
292+
style improvements
293+
294+
2017-06-10 Arthur de Jong <arthur@arthurdejong.org>
295+
296+
* [510e6a5] pskc/encryption.py, pskc/parser.py: Normalise key
297+
derivation algorithms
298+
299+
This makes KeyDerivation.algorithm and KeyDerivation.pbkdf2_prf
300+
properties automatically normalise assigned values.
301+
302+
2017-06-10 Arthur de Jong <arthur@arthurdejong.org>
303+
304+
* [d72e6cc] pskc/xml.py: Switch to using non-deprecated method
305+
306+
This uses ElementTree.iter() instead of ElementTree.getiterator()
307+
for going over all the child elements in the tree because the
308+
latter is deprecated.
309+
310+
2017-06-10 Arthur de Jong <arthur@arthurdejong.org>
311+
312+
* [7b106ff] docs/usage.rst, pskc/key.py, tests/test_yubico.doctest:
313+
Provide Key.userid convenience property
314+
315+
This provides a read-only userid property on Key objects that uses
316+
the key_userid or device_userid value, whichever one is defined.
317+
318+
2017-06-09 Arthur de Jong <arthur@arthurdejong.org>
319+
320+
* [f0d2991] docs/conf.py, docs/encryption.rst, docs/exceptions.rst,
321+
docs/mac.rst: Document supported encryption and MAC algorithms
322+
323+
This also includes a few other small documentation improvements.
324+
325+
2017-06-09 Arthur de Jong <arthur@arthurdejong.org>
326+
327+
* [8b8848d] pskc/encryption.py, pskc/mac.py,
328+
tests/test_invalid.doctest, tests/test_mac.doctest: Refactor
329+
MAC lookups
330+
331+
This switches to using the hashlib.new() function to be able to use
332+
all hashes that are available in Python (specifically RIPEMD160).
333+
334+
This also adds a number of tests for HMACs using test vectors
335+
from RFC 2202, RFC 4231 and RFC 2857.
336+
337+
2017-06-09 Arthur de Jong <arthur@arthurdejong.org>
338+
339+
* [e10f9c6] pskc/algorithms.py: Handle more algortihm URIs
340+
341+
This adds a number of algorithm URIs defined in RFC 6931 and also
342+
simplifies the definition of the list of URIs. It also adds more
343+
aliases for algorithms.
344+
345+
2017-01-25 Arthur de Jong <arthur@arthurdejong.org>
346+
347+
* [1fc1a03] README, docs/usage.rst, setup.py: Switch URLs to HTTPS
348+
349+
2017-01-21 Arthur de Jong <arthur@arthurdejong.org>
350+
351+
* [8de25c2] tests/actividentity/test.pskcxml,
352+
tests/test_actividentity.doctest: Correct name of ActivIdentity
353+
test file
354+
355+
2017-01-21 Arthur de Jong <arthur@arthurdejong.org>
356+
357+
* [5889df7] ChangeLog, NEWS, README, docs/conf.py, pskc/__init__.py,
358+
pskc2csv.py, setup.py: Get files ready for 0.5 release
359+
1360
2017-01-15 Arthur de Jong <arthur@arthurdejong.org>
2361

3362
* [29a183d] tests/test_feitian.doctest, tests/test_nagraid.doctest:

MANIFEST.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
include README NEWS ChangeLog COPYING *.py
2-
recursive-include tests *.doctest *.py *.pskcxml *.xml
1+
include README NEWS ChangeLog COPYING tox.ini *.py
2+
recursive-include tests *.doctest *.py *.pskcxml *.xml *.pem *.txt *.pskc README
33
recursive-include docs *.rst *.py

NEWS

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,28 @@
1+
changes from 0.5 to 1.0
2+
-----------------------
3+
4+
* fix a bug in writing passphrase encrypted PSKC files on Python3
5+
* fix a typo in the pin_max_failed_attempts attribute (the old name is
6+
available as a deprecated property)
7+
* switch from pycrypto to cryptography as provider for encryption functions
8+
because the latter is better supported
9+
* switch to using the PBKDF2 implementation from hashlib which requires
10+
Python 2.7.8 or newer
11+
* use defusedxml when available (python-pskc now supports both standard
12+
xml.etree and lxml with and without defusedxml)
13+
* support checking and generating embedded XML signatures (this requires the
14+
signxml library which is not required for any other operations)
15+
* add limited support for very old draft PSKC versions (it is speculated that
16+
this resembles the "Verisign PSKC format" that some applications produce)
17+
* support Camellia-CBC and KW-Camellia encryption algorithms
18+
* support any hashing algorithm available in Python
19+
* add a --secret-encoding option to pskc2csv to allow base64 encoded binary
20+
output
21+
* support naming the CSV column headers in pskc2csv
22+
* add a manual page for pskc2csv
23+
* a number of documentation, code style and test suite improvements
24+
25+
126
changes from 0.4 to 0.5
227
-----------------------
328

0 commit comments

Comments
 (0)