code: func NewPrivateKey(curve elliptic.Curve) (*PrivateKey, error) {
  	key, err := ecdsa.GenerateKey(curve, rand.Reader)
  	if err != nil {
  		return nil, err
  	}
  	return (*PrivateKey)(key), nil
  }
docs: // NewPrivateKey is a wrapper for ecdsa.GenerateKey that returns a PrivateKey
  // instead of the normal ecdsa.PrivateKey.