1b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampackage org.bouncycastle.asn1.x509; 2b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 3b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallamimport org.bouncycastle.asn1.DERBitString; 4b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 5b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam/** 6b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * The ReasonFlags object. 7b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * <pre> 8b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * ReasonFlags ::= BIT STRING { 9b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * unused (0), 10b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * keyCompromise (1), 11b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * cACompromise (2), 12b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * affiliationChanged (3), 13b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * superseded (4), 14b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * cessationOfOperation (5), 15b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * certificateHold (6), 16b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * privilegeWithdrawn (7), 17b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * aACompromise (8) } 18b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * </pre> 19b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam */ 20b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampublic class ReasonFlags 21b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam extends DERBitString 22b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam{ 23b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam /** 24b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * @deprecated use lower case version 25b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam */ 26b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int UNUSED = (1 << 7); 27b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam /** 28b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * @deprecated use lower case version 29b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam */ 30b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int KEY_COMPROMISE = (1 << 6); 31b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam /** 32b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * @deprecated use lower case version 33b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam */ 34b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int CA_COMPROMISE = (1 << 5); 35b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam /** 36b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * @deprecated use lower case version 37b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam */ 38b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int AFFILIATION_CHANGED = (1 << 4); 39b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam /** 40b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * @deprecated use lower case version 41b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam */ 42b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int SUPERSEDED = (1 << 3); 43b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam /** 44b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * @deprecated use lower case version 45b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam */ 46b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int CESSATION_OF_OPERATION = (1 << 2); 47b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam /** 48b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * @deprecated use lower case version 49b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam */ 50b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int CERTIFICATE_HOLD = (1 << 1); 51b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam /** 52b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * @deprecated use lower case version 53b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam */ 54b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int PRIVILEGE_WITHDRAWN = (1 << 0); 55b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam /** 56b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * @deprecated use lower case version 57b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam */ 58b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int AA_COMPROMISE = (1 << 15); 59b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 60b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int unused = (1 << 7); 61b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int keyCompromise = (1 << 6); 62b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int cACompromise = (1 << 5); 63b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int affiliationChanged = (1 << 4); 64b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int superseded = (1 << 3); 65b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int cessationOfOperation = (1 << 2); 66b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int certificateHold = (1 << 1); 67b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int privilegeWithdrawn = (1 << 0); 68b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int aACompromise = (1 << 15); 69b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 70b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam /** 71b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * @param reasons - the bitwise OR of the Key Reason flags giving the 72b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * allowed uses for the key. 73b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam */ 74b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public ReasonFlags( 75b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam int reasons) 76b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 77b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam super(getBytes(reasons), getPadBits(reasons)); 78b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 79b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 80b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public ReasonFlags( 81b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam DERBitString reasons) 82b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 83b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam super(reasons.getBytes(), reasons.getPadBits()); 84b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 85b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam} 86