github.com/code-to-go/safepool.lib@v0.0.0-20221205180519-ee25e63c226e/sql/encKey.go2 (about) 1 package sql 2 3 import ( 4 "github.com/code-to-go/safepool.lib/core" 5 ) 6 7 // GetChanges returns all the item in the log filtering out those smaller than start in lexical order 8 func GetEncKeys(domain string) (map[uint32][]byte, error) { 9 rows, err := Query("GET_ENC_KEYS_BY_DOMAIN", Args{"domain": domain}) 10 if core.IsErr(err, "cannot get encryption keys from db for domain '%s': %v", domain) { 11 return nil, err 12 } 13 14 res := map[uint32][]byte{} 15 for rows.Next() { 16 var encKey uint32 17 var value string 18 err = rows.Scan(&encKey, &value) 19 if !core.IsErr(err, "cannot read enc key from db: %v") { 20 res[encKey] = DecodeBase64(value) 21 } 22 } 23 return res, nil 24 } 25 26 func GetLastEncKey(domain string) (keyId uint32, keyValue []byte, err error) { 27 var value string 28 err = QueryRow("GET_LAST_ENC_KEY_BY_DOMAIN", Args{"domain": domain}, &keyId, &value) 29 if core.IsErr(err, "cannot get encryption keys from db for domain '%s': %v", domain) { 30 return 0, nil, err 31 } 32 return keyId, DecodeBase64(value), err 33 } 34 35 func SetEncKey(domain string, keyId uint32, keyValue []byte) error { 36 _, err := Exec("SET_ENC_KEY", Args{"domain": domain, "keyId": keyId, "keyValue": EncodeBase64(keyValue)}) 37 return err 38 }