identity.go 588 Bytes
Newer Older
Łukasz Magiera's avatar
Łukasz Magiera committed
1 2 3 4 5
package node

import (
	"fmt"

tavit ohanian's avatar
tavit ohanian committed
6 7
	"gitlab.dms3.io/p2p/go-p2p-core/crypto"
	"gitlab.dms3.io/p2p/go-p2p-core/peer"
Łukasz Magiera's avatar
Łukasz Magiera committed
8 9
)

10 11 12
func PeerID(id peer.ID) func() peer.ID {
	return func() peer.ID {
		return id
Łukasz Magiera's avatar
Łukasz Magiera committed
13 14 15
	}
}

16
// PrivateKey loads the private key from config
17 18 19 20 21 22 23 24 25 26 27
func PrivateKey(sk crypto.PrivKey) func(id peer.ID) (crypto.PrivKey, error) {
	return func(id peer.ID) (crypto.PrivKey, error) {
		id2, err := peer.IDFromPrivateKey(sk)
		if err != nil {
			return nil, err
		}

		if id2 != id {
			return nil, fmt.Errorf("private key in config does not match id: %s != %s", id, id2)
		}
		return sk, nil
Łukasz Magiera's avatar
Łukasz Magiera committed
28 29
	}
}