func FromB58String(s string) (m Multihash, err error) { // panic handler, in case we try accessing bytes incorrectly. defer func() { if e := recover(); e != nil { m = Multihash{} err = e.(error) } }() //b58 smells like it can panic... b := b58.Decode(s) return Cast(b) }
func initIdentity(cfg *config.Config) (*peer.Peer, error) { if cfg.Identity == nil { return nil, errors.New("Identity was not set in config (was ipfs init run?)") } if len(cfg.Identity.PeerID) == 0 { return nil, errors.New("No peer ID in config! (was ipfs init run?)") } // address is optional var addresses []*ma.Multiaddr if len(cfg.Identity.Address) > 0 { maddr, err := ma.NewMultiaddr(cfg.Identity.Address) if err != nil { return nil, err } addresses = []*ma.Multiaddr{maddr} } skb, err := base64.StdEncoding.DecodeString(cfg.Identity.PrivKey) if err != nil { return nil, err } sk, err := ci.UnmarshalPrivateKey(skb) if err != nil { return nil, err } return &peer.Peer{ ID: peer.ID(b58.Decode(cfg.Identity.PeerID)), Addresses: addresses, PrivKey: sk, PubKey: sk.GetPublic(), }, nil }