1
0
Fork 0
mirror of https://github.com/postmannen/ctrl.git synced 2024-12-14 12:37:31 +00:00

sending hash with key update requests

This commit is contained in:
postmannen 2022-05-12 11:32:12 +02:00
parent 6cf3bac506
commit e720c48c44
2 changed files with 22 additions and 3 deletions

View file

@ -82,6 +82,7 @@ func newAllowedSignatures() *allowedSignatures {
type publicKeys struct {
// nodesKey is a map who holds all the public keys for nodes.
NodeKeys map[Node][]byte
Hash [32]byte
mu sync.Mutex
filePath string
}

View file

@ -2070,7 +2070,16 @@ func (m methodREQPublicKeysGet) handler(proc process, message Message, node stri
// back. We can then later send that hash when asking for keys, compare
// it with the current one for the KeyMap, and know if we need to send
// and update back to the node who published the request to here.
b, err := json.Marshal(proc.centralAuth.pki.nodeKeysAndHash.KeyMap)
marsh := struct {
M map[Node][]byte
H [32]byte
}{
M: proc.centralAuth.pki.nodeKeysAndHash.KeyMap,
H: proc.centralAuth.pki.nodeKeysAndHash.Hash,
}
b, err := json.Marshal(marsh)
proc.centralAuth.pki.nodeKeysAndHash.mu.Unlock()
if err != nil {
er := fmt.Errorf("error: REQPublicKeysGet, failed to marshal keys map: %v", err)
@ -2127,13 +2136,22 @@ func (m methodREQPublicKeysToNode) handler(proc process, message Message, node s
case <-ctx.Done():
case <-outCh:
// keys := make(map[Node]string)
marsh := struct {
M map[Node][]byte
H [32]byte
}{}
proc.nodeAuth.publicKeys.mu.Lock()
err := json.Unmarshal(message.Data, &proc.nodeAuth.publicKeys.NodeKeys)
err := json.Unmarshal(message.Data, &marsh)
if err != nil {
er := fmt.Errorf("error: REQPublicKeysToNode : json unmarshal failed: %v, message: %v", err, message)
proc.errorKernel.errSend(proc, message, er)
}
fmt.Printf(" *** RECEIVED KEYS: %v\n", proc.nodeAuth.publicKeys.NodeKeys)
proc.nodeAuth.publicKeys.NodeKeys = marsh.M
proc.nodeAuth.publicKeys.Hash = marsh.H
fmt.Printf(" *** RECEIVED KEYS: %+v\n", marsh)
proc.nodeAuth.publicKeys.mu.Unlock()
err = proc.nodeAuth.publicKeys.saveToFile()