lbcwallet/waddrmgr
Josh Rickmar 4d9c43593d Consolidate and optimize zero functions.
This introduce a new internal package to deal with the explicit
clearing of data (such as private keys) in byte slices, byte arrays
(32 and 64-bytes long), and multi-precision "big" integers.

Benchmarks from a xeon e3 (Xor is the zeroing funcion which Bytes
replaces):

BenchmarkXor32  30000000                52.1 ns/op
BenchmarkXor64  20000000                91.5 ns/op
BenchmarkRange32        50000000                31.8 ns/op
BenchmarkRange64        30000000                49.5 ns/op
BenchmarkBytes32        200000000               10.1 ns/op
BenchmarkBytes64        100000000               15.4 ns/op
BenchmarkBytea32        1000000000               2.24 ns/op
BenchmarkBytea64        300000000                4.46 ns/op

Removes an XXX from the votingpool package.
2015-03-05 21:32:33 -05:00
..
address.go Consolidate and optimize zero functions. 2015-03-05 21:32:33 -05:00
common_test.go Switch to new waddrmgr package 2015-03-02 11:55:42 -06:00
cov_report.sh Provide new wallet address manager package. 2014-10-13 16:19:09 -05:00
db.go waddrmgr: Make create/update logic more explicit. 2015-03-04 14:12:47 -06:00
doc.go waddrmgr: Update more documentation for walletdb. 2015-02-10 00:17:28 -06:00
error.go waddrmgr: Make create/update logic more explicit. 2015-03-04 14:12:47 -06:00
error_test.go waddrmgr: Make create/update logic more explicit. 2015-03-04 14:12:47 -06:00
internal_test.go waddrmgr: Make create/update logic more explicit. 2015-03-04 14:12:47 -06:00
manager.go Consolidate and optimize zero functions. 2015-03-05 21:32:33 -05:00
manager_test.go waddrmgr: Make create/update logic more explicit. 2015-03-04 14:12:47 -06:00
pool_error.go Implement the deposit side of Voting Pools 2014-11-12 11:41:44 -06:00
README.md Update btcwallet import paths to new location. 2015-01-17 00:25:53 -06:00
sync.go Update btcwire path import paths to new location. 2015-02-05 15:41:38 -06:00
test_coverage.txt Provide new wallet address manager package. 2014-10-13 16:19:09 -05:00

waddrmgr

[Build Status] (https://travis-ci.org/btcsuite/btcwallet)

Package waddrmgr provides a secure hierarchical deterministic wallet address manager.

A suite of tests is provided to ensure proper functionality. See test_coverage.txt for the gocov coverage report. Alternatively, if you are running a POSIX OS, you can run the cov_report.sh script for a real-time report. Package waddrmgr is licensed under the liberal ISC license.

Feature Overview

  • BIP0032 hierarchical deterministic keys
  • BIP0043/BIP0044 multi-account hierarchy
  • Strong focus on security:
    • Fully encrypted database including public information such as addresses as well as private information such as private keys and scripts needed to redeem pay-to-script-hash transactions
    • Hardened against memory scraping through the use of actively clearing private material from memory when locked
    • Different crypto keys used for public, private, and script data
    • Ability for different passphrases for public and private data
    • Scrypt-based key derivation
    • NaCl-based secretbox cryptography (XSalsa20 and Poly1305)
  • Scalable design:
    • Multi-tier key design to allow instant password changes regardless of the number of addresses stored
    • Import WIF keys
    • Import pay-to-script-hash scripts for things such as multi-signature transactions
    • Ability to export a watching-only version which does not contain any private key material
    • Programmatically detectable errors, including encapsulation of errors from packages it relies on
    • Address synchronization capabilities
  • Comprehensive test coverage

Documentation

[GoDoc] (http://godoc.org/github.com/btcsuite/btcwallet/waddrmgr)

Full go doc style documentation for the project can be viewed online without installing this package by using the GoDoc site here: http://godoc.org/github.com/btcsuite/btcwallet/waddrmgr

You can also view the documentation locally once the package is installed with the godoc tool by running godoc -http=":6060" and pointing your browser to http://localhost:6060/pkg/github.com/btcsuite/btcwallet/waddrmgr

Installation

$ go get github.com/btcsuite/btcwallet/waddrmgr

Package waddrmgr is licensed under the copyfree ISC License.