diff --git a/ekms/etsiqkdnclient/etsi-qkdn-client.go b/ekms/etsiqkdnclient/etsi-qkdn-client.go
index 93805727647b1921cda1268eaac46b0bf8d8354e..97b73367566597f31229c5a52648327eeec52d6b 100644
--- a/ekms/etsiqkdnclient/etsi-qkdn-client.go
+++ b/ekms/etsiqkdnclient/etsi-qkdn-client.go
@@ -6,7 +6,7 @@ import (
 
 	log "github.com/sirupsen/logrus"
 
-	"code.fbi.h-da.de/danet/quant/ekms/internal/akmCkmsInterface"
+	"code.fbi.h-da.de/danet/quant/ekms/internal/akmsCkmsServer"
 	"code.fbi.h-da.de/danet/quant/ekms/internal/kms"
 	"github.com/google/uuid"
 )
@@ -127,7 +127,7 @@ func NewEkmsClient(bootInfo *Config) (myInfo *ekmsInfo) {
 func emulatedKMS(config *Config, id uuid.UUID, peerChannel chan string) *kms.EKMS {
 	// Attach to eKMS
 	emuKMS := kms.NewEKMS(config.Name, id, os.Stdout, log.TraceLevel, false, config.InterComAddr)
-	akmsCkmsReceiver := akmCkmsInterface.NewAKMSReceiver("4567", emuKMS)
+	akmsCkmsReceiverServer := akmsCkmsServer.NewAKMSReceiver("4567", emuKMS)
 
 	var qm kms.QuantumModule
 	var err error
@@ -169,10 +169,11 @@ func emulatedKMS(config *Config, id uuid.UUID, peerChannel chan string) *kms.EKM
 		}
 	}
 
-	// Start the SDN/management, key retrieval interface and akms server
+	// Start the SDN/management and key retrieval interface
 	go kms.StartETSI(config.GRPCAddr, emuKMS)
-	go akmsCkmsReceiver.Serve()
 
+	// Start the AKMSReceiverServer
+	go akmsCkmsReceiverServer.Serve()
 	return emuKMS
 }
 
