mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-05 08:47:35 +08:00
37 lines
842 B
Go
37 lines
842 B
Go
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)
|
|
}
|