code: func GenerateKeys() (privKey []byte, pubKey []byte, err error) {
  	// Generate a new key pair
  	key, err := ecdsa.GenerateKey(elliptic.P521(), rand.Reader)
  	if err != nil {
  		return nil, nil, err
  	}
  
  	// Marshal the private key
  	bs, err := x509.MarshalECPrivateKey(key)
  	if err != nil {
  		return nil, nil, err
  	}
  
  	// Encode it in PEM format
  	privKey = pem.EncodeToMemory(&pem.Block{
  		Type:  "EC PRIVATE KEY",
  		Bytes: bs,
  	})
  
  	// Marshal the public key
  	bs, err = x509.MarshalPKIXPublicKey(&key.PublicKey)
  	if err != nil {
  		return nil, nil, err
  	}
  
  	// Encode it in PEM format
  	pubKey = pem.EncodeToMemory(&pem.Block{
  		Type:  "EC PUBLIC KEY",
  		Bytes: bs,
  	})
  
  	return
  }
docs: // GenerateKeys returns a new key pair, with the private and public key
  // encoded in PEM format.