diff --git a/doc/concept/auth/~$REQPublicKeysGet.drawio.dtmp b/doc/concept/auth/~$REQPublicKeysGet.drawio.dtmp deleted file mode 100644 index a29125e..0000000 --- a/doc/concept/auth/~$REQPublicKeysGet.drawio.dtmp +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/processes.go b/processes.go index cb2575b..42e6161 100644 --- a/processes.go +++ b/processes.go @@ -313,6 +313,10 @@ func (s startup) pubREQPublicKeysGet(p process) { ticker := time.NewTicker(time.Second * time.Duration(p.configuration.PublicKeysGetInterval)) for { + // TODO: We could send with the hash of the currently stored keys, + // so we would know on the subscriber at central if it should send + // and update with new keys back. + m := Message{ FileName: "publickeysget.log", Directory: "publickeysget", diff --git a/requests.go b/requests.go index ab8407f..f932420 100644 --- a/requests.go +++ b/requests.go @@ -2061,6 +2061,11 @@ func (m methodREQPublicKeysGet) handler(proc process, message Message, node stri // case out := <-outCh: case <-outCh: proc.centralAuth.keys.nodePublicKeys.mu.Lock() + // TODO: We should probably create a hash of the current map content, + // store it alongside the KeyMap, and send both the KeyMap and hash + // 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.keys.nodePublicKeys.KeyMap) proc.centralAuth.keys.nodePublicKeys.mu.Unlock() if err != nil { @@ -2154,7 +2159,11 @@ func (m methodREQPublicKeysAllow) getKind() Event { return m.event } -// Handler to get all the public ed25519 keys from a central server. +// Handler to allow new public keys into the database on central auth. +// Nodes will send the public key in the REQHello messages. When they +// are recived on the central server they will be put into a temp key +// map, and we need to acknowledge them before they are moved into the +// main key map, and then allowed to be sent out to other nodes. func (m methodREQPublicKeysAllow) handler(proc process, message Message, node string) ([]byte, error) { // Get a context with the timeout specified in message.MethodTimeout. ctx, _ := getContextForMethodTimeout(proc.ctx, message)