<commit_before>homepage: https://keysafe.branchable.com/
changelog-type: text
hash: 0ccef998399b13a2bd158588c489fe234fb854218f9dcdbed538ffa80f58608e
test-bench-deps: {}
maintainer: <NAME> <<EMAIL>>
synopsis: back up a secret key securely to the cloud
changelog: ! "keysafe (0.20170811) unstable; urgency=medium\n\n  * Updated to http-client
  0.5.3, servant 0.11, and stackage lts-9.0.\n\n -- <NAME> <<EMAIL>>  Fri,
  11 Aug 2017 18:57:15 -0400\n\nkeysafe (0.20170303) unstable; urgency=medium\n\n
  \ * Updated to use raaz-0.1.1.\n\n -- <NAME> <<EMAIL>>  Fri, 03 Mar 2017
  16:15:47 -0400\n\nkeysafe (0.20170122) unstable; urgency=medium\n\n  * Adjust cabal
  bounds to allow building with ghc 8.0.\n    However, the stack.yaml is still using
  an old LTS version\n    to avoid polynomial's failure to build with ghc 8.0\n    (https://github.com/mokus0/polynomial/issues/8)\n
  \ * Clarify that dollars in cost estimates are USD.\n  * Keysafe has a new website,
  https://keysafe.branchable.com/\n\n -- <NAME> <<EMAIL>>  Sun, 22 Jan 2017
  09:44:17 -0400\n\nkeysafe (0.20161107) unstable; urgency=medium\n\n  * The third
  keysafe server is now available, provided by Purism.\n  * Purism's keysafe server
  has been vetted to Recommended level!\n  * Change default for --port to 4242.\n
  \ * Fix --check-server to not fail when the server has not had anything\n    stored
  on it yet.\n  * --upload-queued: Exit nonzero if unable to upload all queued objects.\n
  \ * --autostart: If unable to upload all queued objects initially,\n    delay between
  1 and 2 hours and try again.\n  * Better suggestion when user is having difficulty
  thinking of a strong\n    enough password.\n  * Defer requesting secret key from
  gpg until just before backup, so the\n    user knows why gpg is asking for this
  secret key to be backed up.\n\n -- <NAME> <<EMAIL>>  Mon, 07 Nov 2016 15:05:29
  -0400\n\nkeysafe (0.20161022) unstable; urgency=medium\n\n  * Add keywords to desktop
  file.\n    Thanks, <NAME>ton\n  * Fix use of .IP macro in manpage.\n    Thanks,
  <NAME>\n  * Fix some mispellings.\n    Thanks, Sean Whitton\n  * Makefile:
  Propagate LDFLAGS, CFLAGS, and CPPFLAGS through ghc.\n  * Makefile: Allow setting
  BUILDER=./Setup to build w/o cabal or stack.\n  * Makefile: Allow setting BUILDEROPTIONS=-j1
  to avoid concurrent\n    build, which should make build reproducible.\n\n -- Joey
  Hess <<EMAIL>>  Sat, 22 Oct 2016 19:01:24 -0400\n\nkeysafe (0.20161007) unstable;
  urgency=medium\n\n  * Check if --store-local directory is writable.\n  * Removed
  dependency on crypto-random.\n  * Added a LSB init script, for non-systemd systems.\n
  \   (It currently uses Debian's start-stop-daemon, so would need porting\n    for
  other distributions.)\n  * /etc/default/keysafe is read by both the systemd service
  file and the\n    init script, and contains configuration for the keysafe server.\n\n
  -- <NAME> <<EMAIL>>  Thu, 20 Oct 2016 14:44:07 -0400\n\nkeysafe (0.20161006)
  unstable; urgency=medium\n\n  * New --add-storage-directory and --add-server options,
  which can be used\n    to make keysafe backup/restore using additional locations.\n
  \ * Removed --store-local option; use --add-storage-directory instead.\n  * Fix
  bugs with entry of gpg keyid in the keysafe.log.\n  * Fix bug in --autostart that
  caused the full gpg keyid to be\n    used to generate object names, which made restores
  would only work\n    when --gpgkeyid was specifid.\n  * Remove embedded copy of
  argon2 binding, depend on fixed version of package.\n\n -- <NAME> <<EMAIL>>
  \ Wed, 05 Oct 2016 20:54:51 -0400\n\nkeysafe (0.20160927) unstable; urgency=medium\n\n
  \ * Makefile: Avoid rebuilding on make install, so that sudo make install works.\n
  \ * Added --chaff-max-delay option for slower chaffing.\n  * Fix embedded copy of
  Argon2 to not use Word64, fixing build on 32 bit\n    systems.\n  * Randomize the
  server list.\n  * Don't upload more than neededshares-1 shares to Alternate servers\n
  \   without asking the user if they want to do this potentially dangerous\n    action.\n
  \ * Added a second keysafe server to the server list. It's provided\n    by Marek
  Isalski at Faelix. Currently located in UK, but planned move\n    to CH. Currently
  at Alternate level until verification is complete.\n  * Server: --motd can be used
  to provide a Message Of The Day.\n  * Added --check-servers mode, which is useful
  both at the command line\n    to see what servers keysafe knows about, and as a
  cron job.\n  * Server: Round number of objects down to the nearest thousand, to
  avoid\n    leaking too much data about when objects are uploaded to servers.\n  *
  Filter out escape sequences and any other unusual characters when\n    writing all
  messages to the console.\n\n -- <NAME> <<EMAIL>>  Tue, 27 Sep 2016 20:25:35
  -0400\n\nkeysafe (0.20160922) unstable; urgency=medium\n\n  * Keysafe now knows
  about 3 servers, although only 1 is currently in\n    operation. It will queue uploads
  to the other 2 servers until\n    they are added in a later keysafe release.\n  *
  Added --autostart mode, and make both keysafe --backup and \n    the Makefile install
  a FDO desktop autostart file to use it.\n  * In --autostart mode, retry any queued
  uploads.\n  * In --autostart mode, check for gpg keys that have not been\n    backed
  up, and offer to back them up. Only ask once per key.\n  * Changed format of ~/.keysafe/backup.log\n
  \ * Server: Reduce number of buckets in rate limiter, avoiding ones with very low\n
  \   proof of work.\n  * Server: Make rate limiter adapt to ongoing load more quickly
  -- every 15\n    minutes instead of every 60.\n  * Server: Added --backup-server
  and --restore-server to aid in backing \n    up keysafe servers with minimal information
  leakage.\n\n -- <NAME> <<EMAIL>>  Thu, 22 Sep 2016 15:10:56 -0400\n\nkeysafe
  (0.20160914) unstable; urgency=medium\n\n  * Fix bug that prevented keysafe --server
  from running when there was no\n    controlling terminal and zenity was not installed.\n
  \ * Added --name and --othername options.\n  * Added proof of work to client/server
  protocol.\n  * Server-side rate limiting and DOS protection.\n  * server: Added
  --months-to-fill-half-disk option, defaulting to 12.\n  * Several new dependencies.\n
  \ * Another fix to gpg secret key list parser.\n  * Warn when uploads fail and are
  put in the upload queue.\n  * Warn when --uploadqueued fails to upload to servers.\n
  \ * Fix --uploadqueued bug that prevented deletion of local queued file.\n  * Added
  --chaff mode which uploads random junk to servers.\n    This is useful both to test
  the server throttling of uploads,\n    and to make it harder for servers to know
  if an object actually\n    contains secret key information.\n  * Store information
  about backed up keys in ~/.keysafe/backup.log\n    This can be deleted by the user
  at any time, but it's useful\n    in case a server is known to be compromised, or
  a problem is found\n    with keysafe's implementation that makes a backup insecure.\n\n
  -- <NAME> <<EMAIL>>  Wed, 14 Sep 2016 17:08:55 -0400\n\nkeysafe (0.20160831)
  unstable; urgency=medium\n\n  * Server implementation is ready for initial deployment.\n
  \ * Keysafe as a client is not yet ready for production use.\n  * Removed embedded
  copy of secret-sharing library, since finite-field\n    only supports prime fields.
  This caused shares to be twice the size of\n    the input value.\n  * Reduced chunk
  size to 32kb due to share size doubling.\n  * Fix gpg secret key list parser to
  support gpg 2.\n  * Tuned argon2 hash parameters on better hardware than my fanless
  laptop.\n  * Improve time estimates, taking into account the number of cores.\n
  \ * Added basic test suite.\n  * Added options: --store-directory --test --port
  --address\n  * Added a Makefile\n  * Added a systemd service file.\n  * Added a
  desktop file.\n\n -- <NAME> <<EMAIL>>  Wed, 31 Aug 2016 15:43:30 -0400\n\nkeysafe
  (0.20160819) unstable; urgency=medium\n\n  * First release of keysafe. This is not
  yet ready for production use.\n  * Network support is not yet implemented, but --store-local
  works for\n    testing with local data storage.\n  * Data backed up with keysafe
  version 0.* will not be able to be restored\n    by any later version! Once the
  data format stabalizes, keysafe version\n    1 data will be supported by every later
  version.\n  * Argon2 hashes are not yet tuned for modern hardware, but only for
  my\n    laptop. So, cracking cost estimates may be low. To help with this\n    tuning,
  run `keysafe --bechmark` and send the output to me.\n\n -- <NAME> <<EMAIL>>
  \ Fri, 19 Aug 2016 19:41:06 -0400\n"
