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  }