diff --git a/ekms/internal/kms/kms.go b/ekms/internal/kms/kms.go index 62f0937fa6a37f812fac76f67cc83b78aa51b5f4..91325426a39ef6b72fc47f93f7ad2c2d4fe6ea10 100644 --- a/ekms/internal/kms/kms.go +++ b/ekms/internal/kms/kms.go @@ -226,6 +226,14 @@ func (kms *EKMS) AssignForwardingRoute(pId, pHop, nHop string, remoteKMS *Remote kms.routingTable[pathId] = tmpRoute kms.routingTableMutex.Unlock() + if tmpRoute.RemoteKMS != nil { + kms.remoteKMSMappingMutex.Lock() + if _, ok := kms.remoteKMSMapping[tmpRoute.RemoteKMS.Id]; !ok { + kms.remoteKMSMapping[tmpRoute.RemoteKMS.Id] = tmpRoute.RemoteKMS + } + kms.remoteKMSMappingMutex.Unlock() + } + if tmpRoute.Previous == nil && tmpRoute.Next != nil && tmpRoute.RemoteKMS != nil { // generate pk key pk, err := crypto.Random256BitKey() @@ -242,12 +250,6 @@ func (kms *EKMS) AssignForwardingRoute(pId, pHop, nHop string, remoteKMS *Remote return err } - kms.remoteKMSMappingMutex.Lock() - if _, ok := kms.remoteKMSMapping[tmpRoute.RemoteKMS.Id]; !ok { - kms.remoteKMSMapping[tmpRoute.RemoteKMS.Id] = tmpRoute.RemoteKMS - } - kms.remoteKMSMappingMutex.Unlock() - // update PKStore kms.PKStoreMutex.Lock() keys, ok := kms.PKStore[tmpRoute.RemoteKMS.Id] diff --git a/ekms/internal/kms/kmsintercom.go b/ekms/internal/kms/kmsintercom.go index 90c6a60a9702cef912a2b2a7432e8f58b1afb6a6..74905be65fad12d6463b53a54a455155bf59d73a 100644 --- a/ekms/internal/kms/kmsintercom.go +++ b/ekms/internal/kms/kmsintercom.go @@ -255,11 +255,6 @@ func (s *kmsTalkerServer) KeyForwarding(ctx context.Context, in *pb.KeyForwardin }, pathId, processId) } else { log.Infof("%s received the final payload: %s", s.eKMS.kmsName, string(decryptedKey)) - s.eKMS.remoteKMSMappingMutex.Lock() - if _, ok := s.eKMS.remoteKMSMapping[route.RemoteKMS.Id]; !ok { - s.eKMS.remoteKMSMapping[route.RemoteKMS.Id] = route.RemoteKMS - } - s.eKMS.remoteKMSMappingMutex.Unlock() s.eKMS.PKStoreMutex.Lock() keys, ok := s.eKMS.PKStore[route.RemoteKMS.Id] if !ok { diff --git a/ekms/internal/kms/module.go b/ekms/internal/kms/module.go index 5686549781c77c2546539fe1ca51369e5aa7cfc5..59efcaa336b6292ec22f67e2ebf71b00b03b0634 100644 --- a/ekms/internal/kms/module.go +++ b/ekms/internal/kms/module.go @@ -218,7 +218,7 @@ type ETSI014HTTPQuantumModule struct { } func NewETSI014HTTPQuantumModule(addr, kmsId, slaveSAEID, masterSAEID string, master bool) (*ETSI014HTTPQuantumModule, error) { - parsedUrl, err := url.Parse("http://" + addr) + parsedUrl, err := url.Parse(addr) if err != nil { return nil, err }