basic-deps:
  warp: ==3.2.*
  http-client: (>=0.5.3 && <0.6)
  exceptions: ==0.8.*
  argon2: ==1.2.*
  socks: ==0.5.*
  bytestring: ==0.10.*
  wai: ==3.2.*
  MonadRandom: (>=0.4 && <0.6)
  unix: ==2.7.*
  split: ==0.2.*
  stm: ==2.4.*
  base: (>=4.5 && <5.0)
  disk-free-space: ==0.1.*
  time: (>=1.5 && <1.7)
  servant-client: (>=0.7 && <0.12)
  text: ==1.2.*
  token-bucket: ==0.1.*
  raaz: ==0.1.1
  unbounded-delays: ==0.1.*
  SafeSemaphore: ==0.10.*
  unix-compat: ==0.4.*
  filepath: ==1.4.*
  process: (>=1.2 && <1.5)
  network: ==2.6.*
  async: ==2.1.*
  lifted-base: ==0.2.*
  servant-server: (>=0.7 && <0.12)
  servant: (>=0.7 && <0.12)
  random-shuffle: ==0.0.*
  fast-logger: ==2.4.*
  containers: ==0.5.*
  readline: ==1.0.*
  utf8-string: ==1.0.*
  zxcvbn-c: ==1.0.*
  transformers: (>=0.4 && <0.6)
  optparse-applicative: (>=0.12 && <0.14)
  random: ==1.1.*
  deepseq: ==1.4.*
  bloomfilter: ==2.0.*
  secret-sharing: ==1.0.*
  aeson: (>=0.11 && <1.2)
  directory: (>=1.2 && <1.4)
