From 3888d20e26daf57978066ca520ef76b510a0c21d Mon Sep 17 00:00:00 2001
From: Malte Bauch <malte.bauch@h-da.de>
Date: Wed, 23 Oct 2024 10:49:40 +0000
Subject: [PATCH] Resolve "Receiver map is not updated correctly for key
 exchange"

See merge request danet/quant!227
---
 goKMS/kms/akmsInterface/server/server.go | 3 +++
 goKMS/kms/kms.go                         | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/goKMS/kms/akmsInterface/server/server.go b/goKMS/kms/akmsInterface/server/server.go
index c80409af..3ba4452c 100644
--- a/goKMS/kms/akmsInterface/server/server.go
+++ b/goKMS/kms/akmsInterface/server/server.go
@@ -97,6 +97,9 @@ func ksaReqHandler(eventBus *event.EventBus, receiver *receiver.Receiver, genera
 
 		select {
 		case <-receiverChan:
+			if err := receiver.RemoveReceiver(pathId); err != nil {
+				logrus.Errorf("Failed removing receiver for pathId: %s ; err: %v", pathId, err)
+			}
 		case <-time.After(20 * time.Second):
 			if err := receiver.RemoveReceiver(pathId); err != nil {
 				logrus.Errorf("Failed removing receiver for pathId: %s ; err: %v", pathId, err)
diff --git a/goKMS/kms/kms.go b/goKMS/kms/kms.go
index 702573c8..6f80d75e 100644
--- a/goKMS/kms/kms.go
+++ b/goKMS/kms/kms.go
@@ -712,6 +712,9 @@ func (kms *KMS) exchangeKeyAfterETSI14GetKeyRequest(receivingCKMSID uuid.UUID, n
 
 	select {
 	case <-receiverChan:
+		if err := kms.receiver.RemoveReceiver(pathID); err != nil {
+			log.Errorf("Failed removing receiver for pathId: %s ; err: %v", pathID, err)
+		}
 	case <-time.After(20 * time.Second):
 		if err := kms.receiver.RemoveReceiver(pathID); err != nil {
 			log.Errorf("Failed removing receiver for pathId: %s ; err: %v", pathID, err)
-- 
GitLab