-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathChangeLog
More file actions
2315 lines (1497 loc) · 79.3 KB
/
ChangeLog
File metadata and controls
2315 lines (1497 loc) · 79.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2025-12-30 Arthur de Jong <arthur@arthurdejong.org>
* [c4911d6] .github/workflows/test.yml, setup.py, tox.ini: Add
support for Python 3.14
2025-12-24 Arthur de Jong <arthur@arthurdejong.org>
* [f10acff] docs/encryption.rst, docs/exceptions.rst, docs/mac.rst,
docs/policy.rst, docs/signatures.rst, docs/usage.rst,
pskc/__init__.py, pskc/device.py, pskc/encryption.py,
pskc/exceptions.py, pskc/key.py, pskc/mac.py, pskc/policy.py,
pskc/signature.py, tox.ini: Include type information in
documentation
This also includes a few other cleanups moving some documentation
to docstrings.
2025-12-24 Arthur de Jong <arthur@arthurdejong.org>
* [02c35e7] .github/workflows/test.yml, pskc/__init__.py,
pskc/algorithms.py, pskc/crypto/__init__.py, pskc/crypto/aeskw.py,
pskc/crypto/tripledeskw.py, pskc/device.py, pskc/encryption.py,
pskc/exceptions.py, pskc/key.py, pskc/mac.py, pskc/parser.py,
pskc/policy.py, pskc/py.typed, pskc/scripts/__init__.py,
pskc/scripts/csv2pskc.py, pskc/scripts/pskc2csv.py,
pskc/scripts/pskc2pskc.py, pskc/scripts/util.py,
pskc/serialiser.py, pskc/signature.py, pskc/xml.py, setup.cfg,
setup.py, tests/test_write.doctest, tox.ini: Introduce type hints
This ensures that the module includes type hints for everything
and also runs mypy from tox.
This minimises the number of functional changes but a few
functions go from using `kwargs` to explicity named argumnets.
2025-12-25 Arthur de Jong <arthur@arthurdejong.org>
* [b6b593c] tests/test_misc.doctest, tests/test_write.doctest:
Fix the tests to set the serial on the device
The serial is a property of the device, not the key.
2025-12-22 Arthur de Jong <arthur@arthurdejong.org>
* [6cec258] pskc/encryption.py, tests/test_misc.doctest: Allow
emptying key list by asigning empty key name
2025-12-22 Arthur de Jong <arthur@arthurdejong.org>
* [4e19e9c] pskc/parser.py, tests/test_signature.doctest: Change
PSKC.signature.certificate from bytes to str
This better matches the types used by the signxml module.
2025-12-17 Arthur de Jong <arthur@arthurdejong.org>
* [df5f2c3] .github/workflows/test.yml: Run flake8 with Python 3.13
Python version 3.14 no longer works.
2025-04-21 Arthur de Jong <arthur@arthurdejong.org>
* [91610fa] .github/workflows/test.yml, setup.py, tox.ini: Add
support for Python 3.13
2025-04-21 Arthur de Jong <arthur@arthurdejong.org>
* [056f5ab] .github/workflows/test.yml, setup.py, tox.ini: Drop
support for Python 3.6 and 3.7
Sadly GitHub has dropped the ability to run tests with these
versions of Python.
2025-02-06 Arthur de Jong <arthur@arthurdejong.org>
* [cfaae11] pskc/policy.py, tests/test_rfc6030.doctest,
tests/test_write.doctest: Spelling fixes (thanks codespell)
2025-01-01 Arthur de Jong <arthur@arthurdejong.org>
* [ab5bea9] .github/workflows/test.yml, tox.ini: Stop running
lxml-defusedxml combination tests
Fixes 2c50b12
2024-09-08 Arthur de Jong <arthur@arthurdejong.org>
* [2c50b12] pskc/xml.py, tox.ini: No longer use defusedxml with lxml
The lxml parser uses libxml2 which guards against the
vulnerabilities defusedxml protects against when using libxml2
2.6 (released 2008) or newer. The lxml support in defusedxml
has been deprecated since release 0.6.0 and is planned to be
removed in 0.8.0.
See
https://github.com/tiran/defusedxml/commit/d1260ab35e53dbb16417f4f6736ab2981f13ddab
See https://github.com/tiran/defusedxml/issues/38
2025-01-01 Arthur de Jong <arthur@arthurdejong.org>
* [78a25b3] .github/workflows/test.yml: Test with PyPy 3.10 to
replace PyPy 3.8
This is needed because the cryptography library has dropped
support for PyPy versions older than 3.9.
2024-09-08 Arthur de Jong <arthur@arthurdejong.org>
* [f5872f9] ChangeLog, NEWS, README, docs/conf.py, pskc/__init__.py:
Get files ready for 1.3 release
2024-09-08 Arthur de Jong <arthur@arthurdejong.org>
* [d790ba4] tests/test_misc.doctest: Remove tests reliance on
current time
This ensures that the tests that compare the current time to
expiry times should either set an explicity current time or use
values relative to the current time.
2024-09-08 Arthur de Jong <arthur@arthurdejong.org>
* [c002d92] setup.cfg, tests/test_write.doctest, tox.ini: Have
tests fail on missing coverage
This also only prints missed coverage on the terminal after
the tests.
Fixes 1d6e115 (removed requirement) and e99f7c8 (reduced coverage
below 100%)
2024-09-08 Arthur de Jong <arthur@arthurdejong.org>
* [c3f744d] tox.ini: Stop testing pypy (not 3)
2024-08-27 Arthur de Jong <arthur@arthurdejong.org>
* [ea5db6b] pskc/scripts/csv2pskc.py,
tests/certificate/README, tests/certificate/ca-certificate.pem,
tests/certificate/ca-key.pem, tests/certificate/certificate.pem,
tests/certificate/key.pem, tests/certificate/request.pem,
tests/certificate/ss-certificate.pem, tox.ini: Replace test
certificates
The cryptography library now requires certificates to be in X509v3
format and also requires certain X509v3 extensions to be present.
2024-07-17 Arthur de Jong <arthur@arthurdejong.org>
* [e99f7c8] .github/workflows/test.yml, pskc/crypto/aeskw.py,
pskc/encryption.py, pskc/key.py, pskc/serialiser.py, setup.py,
tox.ini: Drop Python 2 support
It is getting more and more annoying to support Python 2 due to
difficulty in testing.
2024-05-19 Arthur de Jong <arthur@arthurdejong.org>
* [5cbd43f] .github/workflows/test.yml, setup.py, tox.ini: Drop
support for Python 3.5
We don't have an easy way to test with Python 3.5 any more.
2023-11-12 Arthur de Jong <arthur@arthurdejong.org>
* [4257500] .github/workflows/test.yml, setup.cfg, tox.ini:
Configure testing with codespell
2023-11-12 Arthur de Jong <arthur@arthurdejong.org>
* [348781b] pskc/key.py, tests/test_pskc2csv.doctest: Fix typos
(thanks codespell)
2023-11-12 Arthur de Jong <arthur@arthurdejong.org>
* [8f01efd] .github/workflows/test.yml, setup.py, tox.ini: Add
support for Python 3.12
2023-03-19 Arthur de Jong <arthur@arthurdejong.org>
* [cce7e02] docs/conf.py, setup.cfg, tox.ini: Ensure flake8 is
run on all Python files
This also fixes code style fixes in the Sphinx configuration file.
2023-06-27 Arthur de Jong <arthur@arthurdejong.org>
* [fa32f6b] .github/workflows/test.yml: Run Python 2.7 tests in
a container for GitHub Actions
See https://github.com/actions/setup-python/issues/672
2023-03-19 Arthur de Jong <arthur@arthurdejong.org>
* [b95f075] .github/workflows/test.yml, setup.py, tox.ini: Add
support for Python 3.11
This also simplifies the GitHub actions file a bit and updates
the PyPy versions to test.
2022-12-12 Arthur de Jong <arthur@arthurdejong.org>
* [d4a8f09] .github/workflows/test.yml: Run most GitHub tests on
older Ubuntu
The ubuntu-latest image now points to ubuntu-22.04 instead of
ubuntu-20.04 before and there are some issues regarding that
new image that remain to be worked out.
This also switches the default Python 3 implementation to
Python 3.9.
2022-12-03 Arthur de Jong <arthur@arthurdejong.org>
* [5690a2b] tox.ini: Support running tests with PyPy 2.7
This also applies the fix from bb594fb from Python 2.7 to PyPy.
2022-12-03 Arthur de Jong <arthur@arthurdejong.org>
* [acc6d78] pskc/signature.py: Support newer versions of signxml
Version 3.0.0 of signxml dropped the default_c14n_algorithm
property from XMLSignatureProcessor.
2022-12-03 Arthur de Jong <arthur@arthurdejong.org>
* [99422c0] tox.ini: Avoid newer flake8
The new 6.0.0 contains a number of backwards incompatible changes
for which plugins need to be updated and configuration needs to
be updated.
Sadly the maintainer no longer accepts contributions or discussion
See https://github.com/PyCQA/flake8/issues/1760
2022-09-12 Arthur de Jong <arthur@arthurdejong.org>
* [f2f0fb5] ChangeLog, NEWS, README, pskc/__init__.py: Get files
ready for 1.2 release
2022-09-12 Arthur de Jong <arthur@arthurdejong.org>
* [e95767e] .github/workflows/test.yml: Configure CodeQL code
scanning
2022-09-12 Arthur de Jong <arthur@arthurdejong.org>
* [8114316] .github/workflows/test.yml, setup.py, tox.ini: Add
support for Python 3.10
2022-09-12 Arthur de Jong <arthur@arthurdejong.org>
* [7c6dfd8] .github/workflows/test.yml: Upgrade GitHub Actions
Update checkout to v3 (no relevant changes) and setup-python to v4
(changes the names for pypy versions).
2022-09-12 Arthur de Jong <arthur@arthurdejong.org>
* [1d6e115] setup.cfg, tox.ini: Switch from nose to pytest
Nose hasn't seen a release since 2015 and sadly doesn't work
with Python 3.10.
See https://github.com/nose-devs/nose/issues/1099
2022-09-11 Arthur de Jong <arthur@arthurdejong.org>
* [bb594fb] tox.ini: Support running tests with Python 2.7
When using recent versions of virtualenv this ensures that
older versions of pip and setuptools will be used inside the
virtualenvs that are created by tox.
2022-09-11 Arthur de Jong <arthur@arthurdejong.org>
* [630012d] csv2pskc.py, pskc2csv.py, pskc2pskc.py, setup.cfg,
setup.py, tox.ini: Also run flake8 on toplevel scripts
2022-09-11 Arthur de Jong <arthur@arthurdejong.org>
* [c0733a4] tox.ini: Avoid version of signxml that doesn't work
on Python <= 3.5
2022-01-30 Arthur de Jong <arthur@arthurdejong.org>
* [b9e17d3] pskc/key.py, tests/test_write.doctest: Support bytearray
for key values
Related to https://github.com/arthurdejong/python-pskc/issues/5
2022-01-30 Arthur de Jong <arthur@arthurdejong.org>
* [b543f2a] setup.py, tox.ini: Add support for Python 3.8 and 3.9
2021-08-10 Arthur de Jong <arthur@arthurdejong.org>
* [5c02ecf] pskc/algorithms.py, pskc/key.py,
tests/invalid/mac-algorithm.pskcxml, tests/misc/policy.pskcxml:
Fix typos found by codespell
2021-07-09 Arthur de Jong <arthur@arthurdejong.org>
* [dce78b0] .github/workflows/test.yml, .travis.yml: Replace Travis
with GitHub actions
2021-01-13 Arthur de Jong <arthur@arthurdejong.org>
* [39eaa71] setup.cfg: Ignore flake8 blind except Exception warning
2020-11-07 Arthur de Jong <arthur@arthurdejong.org>
* [0c035f2] .travis.yml: Drop Travis testing for pypy2
Recent distributions no longer carry the older pypy2. This also
updates to the config to use bionic instead of xenial.
2020-01-05 Arthur de Jong <arthur@arthurdejong.org>
* [1790ed9] tests/test_signature.doctest: Remove test for PSKC
file without certificate
Remove this test for now because signxml cannor currently validate
this certificate in a backwards compatible way.
See https://github.com/XML-Security/signxml/issues/143
2020-01-05 Arthur de Jong <arthur@arthurdejong.org>
* [54b3bb3] .travis.yml: Have Travis fail on missing Python
interpreter
2020-01-05 Arthur de Jong <arthur@arthurdejong.org>
* [288a5e6] pskc/xml.py: Support reading from stdin if input is -
This is needed for some XML parsing implementations.
2020-01-05 Arthur de Jong <arthur@arthurdejong.org>
* [96e2a8e] docs/pskc2pskc.rst, pskc/key.py: Be consistent in
referencing RFC 6030
2019-08-27 Arthur de Jong <arthur@arthurdejong.org>
* [95f65ff] docs/csv2pskc.rst, docs/pskc2pskc.rst,
docs/signatures.rst: Fix typos
2019-08-16 Arthur de Jong <arthur@arthurdejong.org>
* [543520a] tox.ini: Add pypy3 tests to tox
2019-08-16 Arthur de Jong <arthur@arthurdejong.org>
* [09979e3] .travis.yml, setup.py, tox.ini: Drop explicit support
for Python 3.4
Recent versions of lxml (since 4.4) no longer support Python
3.4 so we no longer run tests for that version of Python.
2019-08-12 Arthur de Jong <arthur@arthurdejong.org>
* [fca4ee1] .travis.yml: Use default dist for Python 3.7 build
Travis now defaults to using xenial.
2019-08-12 Arthur de Jong <arthur@arthurdejong.org>
* [9acc216] pskc/xml.py: Force sorting of namespace definitions
This ensures that namespace declarations in the generated XML
files are ordered alphabetically when using lxml (mostly so our
tests are reproducible).
2019-08-12 Arthur de Jong <arthur@arthurdejong.org>
* [ddf3ab1] tox.ini: Drop pinning of pydocstyle now flake8-docstrings
has been fixed
Reverts e5ec0a1
2019-07-21 Arthur de Jong <arthur@arthurdejong.org>
* [86dccc4] tox.ini: Do not require Python 2 for building Sphinx docs
This results in tox using Python 3, mostly to work around
https://sourceforge.net/p/docutils/bugs/365/
2019-07-21 Arthur de Jong <arthur@arthurdejong.org>
* [e5ec0a1] tox.ini: Avoid newer pydocstyle
Do not install the latest pydocstyle because it currently breaks
flake8-docstring. This pinning should be removed as soon as
https://gitlab.com/pycqa/flake8-docstrings/issues/36 is resolved.
2019-02-10 Arthur de Jong <arthur@arthurdejong.org>
* [619ad62] ChangeLog, NEWS, README, docs/conf.py, pskc/__init__.py:
Get files ready for 1.1 release
2019-02-10 Arthur de Jong <arthur@arthurdejong.org>
* [21323a0] .travis.yml, setup.py: Add Python 3.7 in Travis and
reduce build matrix
This runs the signxml flavour on all Python versions and only
runs all other flavours on Python 2.6 and 3.6.
2019-02-10 Arthur de Jong <arthur@arthurdejong.org>
* [c2abbec] setup.cfg: Make the multi-line operator place explicit
Recent versions of flake8 changed the defaults of the errors
to ignore.
2018-07-30 Arthur de Jong <arthur@arthurdejong.org>
* [5e93d32] pskc/crypto/aeskw.py: Ignore more flake8 messages
2018-05-21 Arthur de Jong <arthur@arthurdejong.org>
* [f4b2559] docs/index.rst, docs/scripts.rst: Add links to script
documentation
2018-04-21 Arthur de Jong <arthur@arthurdejong.org>
* [610f7cd] : Implement csv2pcks script
2018-04-19 Arthur de Jong <arthur@arthurdejong.org>
* [7bbaac3] docs/csv2pskc.rst, pskc/scripts/csv2pskc.py,
tests/test_csv2pskc.doctest: Add --skip-columns option
This option can be used to skip a number of rows in the CSV file
before the key data is read. If the number of rows to skip is 0,
the column interpretation should be provided using the --columns
option.
2018-04-05 Arthur de Jong <arthur@arthurdejong.org>
* [88002fc] docs/csv2pskc.rst, pskc/scripts/csv2pskc.py,
tests/test_csv2pskc.doctest: Add --set option
This option can be used to set key properties for all keys in
the PSKC file.
2018-04-05 Arthur de Jong <arthur@arthurdejong.org>
* [e91e498] docs/csv2pskc.rst, pskc/scripts/csv2pskc.py,
tests/test_csv2pskc.doctest: Add --columns option
This option can be used to override the list of columns as found
in the first line of the CSV file or provide a mapping for values
found in the first line to PSKC properties.
2018-03-31 Arthur de Jong <arthur@arthurdejong.org>
* [c652eee] csv2pskc.py, docs/conf.py, docs/csv2pskc.rst,
pskc/scripts/csv2pskc.py, setup.py, tests/test_csv2pskc.doctest:
Add a csv2pskc script for CSV to PSKC conversion
This script reads a CSV file and writes out a PSKC file with the
key information from the CSV file. The CSV file is expected to
have one row for each key and key property values in columns.
2018-04-02 Arthur de Jong <arthur@arthurdejong.org>
* [ce96e69] pskc/scripts/__init__.py, pskc/scripts/pskc2csv.py,
pskc/scripts/pskc2pskc.py, pskc/scripts/util.py, pskc2csv.py,
pskc2pskc.py, setup.cfg, setup.py, tests/test_pskc2csv.doctest,
tests/test_pskc2pskc.doctest, tox.ini: Ship the script as part
of the pskc package
This also installs pskc2csv and pskc2pskc console script entry
points as part of the package installation.
2018-03-03 Arthur de Jong <arthur@arthurdejong.org>
* [7a56eac] pskc/__init__.py, pskc/device.py,
tests/test_misc.doctest: Support setting key sub-properties
via add_key()
2018-03-11 Arthur de Jong <arthur@arthurdejong.org>
* [e6f2dd4] pskc/encryption.py, tests/test_encryption.doctest,
tests/test_pskc2pskc.doctest, tests/test_write.doctest: Increase
default PBKDF2 iterations to 100000
2018-02-21 Arthur de Jong <arthur@arthurdejong.org>
* [9026e1c] setup.cfg: Support building a universal wheel
2018-02-15 Arthur de Jong <arthur@arthurdejong.org>
* [b3e7fe7] pskc/__init__.py, pskc/crypto/aeskw.py,
pskc/device.py, pskc/encryption.py, pskc/key.py, pskc/parser.py,
pskc/serialiser.py, pskc/signature.py, setup.cfg: Add and
cleanup docstrings
This adds docstrings to public methods and cleans up a few other
docstrings to pass most flake8 docstring related tests.
This also adds noqa statements in a few places so we can remove
most entries from the global flake8 ignore list.
2018-02-10 Arthur de Jong <arthur@arthurdejong.org>
* [03ee35d] docs/conf.py, docs/pskc2pskc.rst, pskc2pskc.py,
setup.cfg, tests/test_pskc2pskc.doctest: Add a pskc2pskc script
for converting PSKC files
This script reads a PSKC file in any supported format and writes
out a RFC 6030 compliant version of the file, optionally with
the encryption removed or (re-)encrypting the file with a new key.
2018-02-08 Arthur de Jong <arthur@arthurdejong.org>
* [924e1f3] pskc/serialiser.py, tests/test_write.doctest: Correctly
write a PSKC file without a MAC key
In some cases a PSKC file can be written with a MAC algorithm
but without a MAC key. This is possible when the MAC key is not
supplied (allowed in older PSKC versions) and a fallback to the
encryption key is done. If we have not yet decrypted the file
the MAC key is not yet available and so can't be included in
the written file.
2018-02-04 Arthur de Jong <arthur@arthurdejong.org>
* [be2b49f] pskc/encryption.py, pskc/serialiser.py,
tests/test_write.doctest: Correctly write a PSKC file with a
global IV
This ensures that the encryption IV, which should be per encrypted
value is written out per encrypted value instead of globally. This
is mostly useful for when reading an old format PSKC file and
writing out a RFC 6030 compliant one.
2018-02-07 Arthur de Jong <arthur@arthurdejong.org>
* [e60d7f3] pskc/mac.py, pskc/parser.py, pskc/serialiser.py:
Also use EncryptedValue for MAC key
This ensures that an encrypted MAC key is hanled in the same
way as normal encrypted data values.
This also ensures consistent fallback to the globally
configured encryption algorithm if no value has been set in
the EncryptedValue.
2018-01-31 Arthur de Jong <arthur@arthurdejong.org>
* [8054c6e] pskc/serialiser.py: Always output a PSKC 1.0 format file
This ignores the value of the version attribute in the PSKC
object and always writes a PSKC 1.0 (RFC 6030) format file.
2018-01-31 Arthur de Jong <arthur@arthurdejong.org>
* [97faa13] docs/encryption.rst, pskc/encryption.py,
tests/test_encryption.doctest, tests/test_write.doctest: Implement
removing encryption
This adds a function to decrypt all values and remove the
encryption of an encrypted PSKC file.
2018-02-08 Arthur de Jong <arthur@arthurdejong.org>
* [2698657] .travis.yml: Add a Travis configuration file
2018-02-04 Arthur de Jong <arthur@arthurdejong.org>
* [82fa3bd] pskc/encryption.py, pskc/serialiser.py, pskc2csv.py:
Fix code style issues
Fixes 1ff3237f, 84bfb8a6 and 20bf9c5
2017-12-29 Arthur de Jong <arthur@arthurdejong.org>
* [2693495] tests/test_misc.doctest, tests/test_pskc2csv.doctest,
tox.ini: Fixes to test suite
This ensures that the tests also work without a TTY and work
regardless of the PYTHONWARNINGS and TZ environment variables
Fixes cd33833
2017-12-29 Arthur de Jong <arthur@arthurdejong.org>
* [fe63c42] ChangeLog, MANIFEST.in, NEWS, pskc/__init__.py,
setup.py: Get files ready for 1.0 release
2017-12-29 Arthur de Jong <arthur@arthurdejong.org>
* [2651e80] tests/test_write.doctest: Not all XML serialisers
write namespaces in same order
This ignores the namespace declarations in the generated XML
files because not all implementations on all environments write
these in the same order.
2017-12-29 Arthur de Jong <arthur@arthurdejong.org>
* [44b1353] docs/conf.py, setup.cfg, tox.ini: Add Sphinx
documentation checks
This also slightly tunes the way Sphinx documentation is built.
2017-12-15 Arthur de Jong <arthur@arthurdejong.org>
* [42be53b] pskc2csv.py, tox.ini: Add support for PyPy
2017-12-15 Arthur de Jong <arthur@arthurdejong.org>
* [660ed65] setup.py, tox.ini: Add support for Python 3.7
2017-12-15 Arthur de Jong <arthur@arthurdejong.org>
* [9cd97c9] README, setup.py: Use README as package long description
2017-12-15 Arthur de Jong <arthur@arthurdejong.org>
* [20bf9c5] docs/encryption.rst, pskc/encryption.py, pskc2csv.py,
tests/test_rfc6030.doctest: Add an is_encrypted property
This property can be use to see whether the PSKC file needs an
additional pre-shared key or passphrase to decrypt any stored
information.
2017-12-27 Arthur de Jong <arthur@arthurdejong.org>
* [c365a70] : Implement XML signature checking
2017-12-17 Arthur de Jong <arthur@arthurdejong.org>
* [418f3dc] docs/encryption.rst, docs/index.rst, docs/mac.rst,
docs/signatures.rst, docs/usage.rst: Add documentation for signed
PSKC files
2017-12-23 Arthur de Jong <arthur@arthurdejong.org>
* [a97ac46] pskc/parser.py, pskc/serialiser.py,
pskc/signature.py, pskc/xml.py, setup.py,
tests/certificate/README, tests/certificate/ca-certificate.pem,
tests/certificate/ca-key.pem, tests/certificate/certificate.pem,
tests/certificate/key.pem, tests/certificate/request.pem,
tests/certificate/ss-certificate.pem,
tests/rfc6030/figure9.pskcxml,
tests/test_draft_ietf_keyprov_pskc_02.doctest,
tests/test_rfc6030.doctest, tests/test_signature.doctest, tox.ini:
Implement signature checking
This adds support for creating and verifying embedded XML
signatures in PSKC files. This uses the third-party signxml
library for actual signing and verification.
The signxml library has a dependency on lxml and defusedxml
(and a few others) but all parts of python-pskc still work
correctly with our without lxml and/or defusedxml and signxml
is only required when working with embedded signatures.
This modifies the tox configuration to skip the signature
checks if singxml is not installed and to only require 100%
code coverage if the signature tests are done.
2017-12-15 Arthur de Jong <arthur@arthurdejong.org>
* [c0bd21f] pskc/xml.py: Move namespace moving to own function
2017-09-22 Arthur de Jong <arthur@arthurdejong.org>
* [ea503d6] pskc/__init__.py, pskc/parser.py, pskc/signature.py,
tests/test_draft_ietf_keyprov_pskc_02.doctest,
tests/test_rfc6030.doctest: Implement basic parsing of signature
properties
2017-12-23 Arthur de Jong <arthur@arthurdejong.org>
* [fcc6cdb] pskc2csv.py: Explicitly close output file in pskc2csv
This ensures that the file descriptor is closed if we opened
the file. This is not a big problem for the script (because
the script exists anyway) but causes problems for the tests.
2017-12-18 Arthur de Jong <arthur@arthurdejong.org>
* [052f5bc] docs/policy.rst, pskc/parser.py,
pskc/policy.py, pskc/serialiser.py, tests/test_misc.doctest,
tests/test_write.doctest: Fix typo in pin_max_failed_attempts
attribute
This makes the old name (pin_max_failed_attemtps) available as
a deprecated property.
2017-12-15 Arthur de Jong <arthur@arthurdejong.org>
* [6f0ca70] pskc/parser.py,
tests/draft-hoyer-keyprov-portable-symmetric-key-container-00/non-encrypted.pskcxml,
tests/draft-hoyer-keyprov-portable-symmetric-key-container-00/password-encrypted.pskcxml,
tests/draft-hoyer-keyprov-portable-symmetric-key-container-01/non-encrypted.pskcxml,
tests/draft-hoyer-keyprov-portable-symmetric-key-container-01/password-encrypted.pskcxml,
tests/test_draft_hoyer_keyprov_portable_symmetric_key_container.doctest:
Add limited support for very old draft PSKC versions
This adds basic support for parsing the PSKC files as specified
in draft-hoyer-keyprov-portable-symmetric-key-container-00 and
draft-hoyer-keyprov-portable-symmetric-key-container-01.
It should be able to extract secrets, counters, etc. but not
all properties from the PSKC file are supported.
It is speculated that this format resembles the "Verisign PSKC
format" that some applications produce.
2016-09-19 Arthur de Jong <arthur@arthurdejong.org>
* [9b85634] tests/multiotp/pskc-hotp-aes.txt,
tests/multiotp/pskc-hotp-pbe.txt, tests/multiotp/pskc-totp-aes.txt,
tests/multiotp/pskc-totp-pbe.txt,
tests/multiotp/tokens_hotp_aes.pskc,
tests/multiotp/tokens_hotp_pbe.pskc,
tests/multiotp/tokens_ocra_aes.pskc,
tests/multiotp/tokens_ocra_pbe.pskc,
tests/multiotp/tokens_totp_aes.pskc,
tests/multiotp/tokens_totp_pbe.pskc, tests/test_multiotp.doctest:
Add test files from multiOTP
This adds tests for parsing the files that are shipped as part
of the multiOTP test suite.
https://www.multiotp.net/
2017-12-15 Arthur de Jong <arthur@arthurdejong.org>
* [01507af] pskc/key.py, pskc/parser.py, pskc/serialiser.py,
tests/misc/partialxml.pskcxml, tests/test_misc.doctest,
tests/test_write.doctest: Refactor internal storate of encrypted
values
This changes the way encrypted values are stored internally before
being decrypted. For example, the internal _secret property can now
be a decrypted plain value or an EncryptedValue instance instead
of always being a DataType, simplifying some things (e.g. all
XML encoding/decoding is now done in the corresponding module).
This should not change the public API but does have consequences
for those who use custom serialisers or parsers.
2017-12-13 Arthur de Jong <arthur@arthurdejong.org>
* [dcf1919] pskc/crypto/aeskw.py, pskc/encryption.py,
tests/encryption/kw-camellia128.pskcxml,
tests/encryption/kw-camellia192.pskcxml,
tests/encryption/kw-camellia256.pskcxml,
tests/test_encryption.doctest: Add support for KW-Camellia suite
of algorithms
2017-12-13 Arthur de Jong <arthur@arthurdejong.org>
* [364e93d] pskc/encryption.py,
tests/encryption/camellia128-cbc.pskcxml,
tests/encryption/camellia192-cbc.pskcxml,
tests/encryption/camellia256-cbc.pskcxml,
tests/test_encryption.doctest: Add support for Camellia-CBC
suite of algorithms
2017-10-11 Arthur de Jong <arthur@arthurdejong.org>
* [4c5e046] docs/conf.py, docs/pskc2csv.rst, setup.cfg: Add a
manual page for pskc2csv
2017-10-09 Arthur de Jong <arthur@arthurdejong.org>
* [25cb2fc] setup.cfg: Ignore missing docstring in __init__ in flake
2017-09-30 Arthur de Jong <arthur@arthurdejong.org>
* [225e569] pskc/crypto/__init__.py, pskc/crypto/aeskw.py,
pskc/crypto/tripledeskw.py, pskc/encryption.py,
pskc/mac.py, setup.cfg, setup.py, tests/test_crypto.doctest,
tests/test_encryption.doctest, tox.ini: Replace pycrypto with
cryptography
The cryptography library is better supported.
This uses the functions from cryptography for AES and Triple
DES encryption, replaces the (un)padding functions that were
previously implemented in python-pskc with cryptography and uses
PBKDF2 implementation from hashlib.
2017-09-30 Arthur de Jong <arthur@arthurdejong.org>
* [5dff7d4] pskc/encryption.py: Use PBKDF2 from hashlib
This uses pbkdf2_hmac() from hashlib for the PBKDF2 calculation.
The downside of this is that this function is only available
since Python 2.7.8.
2017-09-30 Arthur de Jong <arthur@arthurdejong.org>
* [2c8a9b7] pskc/crypto/aeskw.py, pskc/crypto/tripledeskw.py,
pskc/encryption.py, pskc/mac.py, tests/test_aeskw.doctest,
tests/test_write.doctest: Replace use of pycrypto utility functions
This uses os.urandom() as a source for random data and replaces
other utility functions. This also removes one import for getting
the lengths of Tripple DES keys.
2017-09-24 Arthur de Jong <arthur@arthurdejong.org>
* [d0eddf8] pskc/serialiser.py, pskc/xml.py,
tests/test_write.doctest: Implement our own XML formatting
This avoids a using xml.dom.minidom to indent the XML tree and
keep the attributes ordered alphabetically. This also allows
for customisations to the XML formatting.
2017-09-24 Arthur de Jong <arthur@arthurdejong.org>
* [4ed4e11] tests/test_mac.doctest: Support hashlib from Python 2.7.3
Some Python versions don't have the algorithms_available property
but do have the algorithms property in hashlib.
2017-09-24 Arthur de Jong <arthur@arthurdejong.org>
* [b90faeb] pskc/xml.py, setup.py, tox.ini: Use defusedxml if
available
This uses the defusedxml library if available to defend agains
a number of XML-based attacks.
2017-09-23 Arthur de Jong <arthur@arthurdejong.org>
* [7272e54] pskc/serialiser.py, tests/test_write.doctest: Fix bug
in saving PBKDF2 salt on Python3
The PBKDF2 salt was saved in the wrong way (b'base64encodeddata'
instead of base64encodeddata) when using Python 3. This fixes
that problem and tests that saving and loading of a file that
uses PBKDF2 key derivation works.
2017-09-23 Arthur de Jong <arthur@arthurdejong.org>
* [cd33833] pskc2csv.py, setup.cfg, tests/test_pskc2csv.doctest:
Add tests for the pskc2csv script
This makes minor changes to the pskc2csv script to make it more
easily testable.
2017-09-22 Arthur de Jong <arthur@arthurdejong.org>
* [6028b8e] pskc2csv.py: Support adding custom CSV file headers
This allows adding an optional label to the --columns option that
can be used to output a label different from the key property
name in the CSV file header.
2017-09-20 Arthur de Jong <arthur@arthurdejong.org>
* [eef681b] pskc2csv.py: Add --secret-encoding option to pskc2csv
This option can be used to configure the encoding of the secret
in the CSV file (still hex by default).
2017-09-20 Arthur de Jong <arthur@arthurdejong.org>
* [6f78dd6] pskc/__init__.py, pskc/crypto/aeskw.py,
pskc/crypto/tripledeskw.py, pskc/exceptions.py, pskc/mac.py,
pskc/parser.py, pskc/policy.py, pskc/serialiser.py, setup.cfg,
tox.ini: Run flake8 from tox
This also makes a few small code formatting changes to ensure
that the flake8 tests pass.
2017-09-11 Arthur de Jong <arthur@arthurdejong.org>
* [cc3acc2] tox.ini: Simplify Tox configuration
2017-06-10 Arthur de Jong <arthur@arthurdejong.org>
* [0c00c80] pskc/__init__.py, pskc/encryption.py, pskc/parser.py,
pskc/serialiser.py, pskc/xml.py, pskc2csv.py: Various minor code
style improvements
2017-06-10 Arthur de Jong <arthur@arthurdejong.org>
* [510e6a5] pskc/encryption.py, pskc/parser.py: Normalise key
derivation algorithms
This makes KeyDerivation.algorithm and KeyDerivation.pbkdf2_prf
properties automatically normalise assigned values.
2017-06-10 Arthur de Jong <arthur@arthurdejong.org>
* [d72e6cc] pskc/xml.py: Switch to using non-deprecated method
This uses ElementTree.iter() instead of ElementTree.getiterator()
for going over all the child elements in the tree because the
latter is deprecated.
2017-06-10 Arthur de Jong <arthur@arthurdejong.org>
* [7b106ff] docs/usage.rst, pskc/key.py, tests/test_yubico.doctest:
Provide Key.userid convenience property
This provides a read-only userid property on Key objects that uses
the key_userid or device_userid value, whichever one is defined.
2017-06-09 Arthur de Jong <arthur@arthurdejong.org>
* [f0d2991] docs/conf.py, docs/encryption.rst, docs/exceptions.rst,
docs/mac.rst: Document supported encryption and MAC algorithms
This also includes a few other small documentation improvements.
2017-06-09 Arthur de Jong <arthur@arthurdejong.org>
* [8b8848d] pskc/encryption.py, pskc/mac.py,
tests/test_invalid.doctest, tests/test_mac.doctest: Refactor
MAC lookups
This switches to using the hashlib.new() function to be able to use
all hashes that are available in Python (specifically RIPEMD160).
This also adds a number of tests for HMACs using test vectors
from RFC 2202, RFC 4231 and RFC 2857.
2017-06-09 Arthur de Jong <arthur@arthurdejong.org>
* [e10f9c6] pskc/algorithms.py: Handle more algortihm URIs
This adds a number of algorithm URIs defined in RFC 6931 and also
simplifies the definition of the list of URIs. It also adds more
aliases for algorithms.
2017-01-25 Arthur de Jong <arthur@arthurdejong.org>
* [1fc1a03] README, docs/usage.rst, setup.py: Switch URLs to HTTPS
2017-01-21 Arthur de Jong <arthur@arthurdejong.org>
* [8de25c2] tests/actividentity/test.pskcxml,
tests/test_actividentity.doctest: Correct name of ActivIdentity
test file
2017-01-21 Arthur de Jong <arthur@arthurdejong.org>
* [5889df7] ChangeLog, NEWS, README, docs/conf.py, pskc/__init__.py,
pskc2csv.py, setup.py: Get files ready for 0.5 release
2017-01-15 Arthur de Jong <arthur@arthurdejong.org>
* [29a183d] tests/test_feitian.doctest, tests/test_nagraid.doctest:
Split vendor tests
Have one doctest file per vendor to make tests a little more
manageable.
2017-01-14 Arthur de Jong <arthur@arthurdejong.org>
* [02eb520] tests/test_yubico.doctest, tests/yubico/example1.pskcxml,
tests/yubico/example2.pskcxml, tests/yubico/example3.pskcxml:
Add tests for Yubikey files
This adds tests from draft-josefsson-keyprov-pskc-yubikey-00.
2017-01-13 Arthur de Jong <arthur@arthurdejong.org>
* [12dfa64] pskc/parser.py, tests/actividentity/test.pskc,
tests/test_actividentity.doctest: Support legacy ActivIdentity
files
This adds support for parsing ActivIdentity files that conform
to a very old version of an Internet Draft. The implementation
and test were based on a file provided by Jaap Ruijgrok.
2017-01-11 Arthur de Jong <arthur@arthurdejong.org>
* [a5e2343] pskc/parser.py,
tests/draft-hoyer-keyprov-pskc-algorithm-profiles-01/actividentity-3des.pskcxml,
tests/draft-hoyer-keyprov-pskc-algorithm-profiles-01/ocra.pskcxml,
tests/draft-hoyer-keyprov-pskc-algorithm-profiles-01/securid-aes-counter.pskcxml,
tests/draft-hoyer-keyprov-pskc-algorithm-profiles-01/totp.pskcxml:
Use original examples from old profiles Internet Draft
This updates the tests to use the original examples from
draft-hoyer-keyprov-pskc-algorithm-profiles-01 instead of
modifying them to fit the RFC 6030 schema (but does include some
minor changes to make them valid XML).
This adds a few additions to the parser to handle legacy challenge
and resposne encoding and a few key policy properties.
This also includes a fix for 0b757ec in the handling of the
<ChallengeFormat> element under a <Usage> element.