CRLReason.java revision e1142c149e244797ce73b0e7fad40816e447a817
1package org.bouncycastle.asn1.x509; 2 3import java.math.BigInteger; 4import java.util.Hashtable; 5 6import org.bouncycastle.asn1.ASN1Enumerated; 7import org.bouncycastle.asn1.ASN1Object; 8import org.bouncycastle.asn1.ASN1Primitive; 9import org.bouncycastle.util.Integers; 10 11/** 12 * The CRLReason enumeration. 13 * <pre> 14 * CRLReason ::= ENUMERATED { 15 * unspecified (0), 16 * keyCompromise (1), 17 * cACompromise (2), 18 * affiliationChanged (3), 19 * superseded (4), 20 * cessationOfOperation (5), 21 * certificateHold (6), 22 * removeFromCRL (8), 23 * privilegeWithdrawn (9), 24 * aACompromise (10) 25 * } 26 * </pre> 27 */ 28public class CRLReason 29 extends ASN1Object 30{ 31 /** 32 * @deprecated use lower case version 33 */ 34 public static final int UNSPECIFIED = 0; 35 /** 36 * @deprecated use lower case version 37 */ 38 public static final int KEY_COMPROMISE = 1; 39 /** 40 * @deprecated use lower case version 41 */ 42 public static final int CA_COMPROMISE = 2; 43 /** 44 * @deprecated use lower case version 45 */ 46 public static final int AFFILIATION_CHANGED = 3; 47 /** 48 * @deprecated use lower case version 49 */ 50 public static final int SUPERSEDED = 4; 51 /** 52 * @deprecated use lower case version 53 */ 54 public static final int CESSATION_OF_OPERATION = 5; 55 /** 56 * @deprecated use lower case version 57 */ 58 public static final int CERTIFICATE_HOLD = 6; 59 /** 60 * @deprecated use lower case version 61 */ 62 public static final int REMOVE_FROM_CRL = 8; 63 /** 64 * @deprecated use lower case version 65 */ 66 public static final int PRIVILEGE_WITHDRAWN = 9; 67 /** 68 * @deprecated use lower case version 69 */ 70 public static final int AA_COMPROMISE = 10; 71 72 public static final int unspecified = 0; 73 public static final int keyCompromise = 1; 74 public static final int cACompromise = 2; 75 public static final int affiliationChanged = 3; 76 public static final int superseded = 4; 77 public static final int cessationOfOperation = 5; 78 public static final int certificateHold = 6; 79 // 7 -> unknown 80 public static final int removeFromCRL = 8; 81 public static final int privilegeWithdrawn = 9; 82 public static final int aACompromise = 10; 83 84 private static final String[] reasonString = 85 { 86 "unspecified", "keyCompromise", "cACompromise", "affiliationChanged", 87 "superseded", "cessationOfOperation", "certificateHold", "unknown", 88 "removeFromCRL", "privilegeWithdrawn", "aACompromise" 89 }; 90 91 private static final Hashtable table = new Hashtable(); 92 93 private ASN1Enumerated value; 94 95 public static CRLReason getInstance(Object o) 96 { 97 if (o instanceof CRLReason) 98 { 99 return (CRLReason)o; 100 } 101 else if (o != null) 102 { 103 return lookup(ASN1Enumerated.getInstance(o).getValue().intValue()); 104 } 105 106 return null; 107 } 108 109 private CRLReason( 110 int reason) 111 { 112 value = new ASN1Enumerated(reason); 113 } 114 115 public String toString() 116 { 117 String str; 118 int reason = getValue().intValue(); 119 if (reason < 0 || reason > 10) 120 { 121 str = "invalid"; 122 } 123 else 124 { 125 str = reasonString[reason]; 126 } 127 return "CRLReason: " + str; 128 } 129 130 public BigInteger getValue() 131 { 132 return value.getValue(); 133 } 134 135 public ASN1Primitive toASN1Primitive() 136 { 137 return value; 138 } 139 140 public static CRLReason lookup(int value) 141 { 142 Integer idx = Integers.valueOf(value); 143 144 if (!table.containsKey(idx)) 145 { 146 table.put(idx, new CRLReason(value)); 147 } 148 149 return (CRLReason)table.get(idx); 150 } 151} 152