code: func importPublicKey(pubKey []byte) (*ecies.PublicKey, error) {
  	var pubKey65 []byte
  	switch len(pubKey) {
  	case 64:
  		// add 'uncompressed key' flag
  		pubKey65 = append([]byte{0x04}, pubKey...)
  	case 65:
  		pubKey65 = pubKey
  	default:
  		return nil, fmt.Errorf("invalid public key length %v (expect 64/65)", len(pubKey))
  	}
  	// TODO: fewer pointless conversions
  	pub, err := crypto.UnmarshalPubkey(pubKey65)
  	if err != nil {
  		return nil, err
  	}
  	return ecies.ImportECDSAPublic(pub), nil
  }
docs: // importPublicKey unmarshals 512 bit public keys.