private void OnStart(StartActionUnit unit) { List <ActionBase> nextItems = new List <ActionBase>(5); if (_securityManagerInfo.Network.IsEnabledS0) { nextItems.Add(_expectSchemeGet); } if (_securityManagerInfo.Network.IsEnabledS2_ACCESS || _securityManagerInfo.Network.IsEnabledS2_AUTHENTICATED || _securityManagerInfo.Network.IsEnabledS2_UNAUTHENTICATED) { nextItems.Add(_expectKexGet); } nextItems.Add(_learnMode); unit.SetNextActionItems(nextItems.ToArray()); }
private void PrepareRequestNetworkKey(StartActionUnit ou) { if (SupportedSecuritySchemes == 0) { _securityManagerInfo.ActivateNetworkKeyS0Temp(); requestNetworkKey.DestNodeId = NodeId; requestNetworkKey.SrcNodeId = VirtualNodeId; ou.SetNextActionItems(requestNetworkKey); if (_securityManagerInfo.DelaysS0.ContainsKey(SecurityS0Delays.SchemeReport)) { Thread.Sleep(_securityManagerInfo.DelaysS0[SecurityS0Delays.SchemeReport]); } } else { SpecificResult.SubstituteStatus = SubstituteStatuses.Failed; SetStateCompletedSecurityFailed(ou); } }