mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-18 14:54:23 +08:00
added encryption/decryption strategy
This commit is contained in:
36
logic/traffic.go
Normal file
36
logic/traffic.go
Normal file
@@ -0,0 +1,36 @@
|
||||
package logic
|
||||
|
||||
import (
|
||||
"crypto/rsa"
|
||||
"encoding/json"
|
||||
|
||||
"github.com/gravitl/netmaker/database"
|
||||
)
|
||||
|
||||
type trafficKey struct {
|
||||
Key rsa.PrivateKey `json:"key" bson:"key"`
|
||||
}
|
||||
|
||||
// RetrieveTrafficKey - retrieves key based on node
|
||||
func RetrieveTrafficKey(nodeid string) (rsa.PrivateKey, error) {
|
||||
var record, err = database.FetchRecord(database.TRAFFIC_TABLE_NAME, nodeid)
|
||||
if err != nil {
|
||||
return rsa.PrivateKey{}, err
|
||||
}
|
||||
var result trafficKey
|
||||
if err = json.Unmarshal([]byte(record), &result); err != nil {
|
||||
return rsa.PrivateKey{}, err
|
||||
}
|
||||
return result.Key, nil
|
||||
}
|
||||
|
||||
// StoreTrafficKey - stores key based on node
|
||||
func StoreTrafficKey(nodeid string, key rsa.PrivateKey) error {
|
||||
var data, err = json.Marshal(trafficKey{
|
||||
Key: key,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return database.Insert(nodeid, string(data), database.TRAFFIC_TABLE_NAME)
|
||||
}
|
Reference in New Issue
Block a user