An open API service providing package, version and dependency metadata of many open source software ecosystems and registries.

github.com/codahale/kht

Package kht provides an implementation of a keyed hash tree. A keyed hash tree is a hash tree which uses a keyed hash algorithm (e.g., HMAC), used to derive block-level keys for encrypting large files. The notion of a keyed hash tree comes from Rajendran, Li, et al's papers on Horus, a large-scale encrypted storage system (http://www.ssrc.ucsc.edu/pub/rajendran11-pdsw.html and https://www.usenix.org/conference/fast13/technical-sessions/presentation/li_yan). A keyed hash tree with a branching factor of 2 has log2(maxSize/blockSize) levels, each with increasing numbers of keys. The root node (the top of the diagram) uses the tree's root key, and the leaf nodes (the bottom of the diagram) contain the keys used to encrypt the corresponding blocks of data. The nodes are not materialized, which means a keyed hash table takes a very small amount of memory (~100 bytes), and deriving block keys is very fast (~8μs for each 1KiB block of a 2GiB tree with a branching factor of 1024 using HMAC-SHA-256).

Ecosystem
proxy.golang.org
Latest Release
v0.0.0-20141010043858-0ac8bc747ece
over 11 years ago
Versions
1
Links
Registry proxy.golang.org
Source Repository
Docs Documentation
JSON API View JSON
CodeMeta codemeta.json
Package Details
PURL pkg:golang/github.com/codahale/kht
spec
License MIT
Namespace github.com/codahale
First Release over 11 years ago
Last Synced 6 days ago
Repository
Stars 6 on GitHub
Forks 0 on GitHub
Rankings on proxy.golang.org
Overall Top 7.9%