Commit graph

10 commits

Author SHA1 Message Date
Sudhi Herle
00542dec02 Major breaking changes: Reworked file encryption scheme
* all encryption now uses ephmeral curve25519 keys
* sender can identify themselves by providing a signing key
* sign/verify now uses a string prefix for calculating checksum of the
  incoming message + known prefix [prevents us from verifying unknown
  blobs]
* encrypt/decrypt key is now expanded with a known prefix _and_ the
  header checksum
* protobuf definition changed to include an encrypted sender
  identification blob (sender public key)
* moved protobuf files into an internal/pb directory
* general code rearrangement to make it easy to find files
* added extra validation for reading all keys
* bumped version to 1.0.0
2020-03-20 17:40:52 -07:00
Sudhi Herle
8ed3bff6db Cleaned up chunk header encoding during encrypt/decrypt.
* encrypted chunk header now encodes _only_ plain text length
* the AEAD tag length is implicitly added when reading/writing
* added better sanity checks for short blocks during decrypt
* io.ReadAtLeast() reports ErrUnexpectedEOF for less than a full chunk;
  use this signal correctly
* major version bump to denote header incompatibility
2020-01-29 16:47:14 +05:30
Sudhi Herle
f32525a864 THIS IS A BREAKING CHANGE! Private Keys generated by previous versions won't work with this version.
* Refactored the private key protection to use standard AEAD
  construction.
* Fix sanity check of decrypted block length to stay within verified
  bounds
* Cleanup test harness to split into utility file (assert()); cleaned up
  names of test functions.
* Fixed scrypt params to not take too long (N=2^19)
* Updated README with these changes
2020-01-08 09:17:54 -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
387c75e791 Ran gofmt on all files; forgot to do that after merging. 2019-10-19 21:12:57 -05:00
Sudhi Herle
d9755bc793 Added helper function to take raw bytes and turn em into keys 2019-10-19 14:58:07 -07:00
Sudhi Herle
a1bbcbd5a8 Fixed slice aliasing error in signature creation 2019-10-19 14:42:19 -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
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
Sudhi Herle
40a0c2d829 Teach sigtool to use go modules; updated to use my fork of pflag. 2019-06-20 10:51:33 +05:30
Renamed from src/sign/sign.go (Browse further)