From 89f9e3a5637f2dfa97c79196c3bc6899f3e3fc6c Mon Sep 17 00:00:00 2001 From: Kleissner Date: Fri, 22 Oct 2021 06:17:28 +0200 Subject: [PATCH] New function PublicKeyFromPeerID --- Peer ID.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Peer ID.go b/Peer ID.go index e2e7fa2..e674ee1 100644 --- a/Peer ID.go +++ b/Peer ID.go @@ -280,3 +280,15 @@ func DeleteAccount() { config.PrivateKey = "" saveConfig() } + +// PublicKeyFromPeerID decodes the peer ID (hex encoded) into a public key. Returns nil if invalid. +func PublicKeyFromPeerID(peerID string) (publicKey *btcec.PublicKey) { + hash, err := hex.DecodeString(peerID) + if err != nil || len(hash) != 33 { + return nil + } + + publicKey, _ = btcec.ParsePubKey(hash, btcec.S256()) + + return publicKey +}