Opc.Ua.Configuration.ApplicationInstance.AddApplicationCertificateToStore C# (CSharp) Method

AddApplicationCertificateToStore() private static method

Adds an application certificate to a store.
private static AddApplicationCertificateToStore ( CertificateStoreIdentifier csid, X509Certificate2 certificate, string oldThumbprint ) : void
csid CertificateStoreIdentifier
certificate System.Security.Cryptography.X509Certificates.X509Certificate2
oldThumbprint string
return void
        private static void AddApplicationCertificateToStore(
            CertificateStoreIdentifier csid,
            X509Certificate2 certificate,
            string oldThumbprint)
        {
            ICertificateStore store = csid.OpenStore();

            try
            {
                // delete the old certificate.
                if (oldThumbprint != null)
                {
                    store.Delete(oldThumbprint);
                }

                // delete certificates with the same application uri.
                if (store.FindByThumbprint(certificate.Thumbprint) == null)
                {
                    string applicationUri = Utils.GetApplicationUriFromCertficate(certificate);

                    // delete any existing certificates.
                    foreach (X509Certificate2 target in store.Enumerate())
                    {
                        if (Utils.CompareDistinguishedName(target.Subject, certificate.Subject))
                        {
                            if (Utils.GetApplicationUriFromCertficate(target) == applicationUri)
                            {
                                store.Delete(target.Thumbprint);
                            }
                        }
                    }

                    // add new certificate.
                    store.Add(new X509Certificate2(certificate.RawData));
                }
            }
            finally
            {
                store.Close();
            }
        }