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