Files
SuperVPN/output/Libraries/BouncyCastle.Crypto/Org/BouncyCastle/Pkix/PkixCrlUtilities.cs
2025-10-09 09:57:24 +09:00

89 lines
2.0 KiB
C#

using System;
using System.Collections;
using Org.BouncyCastle.Utilities.Collections;
using Org.BouncyCastle.X509;
using Org.BouncyCastle.X509.Store;
namespace Org.BouncyCastle.Pkix;
public class PkixCrlUtilities
{
public virtual ISet FindCrls(X509CrlStoreSelector crlselect, PkixParameters paramsPkix, DateTime currentDate)
{
ISet set = new HashSet();
try
{
set.AddAll(FindCrls(crlselect, paramsPkix.GetAdditionalStores()));
set.AddAll(FindCrls(crlselect, paramsPkix.GetStores()));
}
catch (Exception innerException)
{
throw new Exception("Exception obtaining complete CRLs.", innerException);
}
ISet set2 = new HashSet();
DateTime dateTime = currentDate;
if (paramsPkix.Date != null)
{
dateTime = paramsPkix.Date.Value;
}
foreach (X509Crl item in set)
{
if (item.NextUpdate.Value.CompareTo((object?)dateTime) <= 0)
{
continue;
}
X509Certificate certificateChecking = crlselect.CertificateChecking;
if (certificateChecking != null)
{
if (item.ThisUpdate.CompareTo((object?)certificateChecking.NotAfter) < 0)
{
set2.Add(item);
}
}
else
{
set2.Add(item);
}
}
return set2;
}
public virtual ISet FindCrls(X509CrlStoreSelector crlselect, PkixParameters paramsPkix)
{
ISet set = new HashSet();
try
{
set.AddAll(FindCrls(crlselect, paramsPkix.GetStores()));
return set;
}
catch (Exception innerException)
{
throw new Exception("Exception obtaining complete CRLs.", innerException);
}
}
private ICollection FindCrls(X509CrlStoreSelector crlSelect, IList crlStores)
{
ISet set = new HashSet();
Exception ex = null;
bool flag = false;
foreach (IX509Store crlStore in crlStores)
{
try
{
set.AddAll(crlStore.GetMatches(crlSelect));
flag = true;
}
catch (X509StoreException innerException)
{
ex = new Exception("Exception searching in X.509 CRL store.", innerException);
}
}
if (!flag && ex != null)
{
throw ex;
}
return set;
}
}