Encrypt content sent to the server

This implements client-side encryption, so that users' task information
is not availble to the server (or to anyone who does not have the
`encryption_secret`).
This commit is contained in:
Dustin J. Mitchell 2020-12-26 16:37:31 +00:00
parent 6b70b47aa0
commit a8d45c67c6
8 changed files with 206 additions and 26 deletions

19
Cargo.lock generated
View file

@ -1642,6 +1642,12 @@ dependencies = [
"tempfile",
]
[[package]]
name = "protobuf"
version = "2.18.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da78e04bc0e40f36df43ecc6575e4f4b180e8156c4efd73f13d5619479b05696"
[[package]]
name = "publicsuffix"
version = "1.5.4"
@ -2255,6 +2261,7 @@ dependencies = [
"serde",
"serde_json",
"tempdir",
"tindercrypt",
"ureq",
"uuid",
]
@ -2456,6 +2463,18 @@ dependencies = [
"syn",
]
[[package]]
name = "tindercrypt"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f34fd5cc8db265f27abf29e8a3cec5cc643ae9f3f9ae39f08a77dc4add375b6d"
dependencies = [
"protobuf",
"rand 0.7.3",
"ring",
"thiserror",
]
[[package]]
name = "tinyvec"
version = "1.1.0"