summaryrefslogtreecommitdiffhomepage
path: root/Storage
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.
* Fix --check-server to not fail when the server has not had anything stored ↵Joey Hess2016-10-24
| | | | | | | | on it yet. Threw an exception because the share directory was not created yet. This commit was sponsored by Anthony DeRobertis on Patreon.
* test writability with a long filenameJoey Hess2016-10-06
|
* 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.
* avoid crashing when moving from local storage directory that does not existJoey Hess2016-09-22
|
* copy in Utility.UserInfo from git-annexJoey Hess2016-09-22
| | | | | This is worth doing to support falling back to HOME on systems using LDAP or NIS where getpwent fails.
* 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.
* Added --backup-server and --restore-serverJoey Hess2016-09-15
| | | | | | To aid in backing up keysafe servers with minimal information leakage. This commit was sponsored by Andrea Rota.
* 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.
* Fix --uploadqueued bug that prevented deletion of local queued file.Joey Hess2016-09-14
|
* 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
|
* implemented dynamic rate limitingJoey Hess2016-09-13
|
* 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
|
* Added basic test suite.Joey Hess2016-08-30
|
* commentsJoey Hess2016-08-29
|
* minorJoey Hess2016-08-29
|
* support .onion addresses for serversJoey Hess2016-08-29
|
* belt and suspenders path injection checkJoey Hess2016-08-28
| | | | | | | | | This does not seem to be necessary for the HTTP server, because servant parses the StorableObjectIdent out of query path, so it can't contain `/`. But, what if the HTTP server were running on windows? Then, `\` could be embedded in the StorableObjectIdent or perhaps a drive letter, etc. So, best to have a second level of defense against path injection.
* 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.
* minor prompt flowJoey Hess2016-08-18
|
* 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
* save restored secret key to gpg or fileJoey Hess2016-08-17
|
* store files mode 400Joey Hess2016-08-17
|
* make storage to use configurable on command lineJoey Hess2016-08-17
|
* separate error code for already exsisting object storeJoey Hess2016-08-12
|
* don't allow overwrite of object fileJoey 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
|
* catch IO exceptionsJoey Hess2016-08-11
|
* pluggable object storage layerJoey Hess2016-08-11