code: func (es *EccSigner) SignBytes(buf []byte) ([]byte, error) {
  	var err error
  
  	// check es.priv
  	if es.priv == nil {
  		return nil, ErrInvalidPrivateKey
  	}
  
  	// hash
  	h := es.hash.New()
  	_, err = h.Write(buf)
  	if err != nil {
  		return nil, err
  	}
  
  	// sign
  	r, s, err := ecdsa.Sign(rand.Reader, es.priv, h.Sum(nil))
  	if err != nil {
  		return nil, err
  	}
  
  	// make sig
  	return es.Mksig(r, s)
  }
docs: // SignBytes creates a signature for buf.