Commit graph

16 commits

Author SHA1 Message Date
Sudhi Herle
c4f79962c9 Updated dependencies; use SafeFile from go-utils. Teach tests.sh to use
a user supplied binary & tmpdir
2023-11-12 12:21:31 -08:00
Sudhi Herle
c95515af0e Update dependencies; move go version to 1.20
* update build script to use a diff go-root
* update tests.sh to use diff go-root
* move pflag to opencoff/pflag
* use common lib to parse string size..
2023-03-09 17:20:50 +00:00
Sudhi Herle
0ddf48c92f Minor cleanups and one bugfix:
* 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.
2022-05-12 16:53:27 -07:00
Sudhi Herle
42bbe5ddeb Refactored the core signing & encryption library, teach sigtool to use safe I/O.
* 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
2022-04-29 21:36:39 +05:30
Sudhi Herle
e22fae05f7 Better handling of sender verification
* 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
2020-03-23 10:44:40 -07:00
Sudhi Herle
1cd3a94180 Added new io.Reader and io.WriteCloser interface to Decryption and Encryption respectively.
* added test case for streaming read/write
* bumped version#
2020-02-14 18:47:25 -08:00
Sudhi Herle
374daebb8d Use size parsing option in pflag 2019-11-15 13:26:11 -08:00
Sudhi Herle
0abbfd37ec Teach dec to run in test-only mode 2019-11-08 10:49:13 -08:00
Sudhi Herle
f82c1336ac sigtool now supports openssh ed25519 public and private keys.
* 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"
2019-11-05 21:42:25 +01:00
Sudhi Herle
b14f9d1e53 Merge branch 'encdec' 2019-10-22 20:12:51 -07:00
Sudhi Herle
a347fdca79 Teach 'sigtool enc' to accept a user defined block size 2019-10-21 13:28:27 -07:00
Sudhi Herle
387c75e791 Ran gofmt on all files; forgot to do that after merging. 2019-10-19 21:12:57 -05:00
Sudhi Herle
a27044154a Working version with enc/dec of all key types.
* Updated README
* fix non-ephemeral key wrap/unwrap
* fix out of bounds error in decrypt
2019-10-18 15:42:08 -07:00
Sudhi Herle
21445ba1a1 First working version of encrypt/decrypt
* 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
2019-10-17 14:29:01 -07:00
Sudhi Herle
9473c10bfd Added encrypt/decrypt commands to sigtool 2019-10-14 09:46:03 -07:00
Sudhi Herle
1cc55e1a55 WIP: added encryption key mgmt
* 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)
2019-10-09 14:52:34 -07:00