lnwallet: update TestRevocationKeyDerivation to use new derivation

This commit is contained in:
Olaoluwa Osuntokun 2017-07-29 18:35:47 -07:00
parent 44ffcf2156
commit 016f56e8e3
No known key found for this signature in database
GPG Key ID: 9CC5B105D03521A2
1 changed files with 17 additions and 13 deletions

View File

@ -185,24 +185,28 @@ func TestCommitmentSpendValidation(t *testing.T) {
func TestRevocationKeyDerivation(t *testing.T) { func TestRevocationKeyDerivation(t *testing.T) {
t.Parallel() t.Parallel()
revocationPreimage := testHdSeed[:] // First, we'll generate a commitment point, and a commitment secret.
// These will be used to derive the ultimate revocation keys.
revocationPreimage := testHdSeed.CloneBytes()
commitSecret, commitPoint := btcec.PrivKeyFromBytes(btcec.S256(),
revocationPreimage)
priv, pub := btcec.PrivKeyFromBytes(btcec.S256(), testWalletPrivKey) // With the commitment secrets generated, we'll now create the base
// keys we'll use to derive the revocation key from.
basePriv, basePub := btcec.PrivKeyFromBytes(btcec.S256(),
testWalletPrivKey)
revocationPub := DeriveRevocationPubkey(pub, revocationPreimage) // With the point and key obtained, we can now derive the revocation
// key itself.
revocationPub := DeriveRevocationPubkey(basePub, commitPoint)
revocationPriv := DeriveRevocationPrivKey(priv, revocationPreimage) // The revocation public key derived from the original public key, and
x, y := btcec.S256().ScalarBaseMult(revocationPriv.D.Bytes()) // the one derived from the private key should be identical.
derivedRevPub := &btcec.PublicKey{ revocationPriv := DeriveRevocationPrivKey(basePriv, commitSecret)
Curve: btcec.S256(), if !revocationPub.IsEqual(revocationPriv.PubKey()) {
X: x, t.Fatalf("derived public keys don't match!")
Y: y,
} }
// The the revocation public key derived from the original public key,
// and the one derived from the private key should be identical.
if !revocationPub.IsEqual(derivedRevPub) {
t.Fatalf("derived public keys don't match!")
// TestTweakKeyDerivation tests that given a public key, and commitment tweak, // TestTweakKeyDerivation tests that given a public key, and commitment tweak,
// then we're able to properly derive a tweaked private key that corresponds to // then we're able to properly derive a tweaked private key that corresponds to
// the computed tweak public key. This scenario ensure that our key derivation // the computed tweak public key. This scenario ensure that our key derivation