/// <summary>
/// Returns the issuers for the certificate.
/// </summary>
/// <param name="certificate">The certificate.</param>
/// <param name="issuers">The issuers.</param>
/// <returns></returns>
public async Task <bool> GetIssuers(X509Certificate2 certificate, List <CertificateIdentifier> issuers)
{
bool isTrusted = false;
CertificateIdentifier issuer = null;
do
{
issuer = await GetIssuer(certificate, m_trustedCertificateList, m_trustedCertificateStore, true);
if (issuer == null)
{
issuer = await GetIssuer(certificate, m_issuerCertificateList, m_issuerCertificateStore, true);
}
else
{
isTrusted = true;
}
if (issuer != null)
{
issuers.Add(issuer);
certificate = await issuer.Find(false);
// check for root.
if (Utils.CompareDistinguishedName(certificate.Subject, certificate.Issuer))
{
break;
}
}
}while (issuer != null);
return(isTrusted);
}