- Update README.md
- Set read-only and write-only channels.
- Reorganized code.
- Set Content-Type and HSTS on index
- House keeping in ecdh.go and symcrypt.go
- Fixed bug; user changes weren't being saved.
- Generalize core.status to core.responseData
- Export core request types so the client can marshal/unmarshal
requests/responses
- Tested with a test script against a local redoctober server
LeftOwners and RightOwners can now be used as either disjoint
or overlapping sets of users for encrypting a message. Default
behavior is to set them to Owners given a non-empty Owners set.
One member from each group are required to decrypt the message.
In the passvault, the default type of public key cryptography is
selected via a variable. The core test has been changed where it relies
on RSA specifically to check for the default record type.
This commit adds ECC cases to functions checking for RSA records.
Additionally, the rsaEncryptedKey variable is changed to pubEncryptedKey
to reflect a general use of public key crypto.
There are a few changes made here:
* Comments have been updated to reflect the presence of ECC records.
* Variables named rsa* have been renamed pub* to reflect the general
use of public key cryptography, instead of RSA specifically.
* An if statement for RSA keys now handles both RSA and ECC keys.
This adds code to handle ECC records; the RSA code remains intact.
While old password records are not affected, new records use ECC. Due to
the use of public keys to encrypt a KEK that is then used to encrypt
data, there is no visible change to end users. A user with an RSA key
can interact and share a secret with a user who has an ECC key.
The bulk of this commit simply adds cases for handling EC records.
The package encrypts data using ECDHE with AES-128-CBC-HMAC-SHA1;
this matches the other components. The curve used is P256 to match
the use of AES-128. The Go ECDSA package is used; no signatures are
done, but it presents usable PublicKey and PrivateKey types that are
useful for this system.
Keygen instructions suggestion using the folder named "cert".
Server run instructions use the folder "certs".
This change harmonizes the two to be "cert".
The passvault's id is created with math.rand as a native int.
If the vault is created on a 64-bit system, it breaks compatibility
with 32-bit systems.
- Generate vaults with 32-bit ids.
- Update testcode