Project Moscato Team Messaging Middleware Implemetation Message Middleware by Golang Operate as Secure, Effectively
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

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. //}