private void TrustCoordinatorModule_MessageClientRegistered(object sender, MessageClientRegisteredEventArgs e) { e.MessageClient.MessageReceived += MessageClient_MessageReceived; // Create first key //TODO: How to pick validity. currentKey = CreateNewKey(e.MessageClient.SystemName, DateTime.Now); e.MessageClient.PublicKeystore.TrustZoneSharedKeys.Add(currentKey); }
public TrustZoneSharedKeyUpdate(TrustZoneSharedKey sharedKey) : base() { if (sharedKey is null) { throw new ArgumentNullException(nameof(sharedKey)); } SharedKey = sharedKey; }
/// <summary> /// When called, updates the trust zone's shared key. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void KeyUpdateTimer_Elapsed(object sender, ElapsedEventArgs e) { var newKey = CreateNewKey(currentKey.TrustZoneName, currentKey.ValidTo); var updateMessage = new TrustZoneSharedKeyUpdate(newKey); this.MessageClient.BroadcastToAllClients(updateMessage, true); keyUpdateTimer.Interval = (newKey.ValidTo - DateTime.Now - UpdateLeadTime).TotalMilliseconds; keyUpdateTimer.Start(); Timer tempTimer = new Timer() { Interval = (newKey.ValidFrom - DateTime.Now).TotalMilliseconds, Enabled = true }; tempTimer.Elapsed += (sender, e) => { currentKey = newKey; tempTimer?.Dispose(); }; }
internal ClientAnnounceResponseMessage(AnnounceResponse response, TrustZoneSharedKey trustZoneSharedKey) : base() { Response = response; TrustZoneSharedKey = trustZoneSharedKey; }