tahoe-chk: The Tahoe-LAFS' Content-Hash-Key (CHK) cryptographic protocol.

[ bsd3, cryptography, library, parsers, program, security ] [ Propose Tags ] [ Report a vulnerability ]

Reversibly encrypt plaintext, encode ciphertext to shares, and serialize shares to bytes such that confidentiality, integrity, and authenticity are assured.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.2, 0.2.0.0
Change log ChangeLog.md
Dependencies aeson (>=1.4.7 && <2.2), async (>=2.2.2 && <2.3), base (>=4.7 && <5), base32 (>=0.2.1 && <0.4), base64-bytestring (>=1.0.0.3 && <1.3), binary (>=0.8.6 && <0.9), bytestring (>=0.10.8.2 && <0.12), concurrency (>=1.11 && <2), containers (>=0.6.0.1 && <0.7), cryptonite (>=0.27 && <0.31), deepseq (>=1.1 && <1.6), directory (>=1.3.3 && <1.4), extra (>=1.7.7 && <1.8), fec (>=0.1.1 && <0.2), filepath (>=1.4.2 && <1.5), lens (>=5.0 && <5.3), megaparsec (>=8.0 && <9.3), memory (>=0.15 && <0.19), network-byte-order (>=0.1.5 && <0.2), optparse-applicative (>=0.15.1.0 && <0.19), parser-combinators (>=1.2.1 && <1.4), primitive (>=0.7.0.1 && <0.8), tahoe-chk, text (>=1.2.3.1 && <2.2), tree-diff (>=0.1 && <0.3), utility-ht (>=0.0.15 && <0.1) [details]
Tested with ghc ==8.6.5 || ==8.10.7 || ==9.0.2 || ==9.2.4 || ==9.4.3
License BSD-3-Clause
Copyright 2020-2023 The Authors
Author Jean-Paul Calderone and others
Maintainer PrivateStorage.io, Inc.
Category Cryptography, Library, Parsers, Security
Home page https://whetstone.private.storage/privatestorage/tahoe-chk
Bug tracker https://whetstone.private.storage/privatestorage/tahoe-chk/-/issues
Source repo head: git clone gitlab@whetstone.private.storage:privatestorage/tahoe-chk.git
Uploaded by jcalderone at 2023-10-02T16:11:46Z
Distributions
Reverse Dependencies 3 direct, 0 indirect [details]
Executables tahoe-chk-encrypt
Downloads 88 total (8 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for tahoe-chk-0.2.0.0

[back to package description]

Tahoe-CHK

What is it?

Tahoe-CHK is a Haskell implementation of the Tahoe-LAFS CHK crytographic protocol. It aims for bit-for-bit compatibility with the original Python implementation.

It will not include an implementation of any network protocol for transferring CHK shares. However, its APIs are intended to be easy to integrate with such an implementation.

What is the current state?

  • Convergent encryption is supported and compatible with Tahoe-LAFS.
  • CHK encoding is implemented but some cases are unsupported:
    • It is not allowed that k == 1 or k == n.
  • CHK decoding is implemented with the same limitations as for encoding.
    • The decoding process:
      • Authenticates the data being decoded using the capability.
      • Ensures the integrity of the data being decoded using the embedded hashes.

Why does it exist?

A Haskell implementation can be used in places the original Python implementation cannot be (for example, runtime environments where it is difficult to have a Python interpreter). Additionally, with the benefit of the experience gained from creating and maintaining the Python implementation, a number of implementation decisions can be made differently to produce a more efficient, more flexible, simpler implementation and API. Also, the Python implementation claims no public library API for users outside of the Tahoe-LAFS project itself.