code: func (c *Certificate) SignCert(rand io.Reader, authority Signer) error {
  	c.Nonce = make([]byte, 32)
  	if _, err := io.ReadFull(rand, c.Nonce); err != nil {
  		return err
  	}
  	c.SignatureKey = authority.PublicKey()
  
  	sig, err := authority.Sign(rand, c.bytesForSigning())
  	if err != nil {
  		return err
  	}
  	c.Signature = sig
  	return nil
  }
docs: // SignCert sets c.SignatureKey to the authority's public key and stores a
  // Signature, by authority, in the certificate.