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

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;
}
}