summaryrefslogtreecommitdiffhomepage
path: root/Storage.hs
Commit message (Collapse)AuthorAge
* support slightly older version of depsJoey Hess2020-02-14
| | | | | Needed for slightly old lts, needed by debian since their stack is well out of date.
* move TODO to doc/todo, expand a few itemsJoey Hess2017-04-04
|
* 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.
* Gpg keyid bugsJoey Hess2016-10-06
| | | | | | | | | | | | | | Fix bugs with entry of gpg keyid in the keysafe.log. Gpg.anyKey was being used in writing the log, which made the log contain gpg keys with an empty keyid. Fix bug in --autostart that caused the full gpg keyid to be used in the name, so restores would only work when --gpgkeyid was specifid. Added a Distinguisher data type rather than the Gpg.anyKey hack. This commit was sponsored by Thom May 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.
* Filter out escape sequences and any other unusual characters when writing ↵Joey Hess2016-09-27
| | | | | | | all messages to the console. This should protect against all attacks where the server sends back a malicious message.
* check server levelsJoey Hess2016-09-26
| | | | | | | | | Don't upload more than neededshares-1 shares to Alternate servers without asking the user if they want to do this potentially dangerous action. Never allow uploads to Untrusted servers. This commit was sponsored by Ignacio on Patreon.
* wordingJoey Hess2016-09-26
|
* Randomize the server list.Joey Hess2016-09-26
| | | | | | | May help avoid some correlations. Once there are many servers, will spread the load out amoung them. This commit was sponsored by Ethan Aubin.
* delay before starting chaffingJoey Hess2016-09-23
| | | | | Since there are multiple threads, this prevents the first upload from each coming at nearly the same time.
* Added --chaff-max-delay option for slower chaffing.Joey Hess2016-09-23
| | | | This commit was sponsored by Jeff Goeke-Smith on Patreon.
* fix buildJoey Hess2016-09-23
|
* record already-existing backup in log after restoring a secret keyJoey Hess2016-09-22
| | | | | | | This will prevent --autostart from prompting to get the newly restored key backed up again. This commit was sponsored by Remy van Elst on Patreon.
* Added --autostart mode and install FDO autostart fileJoey Hess2016-09-22
| | | | | | | | | | | | | | | | | | | | --autostart mode currently only uploads queued keys, but it will later be expanded to do more. Including checking the BackupRecord for problems when necessary. The autostart file is installed by keysafe --backup, so that when keysafe is installed with stack, and used, it will make sure it autostarts in the future. The autostart file is installed by the Makefile too. This will later let --autostart check for keys that have not been backed up and prompt about backing them up. This way, the user won't need to remember to run keysafe to back things up. Reused Utility.FreeDesktop from git-annex, and had to add some stuff it depends on. This commit was sponsored by Fernando Jimenez on Patreon.
* cleanupJoey Hess2016-09-22
|
* 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.
* chaff only the current object size, not old onesJoey Hess2016-09-14
|
* fixJoey Hess2016-09-14
|
* 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.
* use multiple threads for chaffingJoey Hess2016-09-14
|
* Added --chaff mode which uploads random junk to servers.Joey Hess2016-09-14
| | | | | | | | This is useful both to test the server throttling of uploads, and to make it harder for servers to know if an object actually contains secret key information. This commit was sponsored by Brock Spratlen 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
|
* added --store-directoryJoey Hess2016-08-31
|
* Added basic test suite.Joey Hess2016-08-30
|
* chunkingJoey Hess2016-08-19
| | | | | This changed the storage format, not that it matters because nobody is using it yet.
* 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.
* fix behavior on retrieve failureJoey Hess2016-08-18
|
* 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
|
* separate error code for already exsisting object storeJoey Hess2016-08-12
|
* add shardCountJoey Hess2016-08-11
|
* write via temp fileJoey Hess2016-08-11
| | | | | avoids short reads, and also if a backup program came along while the write was happening, avoids short backups
* obscure shard timestampsJoey Hess2016-08-11
|
* show store successes/failuresJoey Hess2016-08-11
|
* pluggable object storage layerJoey Hess2016-08-11