summaryrefslogtreecommitdiffhomepage
path: root/Storage/Network.hs
Commit message (Collapse)AuthorAge
* Check if --store-local directory is writable.Joey Hess2016-10-06
| | | | | | | | | | | | | | | | | | | | If run with --totalshares larger than the number of servers, and the --store-local directory is not writable, this causes keysafe to throw out the unwritable directory and so error out early due to their not being enough storage locations. That's better than the old behavior, which was to try to use the --store-local directory, fail and so proceed to storing the share on a server. That would eventually fail with "no storage locations" when it runs out of servers. That was bad, because shares were uploaded to servers, but perhaps not enough for restore to work, and a new name/othername would be needed to re-run the backup. This is not a perfect fix; if the --store-local directory is writable at first but for some reason the write of the share to it later fails, the situation described above still happens. This commit was sponsored by Jochen Bartl on Patreon.
* New --add-storage-directory and --add-server optionsJoey Hess2016-10-06
| | | | | | | | * New --add-storage-directory and --add-server options, which can be used to make keysafe backup/restore using additional locations. * Removed --store-local option; use --add-storage-directory instead. This commit was sponsored by Thomas Hochstein on Patreon.
* move level from Server to StorageJoey Hess2016-10-06
| | | | | | | This allows local storage locations to have levels too, and also get shuffled nicely. This commit was sponsored by Ethan Aubin.
* allow servers to have multiple or no addressesJoey Hess2016-09-22
| | | | | | | | | | | | | This allows the server list to contain 3 servers although only 1 is running so far; uploads to the others will be queued. It also allows a server to be spread amoung multiple addresses, which may be useful later for scaling. This changes BackupRecord serialization, but it's not been in a keysafe release yet, so that's not a problem. This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
* Store information about backed up keys in ~/.keysafe/backup.logJoey Hess2016-09-14
| | | | | | | | This can be deleted by the user at any time, but it's useful in case a server is known to be compromised, or a problem is found with keysafe's implementation that makes a backup insecure. This commit was sponsored by Nick Daly on Patreon.
* Warn when --uploadqueued fails to upload to servers.Joey Hess2016-09-14
|
* Warn when uploads fail and are put in the upload queue.Joey Hess2016-09-14
|
* more refactorJoey Hess2016-09-12
|
* refactorJoey Hess2016-09-12
|
* add proof of work to countobjectsJoey Hess2016-09-12
| | | | In this case, an empty string is hashed to generate the PoW.
* 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.
* new moduleJoey Hess2016-09-12
|
* Fix bug that prevented keysafe --server from running when there was no ↵Joey Hess2016-09-01
| | | | controlling terminal and zenity was not installed.
* added --store-directoryJoey Hess2016-08-31
|
* commentsJoey Hess2016-08-29
|
* minorJoey Hess2016-08-29
|
* support .onion addresses for serversJoey Hess2016-08-29
|
* temporary test servers: 3x localhostJoey Hess2016-08-22
| | | | At this point, storage and retrival to servers basically works!
* wire up client to Storage.NetworkJoey Hess2016-08-22
|
* --server needs a portJoey Hess2016-08-22
|
* rename shard -> shareJoey Hess2016-08-19
| | | | This makes it clearer that it's not a chunk of data, but a Shamir share.
* untested moving of upload queues on to serversJoey Hess2016-08-18
| | | | | | | | | | | There needs to be a 1:1 mapping between upload queues and servers, otherwise using the upload queue risks two shards for the same object being uploaded to the same server. Also, fixed storeShards to give up on StoreAlreadyExists, rather than trying another storage location. Otherwise, on a name collision, the shards would be rejected by the servers, and be stored to their upload queues.
* add support for multiple storage locattionsJoey Hess2016-08-18
| | | | also, server upload queues in ~/.keysafe
* make storage to use configurable on command lineJoey Hess2016-08-17