| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | package ncutilsimport (	"bytes"	"crypto/rand"	"encoding/gob")// DEFAULT_GC_PERCENT - garbage collection percentconst DEFAULT_GC_PERCENT = 10// == OS PATH FUNCTIONS ==// ConvertKeyToBytes - util to convert a key to bytes to use elsewherefunc ConvertKeyToBytes(key *[32]byte) ([]byte, error) {	var buffer bytes.Buffer	var enc = gob.NewEncoder(&buffer)	if err := enc.Encode(key); err != nil {		return nil, err	}	return buffer.Bytes(), nil}// ConvertBytesToKey - util to convert bytes to a key to use elsewherefunc ConvertBytesToKey(data []byte) (*[32]byte, error) {	var buffer = bytes.NewBuffer(data)	var dec = gob.NewDecoder(buffer)	var result = new([32]byte)	var err = dec.Decode(result)	if err != nil {		return nil, err	}	return result, err}// MakeRandomString - generates a random string of len nfunc MakeRandomString(n int) string {	const validChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"	result := make([]byte, n)	if _, err := rand.Reader.Read(result); err != nil {		return ""	}	for i, b := range result {		result[i] = validChars[b%byte(len(validChars))]	}	return string(result)}
 |