* bugfix: use os.IsNotExist() instead of comparing errors for equality;
this fixes incorrect handling of missing authorized_keys file.
* move die() and warn() into die.go - and make them public functions.
* teach die.go to also provide atexit() like functionality
* teach all callers of sign.SafeFile{} to use AtExit() to delete
temporary artifacts
* symbol renaming: die->Die, warn->Warn.
* Added new SafeFile (io.WriteCloser) class + methods to atomically write a file.
* Teach core lib to use SafeFile for all file I/O
* Teach sigtool to use SafeFile for all file I/O
* Cleaned up the public interfaces of sign/ to be more coherent:
- with uniform APIs for marshaling, unmarshaling, serialization.
- removed KeyPair class/interface and stick to PrivateKey as the primary
interface.
* collected common rand utility functions into rand.go
* Teach sigtool to NOT overwrite existing output files (keys, signatures etc.)
* Teach sigtool to use a new --overwrite option for every command that creates
files (generate, sign, encrypt, decrypt)
* encrypt/decrypt will try to use the input file mode/perm where possible
(unless input is stdin).
* Added more tests
* Sender identity is never shared in the encrypted payload
* Sender signs the data-encryption key via Ed25519 if sender-auth is
desired; else a "signature" of all zeroes is used. In either case, this
signature is encrypted with the same data-encryption key.
* cleaned up stale code and updated tests
* Added support to read openssh public keys and encrypted private keys
* reworked private key handling
* made password the default; generating keys without password
requires explicit "--no-password"
* use protobuf for encryption-header
* use fixed size file-header (42 bytes) before the encryption-header
* add encryption/decryption contexts
* teach MakePrivateKey() to fixup its internal public key bits
* added encrypt, decrypt commands (empty now)
* use command abbreviation util library
* switched to go1.13 (ed25519 now in stdlib)
* added new code to convert/manage Ed25519 keys to Curve25519
(thanks to FiloSottile/age)