<PackageReference Include="BouncyCastle.Cryptography" Version="2.7.0-beta.98" />

ReasonsMask

class ReasonsMask
This class helps to handle CRL revocation reasons mask. Each CRL handles a certain set of revocation reasons.
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; } } }