code: func (c *Client) Sign(ctx context.Context, server string, r io.Reader) (signed []byte, err error) {
  	signHandler, err := c.SignHandler()
  	if err != nil {
  		return nil, err
  	}
  	signServer := strings.TrimSuffix(server, "/") + signHandler
  	resp, err := c.post(ctx, signServer, "application/x-www-form-urlencoded", r)
  	if err != nil {
  		return nil, err
  	}
  	defer resp.Body.Close()
  	return ioutil.ReadAll(resp.Body)
  }
docs: // Sign sends a request to the sign handler on server to sign the contents of r,
  // and return them signed. It uses the same implementation details, such as gated
  // requests, as Post.