• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

lightningnetwork / lnd / 11216766535

07 Oct 2024 01:37PM UTC coverage: 57.817% (-1.0%) from 58.817%
11216766535

Pull #9148

github

ProofOfKeags
lnwire: remove kickoff feerate from propose/commit
Pull Request #9148: DynComms [2/n]: lnwire: add authenticated wire messages for Dyn*

571 of 879 new or added lines in 16 files covered. (64.96%)

23253 existing lines in 251 files now uncovered.

99022 of 171268 relevant lines covered (57.82%)

38420.67 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

29.63
/lntest/mock/secretkeyring.go
1
package mock
2

3
import (
4
        "github.com/btcsuite/btcd/btcec/v2"
5
        "github.com/btcsuite/btcd/btcec/v2/ecdsa"
6
        "github.com/btcsuite/btcd/btcec/v2/schnorr"
7
        "github.com/btcsuite/btcd/chaincfg/chainhash"
8
        "github.com/btcsuite/btcd/txscript"
9
        "github.com/lightningnetwork/lnd/keychain"
10
)
11

12
// SecretKeyRing is a mock implementation of the SecretKeyRing interface.
13
type SecretKeyRing struct {
14
        RootKey *btcec.PrivateKey
15
}
16

17
// DeriveNextKey currently returns dummy values.
18
func (s *SecretKeyRing) DeriveNextKey(
19
        _ keychain.KeyFamily) (keychain.KeyDescriptor, error) {
713✔
20

713✔
21
        return keychain.KeyDescriptor{
713✔
22
                PubKey: s.RootKey.PubKey(),
713✔
23
        }, nil
713✔
24
}
713✔
25

26
// DeriveKey currently returns dummy values.
27
func (s *SecretKeyRing) DeriveKey(
28
        _ keychain.KeyLocator) (keychain.KeyDescriptor, error) {
6✔
29

6✔
30
        return keychain.KeyDescriptor{
6✔
31
                PubKey: s.RootKey.PubKey(),
6✔
32
        }, nil
6✔
33
}
6✔
34

35
// DerivePrivKey currently returns dummy values.
36
func (s *SecretKeyRing) DerivePrivKey(
37
        _ keychain.KeyDescriptor) (*btcec.PrivateKey, error) {
×
38

×
39
        return s.RootKey, nil
×
40
}
×
41

42
// ECDH currently returns dummy values.
43
func (s *SecretKeyRing) ECDH(_ keychain.KeyDescriptor,
44
        _ *btcec.PublicKey) ([32]byte, error) {
102✔
45

102✔
46
        return [32]byte{}, nil
102✔
47
}
102✔
48

49
// SignMessage signs the passed message and ignores the KeyDescriptor.
50
func (s *SecretKeyRing) SignMessage(_ keychain.KeyLocator,
51
        msg []byte, doubleHash bool) (*ecdsa.Signature, error) {
×
52

×
53
        var digest []byte
×
54
        if doubleHash {
×
55
                digest = chainhash.DoubleHashB(msg)
×
56
        } else {
×
57
                digest = chainhash.HashB(msg)
×
58
        }
×
59
        return ecdsa.Sign(s.RootKey, digest), nil
×
60
}
61

62
// SignMessageCompact signs the passed message.
63
func (s *SecretKeyRing) SignMessageCompact(_ keychain.KeyLocator,
64
        msg []byte, doubleHash bool) ([]byte, error) {
×
65

×
66
        var digest []byte
×
67
        if doubleHash {
×
68
                digest = chainhash.DoubleHashB(msg)
×
69
        } else {
×
70
                digest = chainhash.HashB(msg)
×
71
        }
×
72
        return ecdsa.SignCompact(s.RootKey, digest, true)
UNCOV
73
}
×
74

75
// SignMessageSchnorr signs the passed message and ignores the KeyDescriptor.
76
func (s *SecretKeyRing) SignMessageSchnorr(_ keychain.KeyLocator,
77
        msg []byte, doubleHash bool, taprootTweak []byte,
78
        tag []byte) (*schnorr.Signature, error) {
79

×
80
        var digest []byte
×
81
        switch {
×
82
        case len(tag) > 0:
×
83
                taggedHash := chainhash.TaggedHash(tag, msg)
×
84
                digest = taggedHash[:]
×
85
        case doubleHash:
×
86
                digest = chainhash.DoubleHashB(msg)
×
87
        default:
×
88
                digest = chainhash.HashB(msg)
×
UNCOV
89
        }
×
90

91
        privKey := s.RootKey
92
        if len(taprootTweak) > 0 {
×
93
                privKey = txscript.TweakTaprootPrivKey(*privKey, taprootTweak)
×
94
        }
×
UNCOV
95

×
96
        return schnorr.Sign(privKey, digest)
UNCOV
97
}
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc