1b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampackage org.bouncycastle.asn1.misc; 2b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 34c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.asn1.DERBitString; 4b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 5b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam/** 6b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * The NetscapeCertType object. 7b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * <pre> 8b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * NetscapeCertType ::= BIT STRING { 9b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * SSLClient (0), 10b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * SSLServer (1), 11b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * S/MIME (2), 12b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * Object Signing (3), 13b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * Reserved (4), 14b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * SSL CA (5), 15b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * S/MIME CA (6), 16b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * Object Signing CA (7) } 17b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * </pre> 18b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam */ 19b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampublic class NetscapeCertType 20b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam extends DERBitString 21b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam{ 22b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int sslClient = (1 << 7); 23b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int sslServer = (1 << 6); 24b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int smime = (1 << 5); 25b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int objectSigning = (1 << 4); 26b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int reserved = (1 << 3); 27b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int sslCA = (1 << 2); 28b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int smimeCA = (1 << 1); 29b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public static final int objectSigningCA = (1 << 0); 30b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 31b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam /** 32b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * Basic constructor. 33b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * 34b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * @param usage - the bitwise OR of the Key Usage flags giving the 35b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * allowed uses for the key. 36b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * e.g. (X509NetscapeCertType.sslCA | X509NetscapeCertType.smimeCA) 37b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam */ 38b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public NetscapeCertType( 39b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam int usage) 40b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 41b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam super(getBytes(usage), getPadBits(usage)); 42b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 43b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 44b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public NetscapeCertType( 45b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam DERBitString usage) 46b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 47b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam super(usage.getBytes(), usage.getPadBits()); 48b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 49b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 50b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public String toString() 51b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 52b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam return "NetscapeCertType: 0x" + Integer.toHexString(data[0] & 0xff); 53b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 54b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam} 55