/// <summary> /// Updates the XML document with the new configuration information. /// </summary> private static void UpdateDocument(XmlElement element, SecuredApplication application) { for (XmlNode node = element.FirstChild; node != null; node = node.NextSibling) { if (node.Name == "ApplicationName" && node.NamespaceURI == Namespaces.OpcUaConfig) { node.InnerText = application.ApplicationName; continue; } if (node.Name == "ApplicationUri" && node.NamespaceURI == Namespaces.OpcUaConfig) { node.InnerText = application.ApplicationUri; continue; } if (node.Name == "SecurityConfiguration" && node.NamespaceURI == Namespaces.OpcUaConfig) { SecurityConfiguration security = (SecurityConfiguration)GetObject(typeof(SecurityConfiguration), node); if (application.ApplicationCertificate != null) { security.ApplicationCertificate = SecuredApplication.FromCertificateIdentifier(application.ApplicationCertificate); } security.TrustedIssuerCertificates = SecuredApplication.FromCertificateStoreIdentifierToTrustList(application.IssuerCertificateStore); security.TrustedIssuerCertificates.TrustedCertificates = SecuredApplication.FromCertificateList(application.IssuerCertificates); security.TrustedPeerCertificates = SecuredApplication.FromCertificateStoreIdentifierToTrustList(application.TrustedCertificateStore); security.TrustedPeerCertificates.TrustedCertificates = SecuredApplication.FromCertificateList(application.TrustedCertificates); security.RejectedCertificateStore = SecuredApplication.FromCertificateStoreIdentifier(application.RejectedCertificatesStore); node.InnerXml = SetObject(typeof(SecurityConfiguration), security); continue; } if (node.Name == "ServerConfiguration" && node.NamespaceURI == Namespaces.OpcUaConfig) { ServerConfiguration configuration = (ServerConfiguration)GetObject(typeof(ServerConfiguration), node); SecuredApplication.FromListOfBaseAddresses(configuration, application.BaseAddresses); configuration.SecurityPolicies = SecuredApplication.FromListOfSecurityProfiles(application.SecurityProfiles); node.InnerXml = SetObject(typeof(ServerConfiguration), configuration); continue; } else if (node.Name == "DiscoveryServerConfiguration" && node.NamespaceURI == Namespaces.OpcUaConfig) { DiscoveryServerConfiguration configuration = (DiscoveryServerConfiguration)GetObject(typeof(DiscoveryServerConfiguration), node); SecuredApplication.FromListOfBaseAddresses(configuration, application.BaseAddresses); configuration.SecurityPolicies = SecuredApplication.FromListOfSecurityProfiles(application.SecurityProfiles); node.InnerXml = SetObject(typeof(DiscoveryServerConfiguration), configuration); continue; } } }
/// <summary> /// Gets the certificate associated with the identifier. /// </summary> public async Task <X509Certificate2> Find(bool needPrivateKey) { Opc.Ua.CertificateIdentifier output = SecuredApplication.FromCertificateIdentifier(this); return(await output.Find(needPrivateKey)); }
/// <summary> /// Opens the certificate store. /// </summary> public ICertificateStore OpenStore() { Opc.Ua.CertificateIdentifier output = SecuredApplication.FromCertificateIdentifier(this); return(output.OpenStore()); }
/// <summary> /// Gets the certificate associated with the identifier. /// </summary> public async Task <X509Certificate2> Find() { Opc.Ua.CertificateIdentifier output = SecuredApplication.FromCertificateIdentifier(this); return(await output.Find(false)); }
/// <summary> /// Gets the private key file path. /// </summary> public string GetPrivateKeyFilePath() { Opc.Ua.CertificateIdentifier output = SecuredApplication.FromCertificateIdentifier(this); return(output.GetPrivateKeyFilePath()); }
/// <summary> /// Gets the certificate associated with the identifier. /// </summary> public System.Security.Cryptography.X509Certificates.X509Certificate2 Find(bool needPrivateKey) { Opc.Ua.CertificateIdentifier output = SecuredApplication.FromCertificateIdentifier(this); return(output.Find(needPrivateKey)); }
/// <summary> /// Gets the certificate associated with the identifier. /// </summary> public System.Security.Cryptography.X509Certificates.X509Certificate2 Find() { Opc.Ua.CertificateIdentifier output = SecuredApplication.FromCertificateIdentifier(this); return(output.Find(false)); }
/// <summary> /// Gets the private key file path. /// </summary> public async Task <string> GetPrivateKeyFilePath() { Opc.Ua.CertificateIdentifier output = SecuredApplication.FromCertificateIdentifier(this); return(await output.GetPrivateKeyFilePath()); }