|
| 1 | +2016-03-26 Arthur de Jong < [email protected]> |
| 2 | + |
| 3 | + * [0c57335] docs/policy.rst: Document may_use() policy function |
| 4 | + |
| 5 | +2016-03-27 Arthur de Jong < [email protected]> |
| 6 | + |
| 7 | + * [b4a6c72] : Implement writing encrypted files |
| 8 | + |
| 9 | + This adds support for setting up encryption keys and password-based |
| 10 | + key derivation when writing PSKC files. Also MAC keys are set |
| 11 | + up when needed. |
| 12 | + |
| 13 | +2016-03-26 Arthur de Jong < [email protected]> |
| 14 | + |
| 15 | + * [59aa65b] README, docs/conf.py, docs/encryption.rst, docs/mac.rst, |
| 16 | + docs/usage.rst, pskc/__init__.py: Document writing encrypted files |
| 17 | + |
| 18 | +2016-03-21 Arthur de Jong < [email protected]> |
| 19 | + |
| 20 | + * [5f32528] tests/test_write.doctest: Add encryption error tests |
| 21 | + |
| 22 | +2016-03-21 Arthur de Jong < [email protected]> |
| 23 | + |
| 24 | + * [7ede4a1] tests/test_write.doctest: Add tests for writing |
| 25 | + encrypted PSKC files |
| 26 | + |
| 27 | +2016-03-20 Arthur de Jong < [email protected]> |
| 28 | + |
| 29 | + * [1ff3237] pskc/encryption.py: Allow configuring a pre-shared key |
| 30 | + |
| 31 | + This method allows configuring a pre-shared encryption key and |
| 32 | + will chose reasonable defaults for needed encryption values |
| 33 | + (e.g. it will choose an algorithm, generate a new key of the |
| 34 | + appropriate length if needed, etc.). |
| 35 | + |
| 36 | +2016-03-19 Arthur de Jong < [email protected]> |
| 37 | + |
| 38 | + * [50414a3] pskc/encryption.py, tests/test_encryption.doctest: |
| 39 | + Allow configuring PBKDF2 key derivation |
| 40 | + |
| 41 | + This factors out the PBKDF2 key derivation to a separate function |
| 42 | + and introduces a function to configure KeyDerivation instances |
| 43 | + with PBKDF2. |
| 44 | + |
| 45 | +2016-03-21 Arthur de Jong < [email protected]> |
| 46 | + |
| 47 | + * [5ac9d43] pskc/mac.py, tests/test_encryption.doctest: Allow |
| 48 | + configuring a MAC key |
| 49 | + |
| 50 | + This method will set up a MAC key and algorithm as specified or |
| 51 | + use reasonable defauts. |
| 52 | + |
| 53 | +2016-03-20 Arthur de Jong < [email protected]> |
| 54 | + |
| 55 | + * [16da531] pskc/key.py, pskc/mac.py: Generate MAC values |
| 56 | + |
| 57 | +2016-03-20 Arthur de Jong < [email protected]> |
| 58 | + |
| 59 | + * [ca0fa36] pskc/__init__.py, pskc/encryption.py, pskc/mac.py: |
| 60 | + Write MACMethod |
| 61 | + |
| 62 | + This also makes the MAC.algorithm a property similarly as what |
| 63 | + is done for Encryption (normalise algorithm names) and adds a |
| 64 | + setter for the MAC.key property. |
| 65 | + |
| 66 | +2016-03-21 Arthur de Jong < [email protected]> |
| 67 | + |
| 68 | + * [8fd35ba] pskc/encryption.py, pskc/key.py: Write out encrypted |
| 69 | + values |
| 70 | + |
| 71 | + The Encryption class now has a fields property that lists the |
| 72 | + fields that should be encrypted when writing the PSKC file. |
| 73 | + |
| 74 | + This adds an encrypt_value() function that performs the encryption |
| 75 | + and various functions to convert the plain value to binary before |
| 76 | + writing the encrypted XML elements. |
| 77 | + |
| 78 | +2016-03-20 Arthur de Jong < [email protected]> |
| 79 | + |
| 80 | + * [eba541e] pskc/__init__.py, pskc/encryption.py, pskc/mac.py: |
| 81 | + Make Encryption and MAC constructors consistent |
| 82 | + |
| 83 | + This removes calling parse() from the Encryption and MAC |
| 84 | + constructors and stores a reference to the PSKC object in both |
| 85 | + objects so it can be used later on. |
| 86 | + |
| 87 | +2016-03-20 Arthur de Jong < [email protected]> |
| 88 | + |
| 89 | + * [fe21231] pskc/__init__.py, pskc/encryption.py, |
| 90 | + tests/test_write.doctest: Write encryption key information |
| 91 | + |
| 92 | + This writes information about a pre-shared key or PBKDF2 key |
| 93 | + derivation in the PSKC file. This also means that writing |
| 94 | + a decrypted version of a previously encrypted file requires |
| 95 | + actively removing the encryption. |
| 96 | + |
| 97 | +2016-03-19 Arthur de Jong < [email protected]> |
| 98 | + |
| 99 | + * [0893640] pskc/encryption.py, tests/test_misc.doctest: Add |
| 100 | + algorithm_key_lengths property |
| 101 | + |
| 102 | + This property on the Encryption object provides a list of key |
| 103 | + sizes (in bytes) that the configured encryption algorithm supports. |
| 104 | + |
| 105 | +2016-03-22 Arthur de Jong < [email protected]> |
| 106 | + |
| 107 | + * [8b5f6c2] pskc/policy.py, tests/test_misc.doctest, |
| 108 | + tests/test_rfc6030.doctest, tests/test_write.doctest: Also check |
| 109 | + key expiry in may_use() |
| 110 | + |
| 111 | +2016-03-20 Arthur de Jong < [email protected]> |
| 112 | + |
| 113 | + * [dfa57ae] pskc2csv.py: Support reading password or key in pskc2csv |
| 114 | + |
| 115 | + This supports reading the encryption password or key from the |
| 116 | + command line or from a file. |
| 117 | + |
| 118 | +2014-06-28 Arthur de Jong < [email protected]> |
| 119 | + |
| 120 | + * [0744222] pskc/xml.py: Copy namespaces to toplevel element |
| 121 | + |
| 122 | + Ensure that when writing an XML file all namespace definitions |
| 123 | + are on the toplevel KeyContainer element instead of scattered |
| 124 | + throughout the XML document. |
| 125 | + |
| 126 | +2016-03-19 Arthur de Jong < [email protected]> |
| 127 | + |
| 128 | + * [e8ef157] pskc/__init__.py, tests/test_write.doctest: Support |
| 129 | + writing to text streams in Python 3 |
| 130 | + |
| 131 | + This supports writing the XML output to binary streams as well |
| 132 | + as text streams in Python 3. |
| 133 | + |
| 134 | +2016-03-19 Arthur de Jong < [email protected]> |
| 135 | + |
| 136 | + * [cadc6d9] pskc/key.py, pskc/mac.py, |
| 137 | + tests/invalid/encryption.pskcxml, |
| 138 | + tests/invalid/missing-encryption.pskcxml, |
| 139 | + tests/invalid/not-boolean.pskcxml, |
| 140 | + tests/invalid/not-integer.pskcxml, |
| 141 | + tests/invalid/not-integer2.pskcxml, |
| 142 | + tests/invalid/unknown-encryption.pskcxml, tests/test_aeskw.doctest, |
| 143 | + tests/test_encryption.doctest, tests/test_invalid.doctest, |
| 144 | + tests/test_misc.doctest, tests/test_rfc6030.doctest, |
| 145 | + tests/test_tripledeskw.doctest, tests/test_write.doctest: |
| 146 | + Improve tests and test coverage |
| 147 | + |
| 148 | + This adds tests to ensure that incorrect attribute and value |
| 149 | + types in the PSKC file raise a ValueError exception and extends |
| 150 | + the tests for invalid encryption options. |
| 151 | + |
| 152 | + This removes some code or adds no cover directives to a few |
| 153 | + places that have unreachable code or are Python version specific |
| 154 | + and places doctest directives inside the doctests where needed. |
| 155 | + |
| 156 | +2016-03-19 Arthur de Jong < [email protected]> |
| 157 | + |
| 158 | + * [b8905e0] pskc/key.py, pskc/xml.py, tests/misc/checkdigits.pskcxml, |
| 159 | + tests/test_misc.doctest: Support both CheckDigit and CheckDigits |
| 160 | + |
| 161 | + RFC 6030 is not clear about whether the attribute of |
| 162 | + ChallengeFormat and ResponseFormat should be the singular |
| 163 | + CheckDigit or the plural CheckDigits. This ensures that both |
| 164 | + forms are accepted. |
| 165 | + |
| 166 | +2016-03-19 Arthur de Jong < [email protected]> |
| 167 | + |
| 168 | + * [7915c55] pskc/policy.py, tests/misc/policy.pskcxml, |
| 169 | + tests/test_misc.doctest: Implement policy checking |
| 170 | + |
| 171 | + This checks for unknown policy elements in the PSKC file and |
| 172 | + will cause the key usage policy check to fail. |
| 173 | + |
| 174 | +2016-03-18 Arthur de Jong < [email protected]> |
| 175 | + |
| 176 | + * [1687fd6] tests/feitian/20120919-test001-4282.xml, |
| 177 | + tests/feitian/file1.pskcxml, tests/nagraid/file1.pskcxml, |
| 178 | + tests/test_vendors.doctest: Add a few tests for vendor files |
| 179 | + |
| 180 | + Some vendor-specific files were lifted from the LinOTP test suite |
| 181 | + and another Feitian file was found in the oath-toolkit repository. |
| 182 | + |
| 183 | +2016-01-31 Arthur de Jong < [email protected]> |
| 184 | + |
| 185 | + * [aae8a18] pskc/key.py, tests/misc/integers.pskcxml, |
| 186 | + tests/test_misc.doctest: Support various integer representations |
| 187 | + |
| 188 | + This extends support for handling various encoding methods for |
| 189 | + integer values in PSKC files. For encrypted files the decrypted |
| 190 | + value is first tried to be evaluated as an ASCII representation |
| 191 | + of the number and after that big-endian decoded. |
| 192 | + |
| 193 | + For plaintext values first ASCII decoding is tried after which |
| 194 | + base64 decoding is tried which tries the same encodings as for |
| 195 | + decrypted values. |
| 196 | + |
| 197 | + There should be no possibility for any base64 encoded value |
| 198 | + (either of an ASCII value or a big-endian value) to be interpreted |
| 199 | + as an ASCII value for any 32-bit integer. |
| 200 | + |
| 201 | + There is a possibility that a big-endian encoded integer could |
| 202 | + be incorrectly interpreted as an ASCII value but this is only |
| 203 | + the case for 110 numbers when only considering 6-digit numbers. |
| 204 | + |
| 205 | +2016-01-24 Arthur de Jong < [email protected]> |
| 206 | + |
| 207 | + * [c86aaea] README, pskc/__init__.py, |
| 208 | + tests/SampleFullyQualifiedNS.xml, tests/aes128-cbc.pskcxml, |
| 209 | + tests/aes192-cbc.pskcxml, tests/aes256-cbc.pskcxml, |
| 210 | + tests/draft-hoyer-keyprov-pskc-algorithm-profiles-01/actividentity-3des.pskcxml, |
| 211 | + tests/draft-hoyer-keyprov-pskc-algorithm-profiles-01/ocra.pskcxml, |
| 212 | + tests/draft-hoyer-keyprov-pskc-algorithm-profiles-01/securid-aes-counter.pskcxml, |
| 213 | + tests/draft-hoyer-keyprov-pskc-algorithm-profiles-01/totp.pskcxml, |
| 214 | + tests/draft-keyprov-actividentity-3des.pskcxml, |
| 215 | + tests/draft-keyprov-ocra.pskcxml, |
| 216 | + tests/draft-keyprov-securid-aes-counter.pskcxml, |
| 217 | + tests/draft-keyprov-totp.pskcxml, |
| 218 | + tests/encryption/aes128-cbc.pskcxml, |
| 219 | + tests/encryption/aes192-cbc.pskcxml, |
| 220 | + tests/encryption/aes256-cbc.pskcxml, |
| 221 | + tests/encryption/kw-aes128.pskcxml, |
| 222 | + tests/encryption/kw-aes192.pskcxml, |
| 223 | + tests/encryption/kw-aes256.pskcxml, |
| 224 | + tests/encryption/kw-tripledes.pskcxml, |
| 225 | + tests/encryption/tripledes-cbc.pskcxml, |
| 226 | + tests/invalid-encryption.pskcxml, |
| 227 | + tests/invalid-mac-algorithm.pskcxml, |
| 228 | + tests/invalid-mac-value.pskcxml, |
| 229 | + tests/invalid-no-mac-method.pskcxml, tests/invalid-notxml.pskcxml, |
| 230 | + tests/invalid-wrongelement.pskcxml, |
| 231 | + tests/invalid-wrongversion.pskcxml, |
| 232 | + tests/invalid/encryption.pskcxml, |
| 233 | + tests/invalid/mac-algorithm.pskcxml, |
| 234 | + tests/invalid/mac-value.pskcxml, |
| 235 | + tests/invalid/no-mac-method.pskcxml, |
| 236 | + tests/invalid/notxml.pskcxml, tests/invalid/wrongelement.pskcxml, |
| 237 | + tests/invalid/wrongversion.pskcxml, tests/kw-aes128.pskcxml, |
| 238 | + tests/kw-aes192.pskcxml, tests/kw-aes256.pskcxml, |
| 239 | + tests/kw-tripledes.pskcxml, tests/misc/SampleFullyQualifiedNS.xml, |
| 240 | + tests/misc/odd-namespace.pskcxml, tests/odd-namespace.pskcxml, |
| 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/rfc6030/figure10.pskcxml, |
| 245 | + tests/rfc6030/figure2.pskcxml, tests/rfc6030/figure3.pskcxml, |
| 246 | + tests/rfc6030/figure4.pskcxml, tests/rfc6030/figure5.pskcxml, |
| 247 | + tests/rfc6030/figure6.pskcxml, tests/rfc6030/figure7.pskcxml, |
| 248 | + tests/test_draft_keyprov.doctest, tests/test_encryption.doctest, |
| 249 | + tests/test_invalid.doctest, tests/test_misc.doctest, |
| 250 | + tests/test_rfc6030.doctest, tests/test_write.doctest, |
| 251 | + tests/tripledes-cbc.pskcxml: Re-organise test files |
| 252 | + |
| 253 | + This puts the test PSKC files in subdirectories so they can be |
| 254 | + organised more cleanly. |
| 255 | + |
| 256 | +2016-01-23 Arthur de Jong < [email protected]> |
| 257 | + |
| 258 | + * [1904dc2] tests/test_misc.doctest: Add test for incorrect key |
| 259 | + derivation |
| 260 | + |
| 261 | + If no key derivation algorithm has been specified in the PSKC |
| 262 | + file an exception should be raised when attempting to perform |
| 263 | + key derivation. |
| 264 | + |
| 265 | +2016-01-24 Arthur de Jong < [email protected]> |
| 266 | + |
| 267 | + * [91f66f4] pskc/encryption.py, pskc/key.py, pskc/mac.py: Refactor |
| 268 | + out EncryptedValue and ValueMAC |
| 269 | + |
| 270 | + This removes the EncryptedValue and ValueMAC classes and instead |
| 271 | + moves the XML parsing of these values to the DataType class. This |
| 272 | + will make it easier to support different parsing schemes. |
| 273 | + |
| 274 | + This also includes a small consistency improvement in the |
| 275 | + subclasses of DataType. |
| 276 | + |
| 277 | +2016-01-23 Arthur de Jong < [email protected]> |
| 278 | + |
| 279 | + * [9b13d3b] pskc/encryption.py, tests/test_misc.doctest: Normalise |
| 280 | + algorithm names |
| 281 | + |
| 282 | + This transforms the algorithm URIs that are set to known values |
| 283 | + when parsing or setting the algorithm. |
| 284 | + |
| 285 | +2016-01-22 Arthur de Jong < [email protected]> |
| 286 | + |
| 287 | + * [b6eab47] docs/encryption.rst, pskc/encryption.py, |
| 288 | + tests/test_encryption.doctest, tests/test_misc.doctest: Add |
| 289 | + encryption algorithm property |
| 290 | + |
| 291 | + Either determine the encryption algorithm from the PSKC file |
| 292 | + or from the explicitly set value. This also adds support for |
| 293 | + setting the encryption key name. |
| 294 | + |
| 295 | +2016-01-22 Arthur de Jong < [email protected]> |
| 296 | + |
| 297 | + * [b5f7de5] pskc/key.py, tests/test_write.doctest: Fix a problem |
| 298 | + when writing previously encrypted file |
| 299 | + |
| 300 | + This fixes a problem with writing a PSKC file that is based on |
| 301 | + a read file that was encrypted. |
| 302 | + |
| 303 | +2016-01-22 Arthur de Jong < [email protected]> |
| 304 | + |
| 305 | + * [107a836] pskc/__init__.py, pskc/encryption.py, pskc/key.py, |
| 306 | + pskc/mac.py, pskc/policy.py, pskc/xml.py: Strip XML namespaces |
| 307 | + before parsing |
| 308 | + |
| 309 | + This simplifies calls to the find() family of functions and |
| 310 | + allows parsing PSKC files that have slightly different namespace |
| 311 | + URLs. This is especially common when parsing old draft versions |
| 312 | + of the specification. |
| 313 | + |
| 314 | + This also removes passing multiple patterns to the find() |
| 315 | + functions that was introduced in 68b20e2. |
| 316 | + |
| 317 | +2015-12-28 Arthur de Jong < [email protected]> |
| 318 | + |
| 319 | + * [a86ff8a] README, docs/encryption.rst: Update some documentation |
| 320 | + |
| 321 | + This adds a development notes section to the README and changes |
| 322 | + the wording on the encryption page. |
| 323 | + |
| 324 | +2015-12-01 Mathias Laurin < [email protected]> |
| 325 | + |
| 326 | + * [0ff4154] docs/encryption.rst: Fix typo in the documentation |
| 327 | + |
| 328 | +2015-12-01 Mathias Laurin < [email protected]> |
| 329 | + |
| 330 | + * [3473903] pskc2csv.py: Support Python 3 |
| 331 | + |
| 332 | +2015-11-30 Mathias Laurin < [email protected]> |
| 333 | + |
| 334 | + * [a82a60b] pskc/key.py: Make value conversion methods static private |
| 335 | + |
| 336 | + - the conversions do not call self: they are static - the |
| 337 | + conversions are not to be used out of the class: make private |
| 338 | + |
| 339 | +2015-11-30 Mathias Laurin < [email protected]> |
| 340 | + |
| 341 | + * [e711a30] pskc/key.py: Provide abstract methods to clarify API |
| 342 | + |
| 343 | +2015-11-30 Mathias Laurin < [email protected]> |
| 344 | + |
| 345 | + * [1577687] pskc/encryption.py: Fix typo in variable name |
| 346 | + |
| 347 | +2015-11-30 Mathias Laurin < [email protected]> |
| 348 | + |
| 349 | + * [3aa2a6f] tests/test_invalid.doctest: Fix doctest: |
| 350 | + IGNORE_EXCEPTION_DETAL |
| 351 | + |
| 352 | +2015-10-07 Arthur de Jong < [email protected]> |
| 353 | + |
| 354 | + * [c155d15] ChangeLog, MANIFEST.in, NEWS, pskc/__init__.py, |
| 355 | + setup.py: Get files ready for 0.3 release |
| 356 | + |
1 | 357 | 2015-10-07 Arthur de Jong < [email protected]> |
2 | 358 |
|
3 | 359 | * [cf0c9e6] README, docs/conf.py, docs/encryption.rst, |
|
0 commit comments