Exemple #1
0
        public virtual void ValidateCertificate(X509Certificate2 certificate, DateTime signatureDate)
        {
            var certificateValidRule = new IsCertificateValidRule(signatureDate);

            if (!certificateValidRule.IsSatisfied(certificate))
            {
                var errors = new List <Exception>();

                foreach (var message in certificateValidRule.Messages)
                {
                    errors.Add(new InvalidDataException(message));
                }

                if (errors.Count > 0)
                {
#if (DEBUG)
                    Debug.WriteLine(string.Join(Environment.NewLine, errors));
#else
                    throw new AggregateException(errors);
#endif
                }
            }
        }
        private void ValidateCertificates(X509Certificate2 userCertificate)
        {
            var certificateValidRule = new IsCertificateValidRule();

            if (certificateValidRule.IsSatisfied(userCertificate) == false)
            {
                var errors = new List<string>();

                foreach (var chainStatus in certificateValidRule.Chain.ChainStatus)
                {
                    if (chainStatus.Status != X509ChainStatusFlags.NoError)
                    {
                        errors.Add(chainStatus.StatusInformation);
                    }
                }

                if (errors.Count > 0)
                {
                    throw new CertificateNotValidException(errors);
                }
            }
        }