ecc.go
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
}
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
}
// 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.