package org.bouncycastle.jce.provider;

import org.bouncycastle.asn1.x509.ReasonFlags;

This class helps to handle CRL revocation reasons mask. Each CRL handles a certain set of revocation reasons.
/** * This class helps to handle CRL revocation reasons mask. Each CRL handles a * certain set of revocation reasons. */
class ReasonsMask { private int _reasons;
Constructs are reason mask with the reasons.
Params:
  • reasons – The reasons.
/** * Constructs are reason mask with the reasons. * * @param reasons The reasons. */
ReasonsMask(ReasonFlags reasons) { _reasons = reasons.intValue(); } private ReasonsMask(int reasons) { _reasons = reasons; }
A reason mask with no reason.
/** * A reason mask with no reason. * */
ReasonsMask() { this(0); }
A mask with all revocation reasons.
/** * A mask with all revocation reasons. */
static final 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.
Params:
  • mask – The reasons mask to add.
/** * Adds all reasons from the reasons mask to this mask. * * @param mask The reasons mask to add. */
void addReasons(ReasonsMask mask) { _reasons = _reasons | mask.getReasons(); }
Returns true if this reasons mask contains all possible reasons.
Returns:true if this reasons mask contains all possible reasons.
/** * Returns <code>true</code> if this reasons mask contains all possible * reasons. * * @return <code>true</code> if this reasons mask contains all possible * reasons. */
boolean isAllReasons() { return _reasons == allReasons._reasons ? true : false; }
Intersects this mask with the given reasons mask.
Params:
  • mask – The mask to intersect with.
Returns:The intersection of this and the given mask.
/** * Intersects this mask with the given reasons mask. * * @param mask The mask to intersect with. * @return The intersection of this and the given mask. */
ReasonsMask intersect(ReasonsMask mask) { ReasonsMask _mask = new ReasonsMask(); _mask.addReasons(new ReasonsMask(_reasons & mask.getReasons())); return _mask; }
Returns true if the passed reasons mask has new reasons.
Params:
  • mask – The reasons mask which should be tested for new reasons.
Returns:true if the passed reasons mask has new reasons.
/** * Returns <code>true</code> if the passed reasons mask has new reasons. * * @param mask The reasons mask which should be tested for new reasons. * @return <code>true</code> if the passed reasons mask has new reasons. */
boolean hasNewReasons(ReasonsMask mask) { return ((_reasons | mask.getReasons() ^ _reasons) != 0); }
Returns the reasons in this mask.
Returns:Returns the reasons.
/** * Returns the reasons in this mask. * * @return Returns the reasons. */
int getReasons() { return _reasons; } }