input: add new ParseSignature helper func

This commit is contained in:
Olaoluwa Osuntokun
2023-08-10 18:15:52 -07:00
parent 7323e9373b
commit a5f67b451e

View File

@@ -7,6 +7,7 @@ import (
"fmt"
"github.com/btcsuite/btcd/btcec/v2"
"github.com/btcsuite/btcd/btcec/v2/ecdsa"
"github.com/btcsuite/btcd/btcec/v2/schnorr"
"github.com/btcsuite/btcd/btcec/v2/schnorr/musig2"
"github.com/btcsuite/btcd/btcutil"
@@ -64,6 +65,17 @@ type Signature interface {
Verify([]byte, *btcec.PublicKey) bool
}
// ParseSignature parses a raw signature into an input.Signature instance. This
// routine supports parsing normal ECDSA DER encoded signatures, as well as
// schnorr signatures.
func ParseSignature(rawSig []byte) (Signature, error) {
if len(rawSig) == schnorr.SignatureSize {
return schnorr.ParseSignature(rawSig)
}
return ecdsa.ParseDERSignature(rawSig)
}
// WitnessScriptHash generates a pay-to-witness-script-hash public key script
// paying to a version 0 witness program paying to the passed redeem script.
func WitnessScriptHash(witnessScript []byte) ([]byte, error) {