Skip to content
Snippets Groups Projects
Verified Commit e3808106 authored by Malte Bauch's avatar Malte Bauch
Browse files

Immediately start go routine within etsi qm init method

parent 43bac398
No related branches found
No related tags found
1 merge request!213Allow to reset key store and stop key fetching
Pipeline #224221 failed
......@@ -35,13 +35,21 @@ type kmsTalkerServer struct {
func (s *kmsTalkerServer) InterComCapabilities(ctx context.Context, in *pb.InterComCapabilitiesRequest) (capReply *pb.InterComCapabilitiesReply, err error) {
log.Debugf("Received InterComCapabilities request from peer KMS: %v", in.GetKmsId())
peer, err := s.kms.FindPeerById(in.GetKmsId())
peerKmsId := in.GetKmsId()
peer, err := s.kms.FindPeerById(peerKmsId)
if err != nil {
return nil, status.Errorf(codes.Aborted, err.Error(), in.GetKmsId())
}
peer.QuantumModule().Reset()
peer.QuantumModule().Initialize()
if in.ResetKeyStore {
log.Debugf("Resetting quantum module: %s for peer: %s", peerKmsId)
peer.QuantumModule().Reset()
log.Debugf("Initializing quantum module: %s for peer: %s", peerKmsId)
if err := peer.QuantumModule().Initialize(); err != nil {
return nil, status.Errorf(codes.Aborted, err.Error(), in.GetKmsId())
}
log.Debugf("Successfully initialized quantum module: %s for peer %s", peer.QuantumModule().ID(), peerKmsId)
}
// NOTE: InterComCapabilities should return the capabilities of the kms.
// This could include supported key sizes, crypto algorithms, etc.
......@@ -148,7 +156,9 @@ func (s *kmsTalkerServer) SyncKeyIdsForBulk(ctx context.Context, in *pb.SyncKeyI
}
for keyId, key := range keyData {
eqm.KeyStore().AddKey(keyId, key)
if err := eqm.KeyStore().AddKey(keyId, key); err != nil {
log.Error(err)
}
}
delete(eqm.RawBulkKeys, in.GetBulkId())
......
......@@ -120,7 +120,9 @@ func (qm *DanetQuantumModule) Sync() error {
}
for keyId, key := range keyData {
qm.keyStore.AddKey(keyId, key)
if err := qm.keyStore.AddKey(keyId, key); err != nil {
log.Error(err)
}
}
qm.RawBulkKeysMutex.Lock()
......
......@@ -118,16 +118,17 @@ func (qm *ETSI014HTTPQuantumModule) Initialize() error {
// start polling keys
if qm.master {
go func() {
restartWaitingTime := time.Duration(20) * time.Second
restartWaitingTime := time.Duration(2) * time.Minute
ticker := time.NewTicker(restartWaitingTime)
defer ticker.Stop()
// immediately start with the ticker instead of waiting the defined amount
RestartFetchLoop:
for {
// immediately start with the ticker instead of waiting the defined amount
qm.doKeyFetching(ctx)
select {
case <-ticker.C:
qm.doKeyFetching(ctx)
continue
case <-ctx.Done():
break RestartFetchLoop
}
......
......@@ -120,7 +120,9 @@ func AddETSIKeysToKeystore(keyStore *KmsKeyStore, keyContainer []etsi14.KeyConta
return err
}
// add to keystore
keyStore.AddKey(keyId, key)
if err := keyStore.AddKey(keyId, key); err != nil {
log.Error(err)
}
}
log.Debugf("Current key store length: %d", keyStore.Length())
return nil
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment