From a154e248ae4648d64960b699913bed910d1d0a8d Mon Sep 17 00:00:00 2001 From: Joseph Poon Date: Wed, 16 Dec 2015 10:50:05 -0800 Subject: [PATCH 1/2] Taking a look... --- wallet/shachain/hash_chain.go | 18 ++++++++++++++++++ wallet/shachain/hash_chain_test.go | 2 ++ 2 files changed, 20 insertions(+) diff --git a/wallet/shachain/hash_chain.go b/wallet/shachain/hash_chain.go index 4c3a8e52d..9fbab7c25 100644 --- a/wallet/shachain/hash_chain.go +++ b/wallet/shachain/hash_chain.go @@ -1,8 +1,10 @@ package wallet import "github.com/btcsuite/btcd/wire" +import "fmt" //TODO(j) remove me later... // TODO(roasbeef): port Rusty's hash-chain stuff +//http://ccodearchive.net/info/crypto/shachain.html // * or just use HD chains based off of CodeShark's proposal? // chainFragment... @@ -18,9 +20,25 @@ type ShaChain struct { chainFragments []chainFragment } +func Derive(from uint64, to uint64, fromHash wire.ShaHash, toHash wire.ShaHash) { + var branches uint64 + branches = from ^ to + + //TODO(j) remove me Dumb test + fmt.Println(branches) + fmt.Println(from) + fmt.Println(to) +} + +//Generate a new ShaChain from a seed +func NewShaChainFromSeed(seed wire.ShaHash, index uint64, hash wire.ShaHash) { + Derive(0, ^uint64(0), seed, hash) +} + // NewShaChain... func NewShaChain(seed wire.ShaHash) *ShaChain { // TODO(roasbeef): from/to or static size? + return new(ShaChain) } // NextHash... diff --git a/wallet/shachain/hash_chain_test.go b/wallet/shachain/hash_chain_test.go index 23a750732..d876cb18b 100644 --- a/wallet/shachain/hash_chain_test.go +++ b/wallet/shachain/hash_chain_test.go @@ -1 +1,3 @@ package wallet + +import "testing" From 51dab184469414d4c62550572c4c4ea995ba8acf Mon Sep 17 00:00:00 2001 From: Joseph Poon Date: Wed, 16 Dec 2015 10:57:22 -0800 Subject: [PATCH 2/2] Committed the wrong _test file earlier... --- wallet/shachain/hash_chain_test.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/wallet/shachain/hash_chain_test.go b/wallet/shachain/hash_chain_test.go index d876cb18b..e82c03cc7 100644 --- a/wallet/shachain/hash_chain_test.go +++ b/wallet/shachain/hash_chain_test.go @@ -1,3 +1,13 @@ package wallet -import "testing" +import ( + //"fmt" + "github.com/btcsuite/btcd/wire" + "testing" +) + +func TestRunShaChain(t *testing.T) { + var seed wire.ShaHash + var hash wire.ShaHash + NewShaChainFromSeed(seed, 0, hash) +}