Exemplo n.º 1
0
        /// <summary>
        /// Get all issued certificates
        /// </summary>
        /// <param name="store"></param>
        /// <param name="issuerCert"></param>
        /// <param name="isIssuer"></param>
        /// <param name="disabled"></param>
        /// <param name="stillValid"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        public static async Task <IEnumerable <Certificate> > GetIssuedCertificatesAsync(
            this ICertificateStore store, Certificate issuerCert, bool?isIssuer = null,
            bool disabled = false, bool stillValid = true, CancellationToken ct = default)
        {
            var ski = issuerCert.GetSubjectKeyIdentifierExtension();

            return(await store.QueryAllCertificatesAsync(
                       new CertificateFilter {
                Issuer = issuerCert.Subject,
                IssuerKeyId = ski.SubjectKeyIdentifier,
                IssuerSerialNumber = issuerCert.SerialNumber,
                NotAfter = stillValid ? DateTime.UtcNow : (DateTime?)null,
                NotBefore = stillValid ? DateTime.UtcNow : (DateTime?)null,
                IsIssuer = isIssuer,
                IncludeDisabled = disabled,
                ExcludeEnabled = disabled
            }, ct));
        }