code: func (es *EccSigner) Mksig(r, s *big.Int) ([]byte, error) {
  	var n int
  
  	buf := make([]byte, 2*es.keyLen)
  
  	// copy r into buf
  	rb := r.Bytes()
  	n = copy(buf[es.keyLen-len(rb):], rb)
  	if n != len(rb) {
  		return nil, ErrMismatchedBytesCopied
  	}
  
  	// copy s into buf
  	sb := s.Bytes()
  	n = copy(buf[es.keyLen+(es.keyLen-(len(sb))):], sb)
  	if n != len(sb) {
  		return nil, ErrMismatchedBytesCopied
  	}
  
  	return buf, nil
  }
docs: // Mksig creates a byte slice of length 2*keyLen, copying the bytes from r and
  // s into the slice, left padding r and s to keyLen.