Project Moscato Team Messaging Middleware Implemetation Message Middleware by Golang Operate as Secure, Effectively
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

secure.go 1.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package modules
  2. import (
  3. "fmt"
  4. "strconv"
  5. )
  6. // 키관리 부분, 노드 입력받고 키 반환하는 부분 구현
  7. type Security struct{
  8. KeyMap map[string] string
  9. }
  10. type SecurityManage interface {
  11. reEncrypt()
  12. keyGenPrivate()
  13. compare()
  14. }
  15. /**
  16. keyShareMsg 에서 각 노드의 private 키를 받아 keyMap 에 저장
  17. */
  18. func (sc Security) RegKey(ksm KeyShareMsg) {
  19. sc.KeyMap[ksm.Message.From()] = ksm.key
  20. }
  21. /**
  22. 각 노드의 키를 주소를 이용하여 맵에서 가져옴
  23. */
  24. func (sc Security) GetNodeKey(message Message) int{
  25. messageStringKey := sc.KeyMap[message.From()]
  26. mKey, err := strconv.Atoi(messageStringKey)
  27. if err != nil {
  28. fmt.Println("reEncrypt Error: key string to int error.")
  29. }
  30. return mKey
  31. }
  32. /**
  33. reEncrypt 해서 슬라이스 반환
  34. */
  35. func (sc Security) ReEncrypt(fromKey int, toKey int, target []int) []int{
  36. for index := range target {
  37. target[index] = target[index] - fromKey + toKey
  38. }
  39. return target
  40. }
  41. // private key 생성 메세지
  42. //func (sc Security) keyGenPrivate() KeyGenMsg{
  43. //
  44. //}