1package export23import (4 "crypto/rand"5 "io"6 "os"7)89const (10 KeySize = 3211)1213func CreateKey(path string) error {14 var key [KeySize]byte15 _, err := rand.Read(key[:])16 if err != nil {17 return err18 }1920 file, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600)21 if err != nil {22 return err23 }24 defer file.Close()2526 // Write and reset offset for read in ReadKey() function.27 _, err = file.Write(key[:])28 if err != nil {29 return err30 }3132 return nil33}3435func ReadKey(path string) (*[KeySize]byte, error) {36 file, err := os.Open(path)37 if err != nil {38 return nil, err39 }40 defer file.Close()4142 var key [KeySize]byte43 _, err = io.ReadFull(file, key[:])44 if err != nil {45 return nil, err46 }4748 return &key, nil49}