all-versions:
- '0.20160819'
- '0.20160831'
- '0.20160914'
- '0.20160922'
- '0.20160927'
- '0.20161006'
- '0.20161007'
- '0.20161022'
- '0.20161107'
- '0.20170122'
- '0.20170303'
- '0.20170811'
author: <NAME>
latest: '0.20170811'
description-type: haddock
description: ! 'Keysafe backs up a secret key to several cloud servers, split up

  so that no one server can access the whole secret by itself.


  A password is used to encrypt the data, and it is made expensive

  to decrypt, so password cracking is infeasibly expensive.'
license-name: AGPL-3<commit_msg>Update from Hackage at 2018-03-26T12:19:02Z<commit_after>homepage: https://keysafe.branchable.com/
changelog-type: text
hash: 0f3a2ab1d80a205d0aae685917f1bf4b3e6f7c5ee1f659c68658c7dbfe5ac5b0
test-bench-deps: {}
maintainer: <NAME> <<EMAIL>>
synopsis: back up a secret key securely to the cloud
changelog: ! "keysafe (0.20180326) unstable; urgency=medium\n\n  * Updated to argon2-1.3.\n\n
  -- <NAME> <<EMAIL>>  Mon, 26 Mar 2018 08:12:00 -0400\n\nkeysafe (0.20170811)
  unstable; urgency=medium\n\n  * Updated to http-client 0.5.3, servant 0.11, and
  stackage lts-9.0.\n\n -- <NAME> <<EMAIL>>  Fri, 11 Aug 2017 18:57:15 -0400\n\nkeysafe
  (0.20170303) unstable; urgency=medium\n\n  * Updated to use raaz-0.1.1.\n\n -- Joey
  Hess <<EMAIL>>  Fri, 03 Mar 2017 16:15:47 -0400\n\nkeysafe (0.20170122) unstable;
  urgency=medium\n\n  * Adjust cabal bounds to allow building with ghc 8.0.\n    However,
  the stack.yaml is still using an old LTS version\n    to avoid polynomial's failure
  to build with ghc 8.0\n    (https://github.com/mokus0/polynomial/issues/8)\n  *
  Clarify that dollars in cost estimates are USD.\n  * Keysafe has a new website,
  https://keysafe.branchable.com/\n\n -- <NAME> <<EMAIL>>  Sun, 22 Jan 2017
  09:44:17 -0400\n\nkeysafe (0.20161107) unstable; urgency=medium\n\n  * The third
  keysafe server is now available, provided by Purism.\n  * Purism's keysafe server
  has been vetted to Recommended level!\n  * Change default for --port to 4242.\n
  \ * Fix --check-server to not fail when the server has not had anything\n    stored
  on it yet.\n  * --upload-queued: Exit nonzero if unable to upload all queued objects.\n
  \ * --autostart: If unable to upload all queued objects initially,\n    delay between
  1 and 2 hours and try again.\n  * Better suggestion when user is having difficulty
  thinking of a strong\n    enough password.\n  * Defer requesting secret key from
  gpg until just before backup, so the\n    user knows why gpg is asking for this
  secret key to be backed up.\n\n -- <NAME> <<EMAIL>>  Mon, 07 Nov 2016 15:05:29
  -0400\n\nkeysafe (0.20161022) unstable; urgency=medium\n\n  * Add keywords to desktop
  file.\n    Thanks, <NAME>\n  * Fix use of .IP macro in manpage.\n    Thanks,
  <NAME>\n  * Fix some mispellings.\n    Thanks, <NAME>\n  * Makefile:
  Propagate LDFLAGS, CFLAGS, and CPPFLAGS through ghc.\n  * Makefile: Allow setting
  BUILDER=./Setup to build w/o cabal or stack.\n  * Makefile: Allow setting BUILDEROPTIONS=-j1
  to avoid concurrent\n    build, which should make build reproducible.\n\n -- <NAME> <<EMAIL>>  Sat, 22 Oct 2016 19:01:24 -0400\n\nkeysafe (0.20161007) unstable;
  urgency=medium\n\n  * Check if --store-local directory is writable.\n  * Removed
  dependency on crypto-random.\n  * Added a LSB init script, for non-systemd systems.\n
  \   (It currently uses Debian's start-stop-daemon, so would need porting\n    for
  other distributions.)\n  * /etc/default/keysafe is read by both the systemd service
  file and the\n    init script, and contains configuration for the keysafe server.\n\n
  -- <NAME> <<EMAIL>>  Thu, 20 Oct 2016 14:44:07 -0400\n\nkeysafe (0.20161006)
  unstable; urgency=medium\n\n  * New --add-storage-directory and --add-server options,
  which can be used\n    to make keysafe backup/restore using additional locations.\n
  \ * Removed --store-local option; use --add-storage-directory instead.\n  * Fix
  bugs with entry of gpg keyid in the keysafe.log.\n  * Fix bug in --autostart that
  caused the full gpg keyid to be\n    used to generate object names, which made restores
  would only work\n    when --gpgkeyid was specifid.\n  * Remove embedded copy of
  argon2 binding, depend on fixed version of package.\n\n -- <NAME> <<EMAIL>>
  \ Wed, 05 Oct 2016 20:54:51 -0400\n\nkeysafe (0.20160927) unstable; urgency=medium\n\n
  \ * Makefile: Avoid rebuilding on make install, so that sudo make install works.\n
  \ * Added --chaff-max-delay option for slower chaffing.\n  * Fix embedded copy of
  Argon2 to not use Word64, fixing build on 32 bit\n    systems.\n  * Randomize the
  server list.\n  * Don't upload more than neededshares-1 shares to Alternate servers\n
  \   without asking the user if they want to do this potentially dangerous\n    action.\n
  \ * Added a second keysafe server to the server list. It's provided\n    by <NAME> at Faelix. Currently located in UK, but planned move\n    to CH. Currently
  at Alternate level until verification is complete.\n  * Server: --motd can be used
  to provide a Message Of The Day.\n  * Added --check-servers mode, which is useful
  both at the command line\n    to see what servers keysafe knows about, and as a
  cron job.\n  * Server: Round number of objects down to the nearest thousand, to
  avoid\n    leaking too much data about when objects are uploaded to servers.\n  *
  Filter out escape sequences and any other unusual characters when\n    writing all
  messages to the console.\n\n -- <NAME> <<EMAIL>>  Tue, 27 Sep 2016 20:25:35
  -0400\n\nkeysafe (0.20160922) unstable; urgency=medium\n\n  * Keysafe now knows
  about 3 servers, although only 1 is currently in\n    operation. It will queue uploads
  to the other 2 servers until\n    they are added in a later keysafe release.\n  *
  Added --autostart mode, and make both keysafe --backup and \n    the Makefile install
  a FDO desktop autostart file to use it.\n  * In --autostart mode, retry any queued
  uploads.\n  * In --autostart mode, check for gpg keys that have not been\n    backed
  up, and offer to back them up. Only ask once per key.\n  * Changed format of ~/.keysafe/backup.log\n
  \ * Server: Reduce number of buckets in rate limiter, avoiding ones with very low\n
  \   proof of work.\n  * Server: Make rate limiter adapt to ongoing load more quickly
  -- every 15\n    minutes instead of every 60.\n  * Server: Added --backup-server
  and --restore-server to aid in backing \n    up keysafe servers with minimal information
  leakage.\n\n -- <NAME> <<EMAIL>>  Thu, 22 Sep 2016 15:10:56 -0400\n\nkeysafe
  (0.20160914) unstable; urgency=medium\n\n  * Fix bug that prevented keysafe --server
  from running when there was no\n    controlling terminal and zenity was not installed.\n
  \ * Added --name and --othername options.\n  * Added proof of work to client/server
  protocol.\n  * Server-side rate limiting and DOS protection.\n  * server: Added
  --months-to-fill-half-disk option, defaulting to 12.\n  * Several new dependencies.\n
  \ * Another fix to gpg secret key list parser.\n  * Warn when uploads fail and are
  put in the upload queue.\n  * Warn when --uploadqueued fails to upload to servers.\n
  \ * Fix --uploadqueued bug that prevented deletion of local queued file.\n  * Added
  --chaff mode which uploads random junk to servers.\n    This is useful both to test
  the server throttling of uploads,\n    and to make it harder for servers to know
  if an object actually\n    contains secret key information.\n  * Store information
  about backed up keys in ~/.keysafe/backup.log\n    This can be deleted by the user
  at any time, but it's useful\n    in case a server is known to be compromised, or
  a problem is found\n    with keysafe's implementation that makes a backup insecure.\n\n
  -- <NAME> <<EMAIL>>  Wed, 14 Sep 2016 17:08:55 -0400\n\nkeysafe (0.20160831)
  unstable; urgency=medium\n\n  * Server implementation is ready for initial deployment.\n
  \ * Keysafe as a client is not yet ready for production use.\n  * Removed embedded
  copy of secret-sharing library, since finite-field\n    only supports prime fields.
  This caused shares to be twice the size of\n    the input value.\n  * Reduced chunk
  size to 32kb due to share size doubling.\n  * Fix gpg secret key list parser to
  support gpg 2.\n  * Tuned argon2 hash parameters on better hardware than my fanless
  laptop.\n  * Improve time estimates, taking into account the number of cores.\n
  \ * Added basic test suite.\n  * Added options: --store-directory --test --port
  --address\n  * Added a Makefile\n  * Added a systemd service file.\n  * Added a
  desktop file.\n\n -- <NAME> <<EMAIL>>  Wed, 31 Aug 2016 15:43:30 -0400\n\nkeysafe
  (0.20160819) unstable; urgency=medium\n\n  * First release of keysafe. This is not
  yet ready for production use.\n  * Network support is not yet implemented, but --store-local
  works for\n    testing with local data storage.\n  * Data backed up with keysafe
  version 0.* will not be able to be restored\n    by any later version! Once the
  data format stabalizes, keysafe version\n    1 data will be supported by every later
  version.\n  * Argon2 hashes are not yet tuned for modern hardware, but only for
  my\n    laptop. So, cracking cost estimates may be low. To help with this\n    tuning,
  run `keysafe --bechmark` and send the output to me.\n\n -- <NAME> <<EMAIL>>
  \ Fri, 19 Aug 2016 19:41:06 -0400\n"
basic-deps:
  warp: ==3.2.*
  http-client: (>=0.5.3 && <0.6)
  exceptions: ==0.8.*
  argon2: ==1.3.*
  socks: ==0.5.*
  bytestring: ==0.10.*
  wai: ==3.2.*
  text-short: ==0.1.*
  MonadRandom: (>=0.4 && <0.6)
  unix: ==2.7.*
  split: ==0.2.*
  stm: ==2.4.*
  base: (>=4.5 && <5.0)
  disk-free-space: ==0.1.*
  time: (>=1.5 && <1.7)
  servant-client: (>=0.7 && <0.12)
  text: ==1.2.*
  token-bucket: ==0.1.*
  raaz: ==0.1.1
  unbounded-delays: ==0.1.*
  SafeSemaphore: ==0.10.*
  unix-compat: ==0.4.*
  filepath: ==1.4.*
  process: (>=1.2 && <1.5)
  network: ==2.6.*
  async: ==2.1.*
  lifted-base: ==0.2.*
  servant-server: (>=0.7 && <0.12)
  servant: (>=0.7 && <0.12)
  random-shuffle: ==0.0.*
  fast-logger: ==2.4.*
  containers: ==0.5.*
  readline: ==1.0.*
  utf8-string: ==1.0.*
  zxcvbn-c: ==1.0.*
  transformers: (>=0.4 && <0.6)
  optparse-applicative: (>=0.12 && <0.14)
  random: ==1.1.*
  deepseq: ==1.4.*
  bloomfilter: ==2.0.*
  secret-sharing: ==1.0.*
  aeson: (>=0.11 && <1.2)
  directory: (>=1.2 && <1.4)
all-versions:
- '0.20160819'
- '0.20160831'
- '0.20160914'
- '0.20160922'
- '0.20160927'
- '0.20161006'
- '0.20161007'
- '0.20161022'
- '0.20161107'
- '0.20170122'
- '0.20170303'
- '0.20170811'
- '0.20180326'
author: <NAME>
latest: '0.20180326'
description-type: haddock
description: ! 'Keysafe backs up a secret key to several cloud servers, split up

  so that no one server can access the whole secret by itself.


  A password is used to encrypt the data, and it is made expensive

  to decrypt, so password cracking is infeasibly expensive.'
license-name: AGPL-3
{'fraction_non_alphanumeric': 0.11701871722080547, 'fraction_numerical': 0.062406774767839096, 'mean_word_length': 3.024007744433688, 'pattern_counts': {'":': 0, '<': 114, '<?xml version=': 0, '>': 114, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1969930', 'n_tokens_mistral': 7924, 'n_tokens_neox': 7007, 'n_words': 2668}