func UnmarshalPublicKey(data []byte) (PubKey, error) {
	pmes := new(pb.PublicKey)
	err := proto.Unmarshal(data, pmes)
	if err != nil {
		return nil, err
	}

	um, ok := PubKeyUnmarshallers[pmes.GetType()]
	if !ok {
		return nil, ErrBadKeyType
	}

	return um(pmes.GetData())
}
func UnmarshalPublicKey(data []byte) (PubKey, error) {
	pmes := new(pb.PublicKey)
	err := proto.Unmarshal(data, pmes)
	if err != nil {
		return nil, err
	}

	um, ok := PubKeyUnmarshallers[pmes.GetType()]
	if !ok {
		return nil, ErrBadKeyType
	}

	return um(pmes.GetData())
}
func UnmarshalPublicKey ( data [ ] byte ) ( PubKey , error ) { pmes := new ( pb . PublicKey ) err := proto . Unmarshal ( data , pmes ) if err != nil { return nil , err } um , ok := PubKeyUnmarshallers [ pmes . GetType ( ) ] if ! ok { return nil , ErrBadKeyType } return um ( pmes . GetData ( ) ) }
// UnmarshalPublicKey converts a protobuf serialized public key into its
// representative object
UnmarshalPublicKey converts a protobuf serialized public key into its representative object