Exemplo n.º 1
0
        public BackendDataViewModel()
        {
            certificateLargeIcon = "Resources/CertificateImages/certificate_large.png";
            _certsList           = new ObservableCollection <CertViewModel>();
            cert_collection      = new X509Certificate2Collection();
            rootCA = new CertViewModel {
                CertLabel = "rootCA"
            };
            rootCA.CertificateSelectionChanged += this.CertificateSelectionChanged;
            RNCert = new CertViewModel {
                CertLabel = "RN cert"
            };
            RNCert.CertificateSelectionChanged += this.CertificateSelectionChanged;
            intermediateCA = new CertViewModel {
                CertLabel = "citizen CA"
            };
            intermediateCA.CertificateSelectionChanged += this.CertificateSelectionChanged;
            authCert = new CertViewModel {
                CertLabel = "Authentication"
            };
            authCert.CertificateSelectionChanged += this.CertificateSelectionChanged;
            signCert = new CertViewModel {
                CertLabel = "Signature"
            };
            signCert.CertificateSelectionChanged += this.CertificateSelectionChanged;

            certsList.Add(rootCA);

            certsList[0].Certs.Add(RNCert);
            certsList[0].Certs.Add(intermediateCA);

            certsList[0].Certs[1].Certs.Add(authCert);
            certsList[0].Certs[1].Certs.Add(signCert);
        }
Exemplo n.º 2
0
        //event function notified by CertViewModel when an other certificate is selected
        public void CertificateSelectionChanged(object sender, EventArgs e)
        {
            CertViewModel certificate = sender as CertViewModel;

            cert_valid_from   = certificate.CertValidfrom;
            cert_valid_untill = certificate.CertValidUntill;
            cert_usage        = certificate.CertUsage;
            cert_trust        = certificate.CertTrust;
        }
Exemplo n.º 3
0
        private void StoreCertificate(ref CertViewModel theCertViewModel, ref X509Certificate2 theX509Certificate)
        {
            theCertViewModel.CertValidfrom   = theX509Certificate.GetEffectiveDateString();
            theCertViewModel.CertValidUntill = theX509Certificate.GetExpirationDateString();
            theCertViewModel.CertVisibility  = Visibility.Visible;
            theCertViewModel.CertTrust       = "Not checked";

            foreach (X509Extension extension in theX509Certificate.Extensions)
            {
                //Console.WriteLine(extension.Oid.FriendlyName + "(" + extension.Oid.Value + ")");
                if (extension.Oid.Value == "2.5.29.15")//OID_KEY_USAGE
                {
                    theCertViewModel.CertUsage = "";
                    X509KeyUsageExtension ext = (X509KeyUsageExtension)extension;

                    if (ext.KeyUsages.HasFlag(X509KeyUsageFlags.DigitalSignature))
                    {
                        theCertViewModel.CertUsage += "DigitalSignature ";
                    }
                    if (ext.KeyUsages.HasFlag(X509KeyUsageFlags.NonRepudiation))
                    {
                        theCertViewModel.CertUsage += "NonRepudiation ";
                    }
                    if (ext.KeyUsages.HasFlag(X509KeyUsageFlags.KeyCertSign))
                    {
                        theCertViewModel.CertUsage += "KeyCertSign ";
                    }
                    if (ext.KeyUsages.HasFlag(X509KeyUsageFlags.DataEncipherment))
                    {
                        theCertViewModel.CertUsage += "DataEncipherment ";
                    }
                    if (ext.KeyUsages.HasFlag(X509KeyUsageFlags.DecipherOnly))
                    {
                        theCertViewModel.CertUsage += "DecipherOnly ";
                    }
                    if (ext.KeyUsages.HasFlag(X509KeyUsageFlags.EncipherOnly))
                    {
                        theCertViewModel.CertUsage += "EncipherOnly ";
                    }
                    if (ext.KeyUsages.HasFlag(X509KeyUsageFlags.KeyAgreement))
                    {
                        theCertViewModel.CertUsage += "KeyAgreement ";
                    }
                    if (ext.KeyUsages.HasFlag(X509KeyUsageFlags.KeyEncipherment))
                    {
                        theCertViewModel.CertUsage += "KeyEncipherment ";
                    }
                    if (ext.KeyUsages == (X509KeyUsageFlags.None))
                    {
                        theCertViewModel.CertUsage += "No key usage parameters ";
                    }
                }
            }
        }