You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
2.6 KiB
100 lines
2.6 KiB
#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR) |
|
#pragma warning disable |
|
using System; |
|
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509; |
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Pkix |
|
{ |
|
/// <summary> |
|
/// This class helps to handle CRL revocation reasons mask. Each CRL handles a |
|
/// certain set of revocation reasons. |
|
/// </summary> |
|
internal class ReasonsMask |
|
{ |
|
private int _reasons; |
|
|
|
/// <summary> |
|
/// Constructs are reason mask with the reasons. |
|
/// </summary> |
|
/// <param name="reasons">The reasons.</param> |
|
internal ReasonsMask( |
|
int reasons) |
|
{ |
|
_reasons = reasons; |
|
} |
|
|
|
/// <summary> |
|
/// A reason mask with no reason. |
|
/// </summary> |
|
internal ReasonsMask() |
|
: this(0) |
|
{ |
|
} |
|
|
|
/// <summary> |
|
/// A mask with all revocation reasons. |
|
/// </summary> |
|
internal static readonly ReasonsMask AllReasons = new ReasonsMask( |
|
ReasonFlags.AACompromise | ReasonFlags.AffiliationChanged | ReasonFlags.CACompromise |
|
| ReasonFlags.CertificateHold | ReasonFlags.CessationOfOperation |
|
| ReasonFlags.KeyCompromise | ReasonFlags.PrivilegeWithdrawn | ReasonFlags.Unused |
|
| ReasonFlags.Superseded); |
|
|
|
/** |
|
* Adds all reasons from the reasons mask to this mask. |
|
* |
|
* @param mask The reasons mask to add. |
|
*/ |
|
internal void AddReasons( |
|
ReasonsMask mask) |
|
{ |
|
_reasons = _reasons | mask.Reasons.IntValue; |
|
} |
|
|
|
/// <summary> |
|
/// Returns <code>true</code> if this reasons mask contains all possible |
|
/// reasons. |
|
/// </summary> |
|
/// <returns>true if this reasons mask contains all possible reasons. |
|
/// </returns> |
|
internal bool IsAllReasons |
|
{ |
|
get { return _reasons == AllReasons._reasons; } |
|
} |
|
|
|
/// <summary> |
|
/// Intersects this mask with the given reasons mask. |
|
/// </summary> |
|
/// <param name="mask">mask The mask to intersect with.</param> |
|
/// <returns>The intersection of this and teh given mask.</returns> |
|
internal ReasonsMask Intersect( |
|
ReasonsMask mask) |
|
{ |
|
ReasonsMask _mask = new ReasonsMask(); |
|
_mask.AddReasons(new ReasonsMask(_reasons & mask.Reasons.IntValue)); |
|
return _mask; |
|
} |
|
|
|
/// <summary> |
|
/// Returns <c>true</c> if the passed reasons mask has new reasons. |
|
/// </summary> |
|
/// <param name="mask">The reasons mask which should be tested for new reasons.</param> |
|
/// <returns><c>true</c> if the passed reasons mask has new reasons.</returns> |
|
internal bool HasNewReasons( |
|
ReasonsMask mask) |
|
{ |
|
return ((_reasons | mask.Reasons.IntValue ^ _reasons) != 0); |
|
} |
|
|
|
/// <summary> |
|
/// Returns the reasons in this mask. |
|
/// </summary> |
|
public ReasonFlags Reasons |
|
{ |
|
get { return new ReasonFlags(_reasons); } |
|
} |
|
} |
|
} |
|
#pragma warning restore |
|
#endif
|
|
|