Add global datastore encryption
This commit is contained in:
parent
fd09bebedc
commit
e1f1031cc7
9 changed files with 54 additions and 3 deletions
|
@ -22,6 +22,7 @@ import (
|
|||
|
||||
type DS struct {
|
||||
db *bolt.DB
|
||||
ck []byte
|
||||
}
|
||||
|
||||
func (ds *DS) Txn(writable bool) (txn kvs.TX, err error) {
|
||||
|
|
|
@ -42,6 +42,6 @@ func New(opts *cnf.Options) (ds kvs.DS, err error) {
|
|||
return nil
|
||||
})
|
||||
|
||||
return &DS{db: db}, err
|
||||
return &DS{db: db, ck: opts.DB.Key}, err
|
||||
|
||||
}
|
||||
|
|
|
@ -158,6 +158,11 @@ func (tx *TX) Put(key, val []byte) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
if val, err = cryp.Encrypt(tx.ds.ck, val); err != nil {
|
||||
err = &kvs.CKError{err}
|
||||
return
|
||||
}
|
||||
|
||||
if val, err = cryp.Encrypt(tx.ck, val); err != nil {
|
||||
err = &kvs.CKError{err}
|
||||
return
|
||||
|
@ -195,6 +200,11 @@ func (tx *TX) CPut(key, val, exp []byte) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
if val, err = cryp.Encrypt(tx.ds.ck, val); err != nil {
|
||||
err = &kvs.CKError{err}
|
||||
return
|
||||
}
|
||||
|
||||
if val, err = cryp.Encrypt(tx.ck, val); err != nil {
|
||||
err = &kvs.CKError{err}
|
||||
return
|
||||
|
@ -355,6 +365,12 @@ func get(tx *TX, key, val []byte) (kv *KV, err error) {
|
|||
return
|
||||
}
|
||||
|
||||
kv.val, err = cryp.Decrypt(tx.ds.ck, kv.val)
|
||||
if err != nil {
|
||||
err = &kvs.CKError{err}
|
||||
return
|
||||
}
|
||||
|
||||
kv.val, err = snap.Decode(kv.val)
|
||||
if err != nil {
|
||||
err = &kvs.DBError{err}
|
||||
|
|
|
@ -22,6 +22,7 @@ import (
|
|||
|
||||
type DS struct {
|
||||
db *sql.DB
|
||||
ck []byte
|
||||
}
|
||||
|
||||
func (ds *DS) Txn(writable bool) (txn kvs.TX, err error) {
|
||||
|
|
|
@ -36,6 +36,6 @@ func New(opts *cnf.Options) (ds kvs.DS, err error) {
|
|||
|
||||
db, err = sql.Open("mysql", path)
|
||||
|
||||
return &DS{db: db}, err
|
||||
return &DS{db: db, ck: opts.DB.Key}, err
|
||||
|
||||
}
|
||||
|
|
|
@ -186,6 +186,11 @@ func (tx *TX) Put(key, val []byte) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
if val, err = cryp.Encrypt(tx.ds.ck, val); err != nil {
|
||||
err = &kvs.CKError{err}
|
||||
return
|
||||
}
|
||||
|
||||
if val, err = cryp.Encrypt(tx.ck, val); err != nil {
|
||||
err = &kvs.CKError{err}
|
||||
return
|
||||
|
@ -218,6 +223,11 @@ func (tx *TX) CPut(key, val, exp []byte) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
if val, err = cryp.Encrypt(tx.ds.ck, val); err != nil {
|
||||
err = &kvs.CKError{err}
|
||||
return
|
||||
}
|
||||
|
||||
if val, err = cryp.Encrypt(tx.ck, val); err != nil {
|
||||
err = &kvs.CKError{err}
|
||||
return
|
||||
|
@ -336,6 +346,12 @@ func get(tx *TX, key, val []byte) (kv *KV, err error) {
|
|||
return
|
||||
}
|
||||
|
||||
kv.val, err = cryp.Decrypt(tx.ds.ck, kv.val)
|
||||
if err != nil {
|
||||
err = &kvs.CKError{err}
|
||||
return
|
||||
}
|
||||
|
||||
kv.val, err = snap.Decode(kv.val)
|
||||
if err != nil {
|
||||
err = &kvs.DBError{err}
|
||||
|
|
|
@ -22,6 +22,7 @@ import (
|
|||
|
||||
type DS struct {
|
||||
db *sql.DB
|
||||
ck []byte
|
||||
}
|
||||
|
||||
func (ds *DS) Txn(writable bool) (txn kvs.TX, err error) {
|
||||
|
|
|
@ -36,6 +36,6 @@ func New(opts *cnf.Options) (ds kvs.DS, err error) {
|
|||
|
||||
db, err = sql.Open("postgres", path)
|
||||
|
||||
return &DS{db: db}, err
|
||||
return &DS{db: db, ck: opts.DB.Key}, err
|
||||
|
||||
}
|
||||
|
|
|
@ -186,6 +186,11 @@ func (tx *TX) Put(key, val []byte) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
if val, err = cryp.Encrypt(tx.ds.ck, val); err != nil {
|
||||
err = &kvs.CKError{err}
|
||||
return
|
||||
}
|
||||
|
||||
if val, err = cryp.Encrypt(tx.ck, val); err != nil {
|
||||
err = &kvs.CKError{err}
|
||||
return
|
||||
|
@ -218,6 +223,11 @@ func (tx *TX) CPut(key, val, exp []byte) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
if val, err = cryp.Encrypt(tx.ds.ck, val); err != nil {
|
||||
err = &kvs.CKError{err}
|
||||
return
|
||||
}
|
||||
|
||||
if val, err = cryp.Encrypt(tx.ck, val); err != nil {
|
||||
err = &kvs.CKError{err}
|
||||
return
|
||||
|
@ -336,6 +346,12 @@ func get(tx *TX, key, val []byte) (kv *KV, err error) {
|
|||
return
|
||||
}
|
||||
|
||||
kv.val, err = cryp.Decrypt(tx.ds.ck, kv.val)
|
||||
if err != nil {
|
||||
err = &kvs.CKError{err}
|
||||
return
|
||||
}
|
||||
|
||||
kv.val, err = snap.Decode(kv.val)
|
||||
if err != nil {
|
||||
err = &kvs.DBError{err}
|
||||
|
|
Loading…
Reference in a new issue