42 lines
838 B
C#
42 lines
838 B
C#
using Org.BouncyCastle.Asn1.X509;
|
|
|
|
namespace Org.BouncyCastle.Pkix;
|
|
|
|
internal class ReasonsMask
|
|
{
|
|
private int _reasons;
|
|
|
|
internal static readonly ReasonsMask AllReasons = new ReasonsMask(33023);
|
|
|
|
internal bool IsAllReasons => _reasons == AllReasons._reasons;
|
|
|
|
public ReasonFlags Reasons => new ReasonFlags(_reasons);
|
|
|
|
internal ReasonsMask(int reasons)
|
|
{
|
|
_reasons = reasons;
|
|
}
|
|
|
|
internal ReasonsMask()
|
|
: this(0)
|
|
{
|
|
}
|
|
|
|
internal void AddReasons(ReasonsMask mask)
|
|
{
|
|
_reasons |= mask.Reasons.IntValue;
|
|
}
|
|
|
|
internal ReasonsMask Intersect(ReasonsMask mask)
|
|
{
|
|
ReasonsMask reasonsMask = new ReasonsMask();
|
|
reasonsMask.AddReasons(new ReasonsMask(_reasons & mask.Reasons.IntValue));
|
|
return reasonsMask;
|
|
}
|
|
|
|
internal bool HasNewReasons(ReasonsMask mask)
|
|
{
|
|
return (_reasons | (mask.Reasons.IntValue ^ _reasons)) != 0;
|
|
}
|
|
}
|