diff --git a/ekms/internal/akmsCkmsClient/ckmsAkmsClient.go b/ekms/internal/akmsCkmsClient/ckmsAkmsClient.go
new file mode 100644
index 0000000000000000000000000000000000000000..af44b22822b4c4a75ac62de5962b9d5897a502d4
--- /dev/null
+++ b/ekms/internal/akmsCkmsClient/ckmsAkmsClient.go
@@ -0,0 +1,60 @@
+package akmsCkmsClient
+
+import (
+	"bytes"
+	"encoding/json"
+	"fmt"
+	"net/http"
+)
+
+type CkmsAkmsClient struct {
+	url string
+}
+
+func NewCkmsAkmsClient(url string) CkmsAkmsClient {
+	return CkmsAkmsClient{
+		url: url,
+	}
+}
+
+type PushKSAKeyRequest struct {
+	RequestID string   `json:"request_ID"`
+	ProcessID string   `json:"process_ID"`
+	KSAKeys   []KSAKey `json:"ksa_keys"`
+}
+
+type KSAKey struct {
+	KeyID string `json:"key_ID"`
+	Key   string `json:"key"`
+}
+
+func (c *CkmsAkmsClient) SendKSAKeys(requestID string, processID string, ksaKeys []KSAKey) error {
+	pushRequest := PushKSAKeyRequest{
+		RequestID: requestID,
+		ProcessID: processID,
+		KSAKeys:   ksaKeys,
+	}
+
+	jsonData, err := json.Marshal(pushRequest)
+	if err != nil {
+		fmt.Println("Error marshaling JSON:", err)
+		return err
+	}
+
+	resp, err := http.Post(c.url, "application/json", bytes.NewBuffer(jsonData))
+	if err != nil {
+		fmt.Println("Error sending POST request:", err)
+		return err
+	}
+	err = resp.Body.Close()
+	if err != nil {
+		fmt.Println("Error closing response body:", err)
+	}
+
+	if resp.StatusCode != http.StatusNoContent {
+		fmt.Println("Unexpected response status code:", resp.StatusCode)
+		return err
+	}
+
+	return nil
+}
diff --git a/ekms/internal/akmCkmsInterface/akmsCkmsServer.go b/ekms/internal/akmsCkmsServer/akmsCkmsServer.go
similarity index 81%
rename from ekms/internal/akmCkmsInterface/akmsCkmsServer.go
rename to ekms/internal/akmsCkmsServer/akmsCkmsServer.go
index f43670857ce7135d4755611c374e44bfd735030e..e3cb9fd92033d9d7c6d4d4a22b319817340085f2 100644
--- a/ekms/internal/akmCkmsInterface/akmsCkmsServer.go
+++ b/ekms/internal/akmsCkmsServer/akmsCkmsServer.go
@@ -1,4 +1,4 @@
-package akmCkmsInterface
+package akmsCkmsServer
 
 import (
 	"encoding/json"
@@ -7,14 +7,14 @@ import (
 	"code.fbi.h-da.de/danet/quant/ekms/internal/kms"
 )
 
-// Define AKMSReceiver.
-type AKMSReceiver struct {
+// Define AKMSReceiverServer.
+type AKMSReceiverServer struct {
 	ekms   *kms.EKMS
 	server *http.Server
 }
 
 // create NewAKMSReceiver.
-func NewAKMSReceiver(port string, ekms *kms.EKMS) *AKMSReceiver {
+func NewAKMSReceiver(port string, ekms *kms.EKMS) *AKMSReceiverServer {
 	router := http.NewServeMux()
 
 	router.HandleFunc("/ksa_key_req", ksaReqHandler)
@@ -24,7 +24,7 @@ func NewAKMSReceiver(port string, ekms *kms.EKMS) *AKMSReceiver {
 		Handler: router,
 	}
 
-	AKMSReceiver := &AKMSReceiver{
+	AKMSReceiver := &AKMSReceiverServer{
 		ekms:   ekms,
 		server: server,
 	}
@@ -32,7 +32,7 @@ func NewAKMSReceiver(port string, ekms *kms.EKMS) *AKMSReceiver {
 	return AKMSReceiver
 }
 
-func (akmsReceiver *AKMSReceiver) Serve() {
+func (akmsReceiver *AKMSReceiverServer) Serve() {
 	go akmsReceiver.server.ListenAndServe() //nolint:errcheck
 }
 
diff --git a/ekms/internal/kms/kms.go b/ekms/internal/kms/kms.go
index 1385c5066f3d4377d688648e9ece4a633b58dd55..2e989d05c0a912310392721edcab3a67ae3e4939 100644
--- a/ekms/internal/kms/kms.go
+++ b/ekms/internal/kms/kms.go
@@ -15,6 +15,7 @@ import (
 	"google.golang.org/grpc/health"
 	healthpb "google.golang.org/grpc/health/grpc_health_v1"
 
+	"code.fbi.h-da.de/danet/quant/ekms/internal/akmsCkmsClient"
 	pbETSI "code.fbi.h-da.de/danet/quant/ekms/internal/api/gen/proto/go/kmsetsi"
 	pbIC "code.fbi.h-da.de/danet/quant/ekms/internal/api/gen/proto/go/kmsintercom"
 	"code.fbi.h-da.de/danet/quant/ekms/internal/kms/event"
@@ -53,7 +54,7 @@ type EKMS struct {
 	pbIC.UnimplementedKmsTalkerServer
 	supportedKeyLengths map[BitKeyLength]bool
 	eventBus            *event.EventBus
-	//akmsSender          *http.Server
+	ckmsAkmsClient      akmsCkmsClient.CkmsAkmsClient
 }
 
 // Will keep information about the quantum elements that this EKMS is talking to
@@ -85,6 +86,8 @@ func NewEKMS(kmsName string, kmsUUID uuid.UUID, logOutput io.Writer, logLevel lo
 		log.SetReportCaller(false)
 	}
 
+	ckmsAkmsClient := akmsCkmsClient.NewCkmsAkmsClient("127.0.0.1:1234")
+
 	createdEKMS := &EKMS{
 		kmsName:             kmsName,
 		kmsUUID:             kmsUUID,
@@ -94,13 +97,13 @@ func NewEKMS(kmsName string, kmsUUID uuid.UUID, logOutput io.Writer, logLevel lo
 		KmsPeers:            make(map[string]*kmsPeer),
 		supportedKeyLengths: make(map[BitKeyLength]bool),
 		eventBus:            event.NewEventBus(),
+		ckmsAkmsClient:      ckmsAkmsClient,
 	}
 
 	createdEKMS.supportedKeyLengths[BitKeyLen256] = true
 
 	// start the inter communication gRPC server
 	go createdEKMS.startGRPC(interComAddr)
-	//go createdEKMS.akmsSender.ListenAndServe()
 
 	return createdEKMS
 }