diff --git a/ComIOP/Common/Client/Da/ComDaClientNodeManager.cs b/ComIOP/Common/Client/Da/ComDaClientNodeManager.cs index f203545e5..89497a1f2 100644 --- a/ComIOP/Common/Client/Da/ComDaClientNodeManager.cs +++ b/ComIOP/Common/Client/Da/ComDaClientNodeManager.cs @@ -825,7 +825,6 @@ protected override ServiceResult CreateMonitoredItem(ServerSystemContext context monitoredItem = datachangeItem; // save the monitored item. - MonitoredItems.Add(monitoredItemId, datachangeItem); monitoredNode.Add(datachangeItem); // report change. diff --git a/ComIOP/Common/UA COM Interop Library.csproj b/ComIOP/Common/UA COM Interop Library.csproj index 2f82ee28f..a5684948c 100644 --- a/ComIOP/Common/UA COM Interop Library.csproj +++ b/ComIOP/Common/UA COM Interop Library.csproj @@ -265,13 +265,13 @@ - 1.5.374.78 + 1.5.374.117-preview - 1.5.374.78 + 1.5.374.117-preview - 1.5.374.78 + 1.5.374.117-preview diff --git a/ComIOP/Wrapper/ServerWrapper/UA COM Server Wrapper.csproj b/ComIOP/Wrapper/ServerWrapper/UA COM Server Wrapper.csproj index 1dd832e5d..31cd40936 100644 --- a/ComIOP/Wrapper/ServerWrapper/UA COM Server Wrapper.csproj +++ b/ComIOP/Wrapper/ServerWrapper/UA COM Server Wrapper.csproj @@ -140,7 +140,7 @@ - 1.5.374.78 + 1.5.374.117-preview diff --git a/Samples/Client.Net4/UA Sample Client.csproj b/Samples/Client.Net4/UA Sample Client.csproj index 50923e26a..1ea02c816 100644 --- a/Samples/Client.Net4/UA Sample Client.csproj +++ b/Samples/Client.Net4/UA Sample Client.csproj @@ -138,7 +138,7 @@ 8.0.0 - 1.5.374.78 + 1.5.374.117-preview 4.3.4 diff --git a/Samples/Client/Opc.Ua.SampleClient.csproj b/Samples/Client/Opc.Ua.SampleClient.csproj index 1e19c268e..2072d5ffb 100644 --- a/Samples/Client/Opc.Ua.SampleClient.csproj +++ b/Samples/Client/Opc.Ua.SampleClient.csproj @@ -158,7 +158,7 @@ 6.2.14 - 1.5.373.121 + 1.5.374.117-preview 4.3.0 diff --git a/Samples/ClientControls.Net4/UA Client Controls.csproj b/Samples/ClientControls.Net4/UA Client Controls.csproj index 9ae69027d..43d9ce1ed 100644 --- a/Samples/ClientControls.Net4/UA Client Controls.csproj +++ b/Samples/ClientControls.Net4/UA Client Controls.csproj @@ -1015,16 +1015,16 @@ - 1.5.374.78 + 1.5.374.114 - 1.5.374.78 + 1.5.374.114 - 1.5.374.78 + 1.5.374.114 - 1.5.374.78 + 1.5.374.114 diff --git a/Samples/ClientControls/Opc.Ua.Client.Controls.csproj b/Samples/ClientControls/Opc.Ua.Client.Controls.csproj index 34a89be15..6be0162a1 100644 --- a/Samples/ClientControls/Opc.Ua.Client.Controls.csproj +++ b/Samples/ClientControls/Opc.Ua.Client.Controls.csproj @@ -267,7 +267,7 @@ 6.2.14 - 1.5.373.121 + 1.5.374.117-preview 4.3.0 diff --git a/Samples/Controls.Net4/UA Sample Controls.csproj b/Samples/Controls.Net4/UA Sample Controls.csproj index 9f77705d5..adc52fc9d 100644 --- a/Samples/Controls.Net4/UA Sample Controls.csproj +++ b/Samples/Controls.Net4/UA Sample Controls.csproj @@ -708,7 +708,7 @@ - 1.5.374.78 + 1.5.374.114 diff --git a/Samples/Controls/Opc.Ua.Sample.Controls.csproj b/Samples/Controls/Opc.Ua.Sample.Controls.csproj index 27df0ad7c..2bf892e72 100644 --- a/Samples/Controls/Opc.Ua.Sample.Controls.csproj +++ b/Samples/Controls/Opc.Ua.Sample.Controls.csproj @@ -207,7 +207,7 @@ 6.2.14 - 1.5.373.121 + 1.5.374.117-preview 4.3.0 diff --git a/Samples/GDS/Client/Controls/ApplicationCertificateControl.cs b/Samples/GDS/Client/Controls/ApplicationCertificateControl.cs index 690ba2f55..042f32479 100644 --- a/Samples/GDS/Client/Controls/ApplicationCertificateControl.cs +++ b/Samples/GDS/Client/Controls/ApplicationCertificateControl.cs @@ -336,7 +336,8 @@ private async void CertificateRequestTimer_Tick(object sender, EventArgs e) }; // update store - using (ICertificateStore store = CertificateStoreIdentifier.OpenStore(m_application.CertificateStorePath, false)) + var certificateStoreIdentifier = new CertificateStoreIdentifier(m_application.CertificateStorePath, false); + using (ICertificateStore store = certificateStoreIdentifier.OpenStore()) { // if we used a CSR, we already have a private key and therefore didn't request one from the GDS // in this case, privateKey is null @@ -436,7 +437,8 @@ private async void CertificateRequestTimer_Tick(object sender, EventArgs e) // update trust list. if (!String.IsNullOrEmpty(m_application.TrustListStorePath)) { - using (ICertificateStore store = CertificateStoreIdentifier.OpenStore(m_application.TrustListStorePath)) + var certificateStoreIdentifier = new CertificateStoreIdentifier(m_application.TrustListStorePath); + using (ICertificateStore store = certificateStoreIdentifier.OpenStore()) { foreach (byte[] issuerCertificate in issuerCertificates) { diff --git a/Samples/GDS/Client/Controls/ApplicationTrustListControl.cs b/Samples/GDS/Client/Controls/ApplicationTrustListControl.cs index 1b3b2b69c..a896d3de0 100644 --- a/Samples/GDS/Client/Controls/ApplicationTrustListControl.cs +++ b/Samples/GDS/Client/Controls/ApplicationTrustListControl.cs @@ -89,8 +89,8 @@ private void ReloadTrustListButton_Click(object sender, EventArgs e) } else { - CertificateStoreControl.Initialize(m_trustListStorePath, m_issuerListStorePath, null); - } + CertificateStoreControl.Initialize(m_trustListStorePath, m_issuerListStorePath, null); + } } else { @@ -120,16 +120,12 @@ private async Task DeleteExistingFromStore(string storePath) return; } - using (DirectoryCertificateStore store = (DirectoryCertificateStore) CertificateStoreIdentifier.OpenStore(storePath)) + var certificateStoreIdentifier = new CertificateStoreIdentifier(storePath); + using (var store = certificateStoreIdentifier.OpenStore()) { X509Certificate2Collection certificates = await store.Enumerate(); foreach (var certificate in certificates) { - if (store.GetPrivateKeyFilePath(certificate.Thumbprint) != null) - { - continue; - } - List fields = X509Utils.ParseDistinguishedName(certificate.Subject); if (fields.Contains("CN=UA Local Discovery Server")) @@ -140,6 +136,11 @@ private async Task DeleteExistingFromStore(string storePath) if (store is DirectoryCertificateStore ds) { + if (ds.GetPrivateKeyFilePath(certificate.Thumbprint) != null) + { + continue; + } + string path = Utils.GetAbsoluteFilePath(m_application.CertificatePublicKeyPath, true, false, false); if (path != null) @@ -205,7 +206,8 @@ private void PullFromGds(bool deleteBeforeAdd) if (!String.IsNullOrEmpty(m_trustListStorePath)) { - using (ICertificateStore store = CertificateStoreIdentifier.OpenStore(m_trustListStorePath)) + var certificateStoreIdentifier = new CertificateStoreIdentifier(m_trustListStorePath); + using (ICertificateStore store = certificateStoreIdentifier.OpenStore()) { if ((trustList.SpecifiedLists & (uint)Opc.Ua.TrustListMasks.TrustedCertificates) != 0) { @@ -233,7 +235,8 @@ private void PullFromGds(bool deleteBeforeAdd) if (!String.IsNullOrEmpty(m_application.IssuerListStorePath)) { - using (ICertificateStore store = CertificateStoreIdentifier.OpenStore(m_application.IssuerListStorePath)) + var certificateStoreIdentifier = new CertificateStoreIdentifier(m_application.IssuerListStorePath); + using (ICertificateStore store = certificateStoreIdentifier.OpenStore()) { if ((trustList.SpecifiedLists & (uint)Opc.Ua.TrustListMasks.IssuerCertificates) != 0) { diff --git a/Samples/GDS/Client/GlobalDiscoveryClient.csproj b/Samples/GDS/Client/GlobalDiscoveryClient.csproj index f226f3fc2..ed3bd84c8 100644 --- a/Samples/GDS/Client/GlobalDiscoveryClient.csproj +++ b/Samples/GDS/Client/GlobalDiscoveryClient.csproj @@ -139,13 +139,10 @@ - 1.5.374.78 + 1.5.374.117-preview - 1.5.374.78 - - - 4.3.4 + 1.5.374.117-preview diff --git a/Samples/GDS/ClientControls/Controls/TrustListControl.cs b/Samples/GDS/ClientControls/Controls/TrustListControl.cs index 6a28bb956..1633bbc8d 100644 --- a/Samples/GDS/ClientControls/Controls/TrustListControl.cs +++ b/Samples/GDS/ClientControls/Controls/TrustListControl.cs @@ -82,8 +82,8 @@ private enum Status private ICertificateStore CreateStore(string storePath) { - ICertificateStore store = CertificateStoreIdentifier.CreateStore(CertificateStoreIdentifier.DetermineStoreType(storePath)); - store.Open(storePath); + CertificateStoreIdentifier certificateStoreIdentifier = new CertificateStoreIdentifier(storePath); + ICertificateStore store = certificateStoreIdentifier.OpenStore(); return store; } diff --git a/Samples/GDS/ClientControls/GlobalDiscoveryClientControls.csproj b/Samples/GDS/ClientControls/GlobalDiscoveryClientControls.csproj index 1837fedd0..4db73024e 100644 --- a/Samples/GDS/ClientControls/GlobalDiscoveryClientControls.csproj +++ b/Samples/GDS/ClientControls/GlobalDiscoveryClientControls.csproj @@ -217,10 +217,10 @@ - 1.5.374.78 + 1.5.374.117-preview - 1.5.374.78 + 1.5.374.117-preview diff --git a/Samples/GDS/ConsoleServer/NetCoreGlobalDiscoveryServer.csproj b/Samples/GDS/ConsoleServer/NetCoreGlobalDiscoveryServer.csproj index 7c57d95fa..7c7ac20e6 100644 --- a/Samples/GDS/ConsoleServer/NetCoreGlobalDiscoveryServer.csproj +++ b/Samples/GDS/ConsoleServer/NetCoreGlobalDiscoveryServer.csproj @@ -14,8 +14,8 @@ - - + + diff --git a/Samples/GDS/ConsoleServer/Program.cs b/Samples/GDS/ConsoleServer/Program.cs index 949750df2..d118781e3 100644 --- a/Samples/GDS/ConsoleServer/Program.cs +++ b/Samples/GDS/ConsoleServer/Program.cs @@ -167,20 +167,22 @@ public void Run() return; } - ManualResetEvent quitEvent = new ManualResetEvent(false); - try - { - Console.CancelKeyPress += (sender, eArgs) => { - quitEvent.Set(); - eArgs.Cancel = true; - }; - } - catch + using (ManualResetEvent quitEvent = new ManualResetEvent(false)) { - } + try + { + Console.CancelKeyPress += (sender, eArgs) => { + quitEvent.Set(); + eArgs.Cancel = true; + }; + } + catch + { + } - // wait for timeout or Ctrl-C - quitEvent.WaitOne(); + // wait for timeout or Ctrl-C + quitEvent.WaitOne(); + } if (server != null) { @@ -318,18 +320,18 @@ void PrintSessionStatus(Session session, string reason, bool lastContact = false { lock (session.DiagnosticsLock) { - string item = String.Format("{0,9}:{1,20}:", reason, session.SessionDiagnostics.SessionName); + string item = Utils.Format("{0,9}:{1,20}:", reason, session.SessionDiagnostics.SessionName); if (lastContact) { - item += String.Format("Last Event:{0:HH:mm:ss}", session.SessionDiagnostics.ClientLastContactTime.ToLocalTime()); + item += Utils.Format("Last Event:{0:HH:mm:ss}", session.SessionDiagnostics.ClientLastContactTime.ToLocalTime()); } else { if (session.Identity != null) { - item += String.Format(":{0,20}", session.Identity.DisplayName); + item += Utils.Format(":{0,20}", session.Identity.DisplayName); } - item += String.Format(":{0}", session.Id); + item += Utils.Format(":{0}", session.Id); } Console.WriteLine(item); } diff --git a/Samples/GDS/Server/DB/gdsdb.edmx b/Samples/GDS/Server/DB/gdsdb.edmx index 7ecdec294..0b3d00a0f 100644 --- a/Samples/GDS/Server/DB/gdsdb.edmx +++ b/Samples/GDS/Server/DB/gdsdb.edmx @@ -130,7 +130,9 @@ - + + + @@ -276,7 +278,9 @@ - + + + diff --git a/Samples/GDS/Server/DB/gdsdb.edmx.sql b/Samples/GDS/Server/DB/gdsdb.edmx.sql index 32d4e196f..8bfd66732 100644 --- a/Samples/GDS/Server/DB/gdsdb.edmx.sql +++ b/Samples/GDS/Server/DB/gdsdb.edmx.sql @@ -32,6 +32,9 @@ GO IF OBJECT_ID(N'[dbo].[FK_CertificateRequests_Applications]', 'F') IS NOT NULL ALTER TABLE [dbo].[CertificateRequests] DROP CONSTRAINT [FK_CertificateRequests_Applications]; GO +IF OBJECT_ID(N'[dbo].[CertificateStoreApplication]', 'F') IS NOT NULL + ALTER TABLE [dbo].[CertificateStores] DROP CONSTRAINT [CertificateStoreApplication] +GO -- -------------------------------------------------- -- Dropping existing tables @@ -204,7 +207,7 @@ ADD CONSTRAINT [FK_CertificateStoreApplication] FOREIGN KEY ([Application_ID]) REFERENCES [dbo].[Applications] ([ID]) - ON DELETE NO ACTION ON UPDATE NO ACTION; + ON DELETE CASCADE ON UPDATE NO ACTION; GO -- Creating non-clustered index for FOREIGN KEY 'FK_CertificateStoreApplication' diff --git a/Samples/GDS/Server/GlobalDiscoveryServer.csproj b/Samples/GDS/Server/GlobalDiscoveryServer.csproj index c78ccb6ac..f89e49d73 100644 --- a/Samples/GDS/Server/GlobalDiscoveryServer.csproj +++ b/Samples/GDS/Server/GlobalDiscoveryServer.csproj @@ -235,10 +235,10 @@ 6.5.1 - 1.5.374.78 + 1.5.374.117-preview - 1.5.374.78 + 1.5.374.117-preview diff --git a/Samples/GDS/Server/Opc.Ua.GlobalDiscoveryServer.Config.xml b/Samples/GDS/Server/Opc.Ua.GlobalDiscoveryServer.Config.xml index 0f5992dbe..b4bb1f133 100644 --- a/Samples/GDS/Server/Opc.Ua.GlobalDiscoveryServer.Config.xml +++ b/Samples/GDS/Server/Opc.Ua.GlobalDiscoveryServer.Config.xml @@ -136,7 +136,7 @@ Default RsaSha256ApplicationCertificateType - CN=IOP-2017 CA, O=OPC Foundation + CN=IOP-2024 CA, O=OPC Foundation %CommonApplicationData%/OPC Foundation/GDS/PKI/CA/default 12 2048 diff --git a/Samples/Opc.Ua.Sample/Opc.Ua.Sample.csproj b/Samples/Opc.Ua.Sample/Opc.Ua.Sample.csproj index 88a8febaf..a9485c8e4 100644 --- a/Samples/Opc.Ua.Sample/Opc.Ua.Sample.csproj +++ b/Samples/Opc.Ua.Sample/Opc.Ua.Sample.csproj @@ -23,8 +23,8 @@ - - + + diff --git a/Samples/ReferenceClient/Reference Client.csproj b/Samples/ReferenceClient/Reference Client.csproj index d0500fbb3..2507791ee 100644 --- a/Samples/ReferenceClient/Reference Client.csproj +++ b/Samples/ReferenceClient/Reference Client.csproj @@ -127,16 +127,16 @@ - 1.5.374.78 + 1.5.374.117-preview - 1.5.374.78 + 1.5.374.117-preview - 1.5.374.78 + 1.5.374.117-preview - 1.5.374.78 + 1.5.374.117-preview diff --git a/Samples/ReferenceServer/Reference Server.csproj b/Samples/ReferenceServer/Reference Server.csproj index 41a8be573..8e4109f15 100644 --- a/Samples/ReferenceServer/Reference Server.csproj +++ b/Samples/ReferenceServer/Reference Server.csproj @@ -139,13 +139,13 @@ - 1.5.374.78 + 1.5.374.117-preview - 1.5.374.78 + 1.5.374.117-preview - 1.5.374.78 + 1.5.374.117-preview 4.0.0 diff --git a/Samples/Server.Net4/UA Sample Server.csproj b/Samples/Server.Net4/UA Sample Server.csproj index 91e31974c..649600d0e 100644 --- a/Samples/Server.Net4/UA Sample Server.csproj +++ b/Samples/Server.Net4/UA Sample Server.csproj @@ -146,7 +146,7 @@ 8.0.0 - 1.5.374.78 + 1.5.374.117-preview diff --git a/Samples/Server/Opc.Ua.SampleServer.csproj b/Samples/Server/Opc.Ua.SampleServer.csproj index e9bb5d22d..c19b61464 100644 --- a/Samples/Server/Opc.Ua.SampleServer.csproj +++ b/Samples/Server/Opc.Ua.SampleServer.csproj @@ -158,7 +158,7 @@ 6.2.14 - 1.5.373.121 + 1.5.374.117-preview 4.3.0 diff --git a/Samples/ServerControls.Net4/UA Server Controls.csproj b/Samples/ServerControls.Net4/UA Server Controls.csproj index 2896fee32..5237cb82b 100644 --- a/Samples/ServerControls.Net4/UA Server Controls.csproj +++ b/Samples/ServerControls.Net4/UA Server Controls.csproj @@ -148,13 +148,13 @@ - 1.5.374.78 + 1.5.374.117-preview - 1.5.374.78 + 1.5.374.117-preview - 1.5.374.78 + 1.5.374.117-preview diff --git a/Samples/XamarinClient/XamarinClient/UA Xamarin Client.csproj b/Samples/XamarinClient/XamarinClient/UA Xamarin Client.csproj index 8c1d179b7..d04f253cb 100644 --- a/Samples/XamarinClient/XamarinClient/UA Xamarin Client.csproj +++ b/Samples/XamarinClient/XamarinClient/UA Xamarin Client.csproj @@ -5,7 +5,7 @@ - + diff --git a/Workshop/Aggregation/Client/Aggregation Client.csproj b/Workshop/Aggregation/Client/Aggregation Client.csproj index 140f08440..283130794 100644 --- a/Workshop/Aggregation/Client/Aggregation Client.csproj +++ b/Workshop/Aggregation/Client/Aggregation Client.csproj @@ -134,7 +134,7 @@ - 1.5.374.78 + 1.5.374.117-preview diff --git a/Workshop/Aggregation/ConsoleAggregationServer/ConsoleAggregationServer.csproj b/Workshop/Aggregation/ConsoleAggregationServer/ConsoleAggregationServer.csproj index 7ea8d9d7d..52a28a002 100644 --- a/Workshop/Aggregation/ConsoleAggregationServer/ConsoleAggregationServer.csproj +++ b/Workshop/Aggregation/ConsoleAggregationServer/ConsoleAggregationServer.csproj @@ -41,16 +41,16 @@ - - - + + + - - - + + + diff --git a/Workshop/Aggregation/Server/Aggregation Server.csproj b/Workshop/Aggregation/Server/Aggregation Server.csproj index 70914d1b5..4ebed9165 100644 --- a/Workshop/Aggregation/Server/Aggregation Server.csproj +++ b/Workshop/Aggregation/Server/Aggregation Server.csproj @@ -129,16 +129,16 @@ - 1.5.374.78 + 1.5.374.117-preview - 1.5.374.78 + 1.5.374.117-preview - 1.5.374.78 + 1.5.374.117-preview - 1.5.374.78 + 1.5.374.117-preview diff --git a/Workshop/Aggregation/Server/Quickstarts.AggregationServer.Config.xml b/Workshop/Aggregation/Server/Quickstarts.AggregationServer.Config.xml index df2914710..c7e7e7d65 100644 --- a/Workshop/Aggregation/Server/Quickstarts.AggregationServer.Config.xml +++ b/Workshop/Aggregation/Server/Quickstarts.AggregationServer.Config.xml @@ -155,7 +155,7 @@ 20 100 10000 - + http://opcfoundation.org/UA-Profile/Server/StandardUA2017 @@ -231,7 +231,7 @@ true 0 - + @@ -36,11 +36,11 @@ %CommonApplicationData%\OPC Foundation\pki\rejected - true + true - + - + 600000 1048576 @@ -83,5 +83,5 @@ - + \ No newline at end of file diff --git a/Workshop/SimpleEvents/Server/SimpleEvents Server.csproj b/Workshop/SimpleEvents/Server/SimpleEvents Server.csproj index 312402288..7536eaa9c 100644 --- a/Workshop/SimpleEvents/Server/SimpleEvents Server.csproj +++ b/Workshop/SimpleEvents/Server/SimpleEvents Server.csproj @@ -137,7 +137,7 @@ - 1.5.374.78 + 1.5.374.117-preview diff --git a/Workshop/UserAuthentication/Client/UserAuthentication Client.csproj b/Workshop/UserAuthentication/Client/UserAuthentication Client.csproj index 57225fa54..7c8631e3b 100644 --- a/Workshop/UserAuthentication/Client/UserAuthentication Client.csproj +++ b/Workshop/UserAuthentication/Client/UserAuthentication Client.csproj @@ -125,7 +125,7 @@ - 1.5.374.78 + 1.5.374.117-preview diff --git a/Workshop/UserAuthentication/Server/UserAuthentication Server.csproj b/Workshop/UserAuthentication/Server/UserAuthentication Server.csproj index 4f49a8721..aa393799c 100644 --- a/Workshop/UserAuthentication/Server/UserAuthentication Server.csproj +++ b/Workshop/UserAuthentication/Server/UserAuthentication Server.csproj @@ -154,7 +154,7 @@ - 1.5.374.78 + 1.5.374.117-preview diff --git a/Workshop/Views/Client/Views Client.csproj b/Workshop/Views/Client/Views Client.csproj index 65f5acc24..f241851f1 100644 --- a/Workshop/Views/Client/Views Client.csproj +++ b/Workshop/Views/Client/Views Client.csproj @@ -131,7 +131,7 @@ - 1.5.374.78 + 1.5.374.117-preview diff --git a/Workshop/Views/Server/Views Server.csproj b/Workshop/Views/Server/Views Server.csproj index 0baa585a9..f94b02d3c 100644 --- a/Workshop/Views/Server/Views Server.csproj +++ b/Workshop/Views/Server/Views Server.csproj @@ -145,7 +145,7 @@ - 1.5.374.78 + 1.5.374.117-preview