traffic.go 842 B

123456789101112131415161718192021222324252627282930313233343536
  1. package logic
  2. import (
  3. "crypto/rsa"
  4. "encoding/json"
  5. "github.com/gravitl/netmaker/database"
  6. )
  7. type trafficKey struct {
  8. Key rsa.PrivateKey `json:"key" bson:"key"`
  9. }
  10. // RetrieveTrafficKey - retrieves key based on node
  11. func RetrieveTrafficKey(nodeid string) (rsa.PrivateKey, error) {
  12. var record, err = database.FetchRecord(database.TRAFFIC_TABLE_NAME, nodeid)
  13. if err != nil {
  14. return rsa.PrivateKey{}, err
  15. }
  16. var result trafficKey
  17. if err = json.Unmarshal([]byte(record), &result); err != nil {
  18. return rsa.PrivateKey{}, err
  19. }
  20. return result.Key, nil
  21. }
  22. // StoreTrafficKey - stores key based on node
  23. func StoreTrafficKey(nodeid string, key rsa.PrivateKey) error {
  24. var data, err = json.Marshal(trafficKey{
  25. Key: key,
  26. })
  27. if err != nil {
  28. return err
  29. }
  30. return database.Insert(nodeid, string(data), database.TRAFFIC_TABLE_NAME)
  31. }