diff --git a/kms/kmsetsi.go b/kms/kmsetsi.go index 45f849adbcfc208032e7443469706124c5a93073..51ac91f9f6ee3ec24411e96e292793923df92295 100644 --- a/kms/kmsetsi.go +++ b/kms/kmsetsi.go @@ -16,9 +16,10 @@ var ( type etsiServer struct { pb.UnimplementedKmsETSIServer + handlingEkms *eKMS } -func (kms *etsiServer) ETSICapabilities(ctx context.Context, in *pb.ETSICapabilitiesRequest) (capReply *pb.ETSICapabilitiesReply, err error) { +func (es *etsiServer) ETSICapabilities(ctx context.Context, in *pb.ETSICapabilitiesRequest) (capReply *pb.ETSICapabilitiesReply, err error) { log.Printf("Received: %v", in.GetMyKmsName()) return &pb.ETSICapabilitiesReply{ @@ -26,18 +27,18 @@ func (kms *etsiServer) ETSICapabilities(ctx context.Context, in *pb.ETSICapabili }, nil } -func (kms *etsiServer) ETSIAddKMSPeer(ctx context.Context, in *pb.ETSIKMSPeerRequest) (*pb.ETSIKMSPeerReply, error) { +func (es *etsiServer) ETSIAddKMSPeer(ctx context.Context, in *pb.ETSIKMSPeerRequest) (*pb.ETSIKMSPeerReply, error) { //determine the kms structure to call log.Printf("AddKMSPeer called.") - //etsiServer.AddPeer(in.GetKmsPeerSocket()) + es.handlingEkms.AddPeer(in.GetKmsPeerSocket()) return &pb.ETSIKMSPeerReply{ - //KmsPeerName: kms.kmsName, + KmsPeerName: es.handlingEkms.kmsName, }, nil } -func (kms *etsiServer) ETSIRemoveKMSPeer(ctx context.Context, in *pb.ETSIKMSPeerRequest) (*pb.ETSIKMSPeerReply, error) { +func (es *etsiServer) ETSIRemoveKMSPeer(ctx context.Context, in *pb.ETSIKMSPeerRequest) (*pb.ETSIKMSPeerReply, error) { //kms.RemovePeer(in.GetKmsPeerSocket()) return &pb.ETSIKMSPeerReply{ @@ -45,7 +46,7 @@ func (kms *etsiServer) ETSIRemoveKMSPeer(ctx context.Context, in *pb.ETSIKMSPeer }, nil } -func (kms *etsiServer) GetEncryptKeys256Bit(ctx context.Context, in *pb.ETSIGetEncryptKeys256BitRequest) (*pb.ETSIGetEncryptKeys256BitReply, error) { +func (es *etsiServer) GetEncryptKeys256Bit(ctx context.Context, in *pb.ETSIGetEncryptKeys256BitRequest) (*pb.ETSIGetEncryptKeys256BitReply, error) { log.Printf("Received request for n=%d keys", in.GetAmount()) testBytes := []byte{120, 120, 120} @@ -57,7 +58,7 @@ func (kms *etsiServer) GetEncryptKeys256Bit(ctx context.Context, in *pb.ETSIGetE }, nil } -func StartETSI(listenAddr string) { +func StartETSI(listenAddr string, callingKMS *eKMS) { flag.Parse() //lis, err := net.Listen("tcp", fmt.Sprintf(":%d", *etsiPort)) @@ -66,7 +67,9 @@ func StartETSI(listenAddr string) { log.Fatalf("failed to listen: %v", err) } s := grpc.NewServer() - pb.RegisterKmsETSIServer(s, &etsiServer{}) + pb.RegisterKmsETSIServer(s, &etsiServer{ + handlingEkms: callingKMS, + }) log.Printf("server listening at %v", lis.Addr()) if err := s.Serve(lis); err != nil { log.Fatalf("failed to serve: %v", err) diff --git a/main.go b/main.go index ba92036a0021d32088d04e9006196926f42e741a..75da36bf6c9a7bc80b15f38875f14776aa9841b2 100644 --- a/main.go +++ b/main.go @@ -74,7 +74,7 @@ func emulatedKMS(myName string, myUDPAddr string, peerUDPAddr string) { myQL.QuantumElementLink.AddPeer(*udpQL2Addr) // Start the SDN/management and key retrieval interface - go kms.StartETSI(peerUDPAddr) + go kms.StartETSI(peerUDPAddr, emuKMS) // TODO/XXX catch errors! emuKMS.GlobalKeyHandler(7 * time.Second)