summaryrefslogtreecommitdiffhomepage
path: root/Encryption.hs
Commit message (Collapse)AuthorAge
* updated many dependencies, ghc 8.xJoey Hess2020-02-14
| | | | | | | | | | | | | Updated many dependencies, notably secret-sharing which dropped the dep on polynomial, and so allows building with ghc 8.x. Did not try to support building with older ghc because the semigroup-monid transition would make it nontrivial. Stackage lts-14.25 is a compromise, since the stack shipped in debian (even unstable) is not able to handle newer ones. This commit was sponsored by Eric Drechsel on Patreon.
* layoutJoey Hess2017-03-21
|
* removed unwanted module import.Piyush P Kurur2017-03-21
|
* small improvement on encoding using sha.Piyush P Kurur2017-03-21
|
* Updated to use raaz-0.1.1.Joey Hess2017-03-03
| | | | This commit was sponsored by John Peloquin on Patreon.
* Removed dependency on crypto-random.Joey Hess2016-10-07
| | | | | | | | Use raaz for random bytestring generation exclusively. It was already used in all important places, but chaffing was using crypto-random. Note that System.Random is used for delays during chaffing and by random-shuffle.
* implement client-server Proof Of WorkJoey Hess2016-09-12
| | | | | | | | | | | | | | | | | | | Mashed up a argon2-based PoW with token buckets and bloom filters. This is intended to prevent a few abuses including: * Using a keysafe server for general file storage, by storing a whole lot of chunks. * An attacker guessing names that people will use, and uploading junk to keysafe servers under those names, to make it harder for others to use keysafe later. * An attacker trying to guess the names used for objects on keysafe servers in order to download them and start password cracking. (As a second level of defense, since the name generation hash is expensive already.) Completely untested, but it builds! This commit was sponsored by Andreas on Patreon.
* fix ordering bug in chunkJoey Hess2016-08-19
|
* reorgJoey Hess2016-08-19
|
* chunkingJoey Hess2016-08-19
| | | | | This changed the storage format, not that it matters because nobody is using it yet.
* comment updatesJoey Hess2016-08-19
| | | | | | The keyid used as a salt in the shardIdents does not prevent rainbow table attacks, since it's often anyKey (""). The obscure name combined with the username does make rainbow tables unlikely to be useful though.
* use name, not password as IVJoey Hess2016-08-18
| | | | | | | | | | It was probably ok to use the password, but it's certianly ok to use the name: * The name must be known if the shards have been reassembled to get to the point of decrypting the sharded data. * The name is unique, while a user might reuse a password for eg, storing different versions of the same key.
* add progress bars to restoreJoey Hess2016-08-17
| | | | also, restore actually works!
* switch to random salt byte to make decryption expensiveJoey Hess2016-08-16
|
* add checksum to encrypted dataJoey Hess2016-08-12
| | | | Needed to verify decryption puzzles
* zero-pad size of padded bytesJoey Hess2016-08-11
|
* don't use IV as puzzle after allJoey Hess2016-08-11
| | | | | | | | Not a good idea to use IV, because all the parts of the IV that are 0 will not obscure the data in the first block at all. Instead, sha256 the password to generate the IV, and keep the puzzle as part of the key.
* guessing puzzle answersJoey Hess2016-08-11
|
* round-tripping now working, except for guessing the puzzleJoey Hess2016-08-11
|
* simplify by using the IV as the puzzleJoey Hess2016-08-11
|
* inline slightly modified version of secret-sharingJoey Hess2016-08-11
| | | | | Needed for efficient serialization of shares, unless upstream takes my suggestion to make the finite field be size 256.
* nearly able to generate shards nowJoey Hess2016-08-11
|
* types for new version storage schemeJoey Hess2016-08-10
|
* reorg, and working on serializationJoey Hess2016-08-07
|
* add namesJoey Hess2016-08-07
|
* finish AES decryption puzzle implementationJoey Hess2016-08-07
|
* improve typesJoey Hess2016-08-07
|
* more cost calculation and refactored TunablesJoey Hess2016-08-06
|
* some basic data types and expensive hashingJoey Hess2016-08-06