mirror of
https://github.com/lightningnetwork/lnd.git
synced 2024-11-19 09:53:54 +01:00
57 lines
1.2 KiB
Go
57 lines
1.2 KiB
Go
package keychain
|
|
|
|
import "github.com/btcsuite/btcd/btcec"
|
|
|
|
func NewPubKeyDigestSigner(keyDesc KeyDescriptor,
|
|
signer DigestSignerRing) *PubKeyDigestSigner {
|
|
|
|
return &PubKeyDigestSigner{
|
|
keyDesc: keyDesc,
|
|
digestSigner: signer,
|
|
}
|
|
}
|
|
|
|
type PubKeyDigestSigner struct {
|
|
keyDesc KeyDescriptor
|
|
digestSigner DigestSignerRing
|
|
}
|
|
|
|
func (p *PubKeyDigestSigner) PubKey() *btcec.PublicKey {
|
|
return p.keyDesc.PubKey
|
|
}
|
|
|
|
func (p *PubKeyDigestSigner) SignDigest(digest [32]byte) (*btcec.Signature,
|
|
error) {
|
|
|
|
return p.digestSigner.SignDigest(p.keyDesc, digest)
|
|
}
|
|
|
|
func (p *PubKeyDigestSigner) SignDigestCompact(digest [32]byte) ([]byte,
|
|
error) {
|
|
|
|
return p.digestSigner.SignDigestCompact(p.keyDesc, digest)
|
|
}
|
|
|
|
type PrivKeyDigestSigner struct {
|
|
PrivKey *btcec.PrivateKey
|
|
}
|
|
|
|
func (p *PrivKeyDigestSigner) PubKey() *btcec.PublicKey {
|
|
return p.PrivKey.PubKey()
|
|
}
|
|
|
|
func (p *PrivKeyDigestSigner) SignDigest(digest [32]byte) (*btcec.Signature,
|
|
error) {
|
|
|
|
return p.PrivKey.Sign(digest[:])
|
|
}
|
|
|
|
func (p *PrivKeyDigestSigner) SignDigestCompact(digest [32]byte) ([]byte,
|
|
error) {
|
|
|
|
return btcec.SignCompact(btcec.S256(), p.PrivKey, digest[:], true)
|
|
}
|
|
|
|
var _ SingleKeyDigestSigner = (*PubKeyDigestSigner)(nil)
|
|
var _ SingleKeyDigestSigner = (*PrivKeyDigestSigner)(nil)
|