Ejemplo n.º 1
0
        /// <summary>
        /// Query all certificates
        /// </summary>
        /// <param name="store"></param>
        /// <param name="filter"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        public static async Task <IEnumerable <Certificate> > QueryAllCertificatesAsync(
            this ICertificateStore store, CertificateFilter filter,
            CancellationToken ct = default)
        {
            var results = await store.QueryCertificatesAsync(filter, null, ct);

            var certificates = new List <Certificate>(results.Certificates);

            while (results.ContinuationToken != null)
            {
                results = await store.ListCertificatesAsync(
                    results.ContinuationToken, null, ct);

                certificates.AddRange(results.Certificates);
            }
            return(certificates);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Get certificate chain of trust.
        /// </summary>
        /// <param name="store"></param>
        /// <param name="certificate">certificate</param>
        /// <param name="ct"></param>
        /// <returns></returns>
        public static async Task <IEnumerable <Certificate> > ListCompleteCertificateChainAsync(
            this ICertificateStore store, Certificate certificate,
            CancellationToken ct = default)
        {
            var certificates = new List <Certificate>();
            var chain        = await store.ListCertificateChainAsync(certificate, ct);

            if (chain != null)
            {
                certificates.AddRange(chain.Certificates);
            }
            while (chain?.ContinuationToken != null)
            {
                chain = await store.ListCertificatesAsync(
                    chain.ContinuationToken, null, ct);

                certificates.AddRange(chain.Certificates);
            }
            return(certificates);
        }