kidjung 4 лет назад
Родитель
Сommit
7280915484
3 измененных файлов: 70 добавлений и 0 удалений
  1. Двоичные данные
      .DS_Store
  2. 16
    0
      modules/message.go
  3. 54
    0
      modules/secure.go

Двоичные данные
.DS_Store Просмотреть файл


+ 16
- 0
modules/message.go Просмотреть файл

@@ -22,6 +22,22 @@ type Message struct {
22 22
 	kind    int //종류
23 23
 }
24 24
 
25
+func (msg Message) From() string {
26
+	return msg.from
27
+}
28
+
29
+func (msg Message) Version() string {
30
+	return msg.version
31
+}
32
+
33
+func (msg Message) Time() string {
34
+	return msg.time
35
+}
36
+
37
+func (msg Message) Kind() int {
38
+	return msg.kind
39
+}
40
+
25 41
 type MsgUnit interface {
26 42
 	// ConvertToJson - send 전 json형식으로 바꾸는 함수
27 43
 	ConvertToJson() ([]byte, error)

+ 54
- 0
modules/secure.go Просмотреть файл

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

Загрузка…
Отмена
Сохранить