The error messages raised when a crypto library specified in conf.py is unavailable were expanded. Modified the message to not use backslashes (explicit line continuation)
re.sub() with the 'flags' keyword argument caused type error in Python 2.6.
Converted PEM validation to use index() to address issue above.
Raise specific exception depending on missing header / footer.
Check footer follows header.
A change of line or any other character outside the public key makes
changes the keyid and breaks the behaviour of TUF. Remove everything
before '-----BEGIN PUBLIC KEY-----' and after
'-----END PUBLIC KEY-----'.
Allow validation of specific libraries rather than checking all of them in check_crypto_libraries().
Log warning if the repository tool is imported but has not been properly installed: $ pip install tuf[tools].
Modify format string of console log messages.
TUF's crypto dependencies was recently changed: ED25519 signatures supported by default, and require PyCrypto or tuf[tools] to verify RSASSA-PSS signatures.
The error returned for clients that tried to verify rsassa-pss signatures without the required library was bad. Error message returned now:
$ basic_client.py --repo http://localhost:8001
Error: No working mirror was found:
localhost:8001: Metadata downloaded from the remote repository specified an RSA signature. Verifying RSA signatures requires PyCrypto.
$ pip install PyCrypto, or pip install tuf[tools].
Update modules affected by the changes made to the latest versions of pyca-ed25519 and pyca-pynacl:
Do not use the unsafe key and signature generation functions of pure python ed25519, but do support the signature verification routine. Developers must use the faster and secure pynacl+libsodium to generate ed25519 keys and signatures.
Temporarily suppress pynacl's import warning error.
Minor edits to comments and code.
Update repository_tool.py and keys.py functions that import rsa publickey files. Perform a simple check of the PEM string so that an improperly formatted PEMis detected sooner. Reported by Santiago.
Add support for encrypted (and public ed25519 keys) TUF key files.
Add support for ed25519 keys, signatures, and key files in libtuf.py.
Update libtuf.py diagram.
Move canonical encoding operations to the create and verify key functions.