// DecodePrivateKey is a helper to decode the users PrivateKey func (i *Identity) DecodePrivateKey(passphrase string) (ic.PrivKey, error) { pkb, err := base64.StdEncoding.DecodeString(i.PrivKey) if err != nil { return nil, err } // currently storing key unencrypted. in the future we need to encrypt it. // TODO(security) return ic.UnmarshalPrivateKey(pkb) }
func IdentityFromKey(privkey []byte) (config.Identity, error) { ident := config.Identity{} sk, err := libp2p.UnmarshalPrivateKey(privkey) if err != nil { return ident, err } skbytes, err := sk.Bytes() if err != nil { return ident, err } ident.PrivKey = base64.StdEncoding.EncodeToString(skbytes) id, err := peer.IDFromPublicKey(sk.GetPublic()) if err != nil { return ident, err } ident.PeerID = id.Pretty() return ident, nil }