From 3b1e6b28f84b17335a932148f03727cf4874d7de Mon Sep 17 00:00:00 2001
From: Neil-Jocelyn Schark <neil.schark@h-da.de>
Date: Fri, 1 Mar 2024 10:34:00 +0000
Subject: [PATCH] Ckms akms v2

See merge request danet/quant!46
---
 config/configure-and-run-docker-playground.sh  | 14 +++++---------
 ekms/internal/akmsCkmsServer/akmsCkmsServer.go | 17 ++++++++++-------
 2 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/config/configure-and-run-docker-playground.sh b/config/configure-and-run-docker-playground.sh
index 00ae911c..2d67d570 100755
--- a/config/configure-and-run-docker-playground.sh
+++ b/config/configure-and-run-docker-playground.sh
@@ -14,28 +14,24 @@ gnmic -a "172.100.20.10:7030" -u admin -p admin --insecure -e JSON_IETF set --up
 sleep 2
 # initiating a key request from kms01
 curl -X POST -H "Content-Type: application/json" -d '{
-  "local_CKMS_ID": "172.100.20.13:50910",
+  "receiving_CKMS_ID": "172.100.20.13:50910",
   "request_ID": "request_ID-1234",
-  "key_properties": [
-    {
+  "key_properties": {
       "number": 1,
       "key_length": 256,
       "timeout": 20,
       "TTL": 24
     }
-  ]
 }' 'http://172.100.20.10:9696/api/v1/keys/ksa_key_req'
 
 # initiating a key request from kms04
 curl -X POST -H "Content-Type: application/json" -d '{
-  "local_CKMS_ID": "172.100.20.10:50910",
+  "receiving_CKMS_ID": "172.100.20.10:50910",
   "request_ID": "request_ID-1234",
-  "key_properties": [
-    {
-      "number": 5,
+  "key_properties": {
+      "number": 1,
       "key_length": 256,
       "timeout": 20,
       "TTL": 24
     }
-  ]
 }' 'http://172.100.20.13:9696/api/v1/keys/ksa_key_req'
diff --git a/ekms/internal/akmsCkmsServer/akmsCkmsServer.go b/ekms/internal/akmsCkmsServer/akmsCkmsServer.go
index 01692d5e..a439c6a7 100644
--- a/ekms/internal/akmsCkmsServer/akmsCkmsServer.go
+++ b/ekms/internal/akmsCkmsServer/akmsCkmsServer.go
@@ -43,9 +43,9 @@ type KeyProperties struct {
 }
 
 type KMSKeyRequest struct {
-	LocalCKMSID   string          `json:"local_CKMS_ID"`
-	RequestID     string          `json:"request_ID"`
-	KeyProperties []KeyProperties `json:"key_properties"`
+	ReceivingCKMSID string        `json:"receiving_CKMS_ID"`
+	RequestID       string        `json:"request_ID"`
+	KeyProperties   KeyProperties `json:"key_properties"`
 }
 
 func ksaReqHandler(ekms *kms.EKMS) http.HandlerFunc {
@@ -58,11 +58,14 @@ func ksaReqHandler(ekms *kms.EKMS) http.HandlerFunc {
 			return
 		}
 
-		logrus.Infof("received KSA key request for local CKMS %s, request ID %s, and key properties %v",
-			kmsKeyRequest.LocalCKMSID, kmsKeyRequest.RequestID, kmsKeyRequest.KeyProperties)
+		logrus.Infof("received KSA key request for receiving CKMS %s, request ID %s, and key properties %v",
+			kmsKeyRequest.ReceivingCKMSID, kmsKeyRequest.RequestID, kmsKeyRequest.KeyProperties)
 
-		for _, keyProperties := range kmsKeyRequest.KeyProperties {
-			go ekms.GenerateAndSendKSAKey(kmsKeyRequest.LocalCKMSID, kmsKeyRequest.RequestID, keyProperties.Number) //nolint:errcheck
+		err = ekms.GenerateAndSendKSAKey(kmsKeyRequest.ReceivingCKMSID, kmsKeyRequest.RequestID, kmsKeyRequest.KeyProperties.Number) //nolint:errcheck
+		if err != nil {
+			http.Error(w, err.Error(), http.StatusInternalServerError)
+			logrus.Errorf("error generating and sending KSA key: %s", err)
+			return
 		}
 
 		logrus.Info("requested all keys")
-- 
GitLab