package aQute.libg.asn1;

public interface Types {
	int			UNIVERSAL			= 0x00000000;
	int			APPLICATION			= 0x40000000;
	int			CONTEXT				= 0x80000000;
	int			PRIVATE				= 0xC0000000;
	int			CLASSMASK			= 0xC0000000;
	int			CONSTRUCTED			= 0x20000000;
	int			TAGMASK				= 0x1FFFFFFF;

	String[]	CLASSES				= {
			"U", "A", "C", "P"
									};

	// Payload Primitve
	int			EOC					= 0;			// null
	// x
	int			BOOLEAN				= 1;			// Boolean
	// x
	int			INTEGER				= 2;			// Long
	// x
	int			BIT_STRING			= 3;			// byte
	// [] -
	int			OCTET_STRING		= 4;			// byte
	// [] -
	int			NULL				= 5;			// null
	// x
	int			OBJECT_IDENTIFIER	= 6;			// int[]
	// x
	int			OBJECT_DESCRIPTOR	= 7;			//
	int			EXTERNAL			= 8;			//
	int			REAL				= 9;			// double
	// x
	int			ENUMERATED			= 10;			//
	int			EMBEDDED_PDV		= 11;			//
	int			UTF8_STRING			= 12;			// String
	int			RELATIVE_OID		= 13;			//
	int			SEQUENCE			= 16;			//
	int			SET					= 17;
	int			NUMERIC_STRING		= 18;			// String
	int			PRINTABLE_STRING	= 19;			// String
	int			T61_STRING			= 20;			// String
	int			VIDEOTEX_STRING		= 21;			// String
	int			IA5STRING			= 22;			// String
	int			UTCTIME				= 23;			// Date
	int			GENERALIZED_TIME	= 24;			// Date
	int			GRAPHIC_STRING		= 25;			// String
	int			VISIBLE_STRING		= 26;			// String
	int			GENERAL_STRING		= 27;			// String
	int			UNIVERSAL_STRING	= 28;			// String
	int			CHARACTER_STRING	= 29;			// String
	int			BMP_STRING			= 30;			// byte[]

	String[]	TAGS				= {
			"EOC               ", "BOOLEAN           ", "INTEGER           ", "BIT_STRING        ",
			"OCTET_STRING      ", "NULL              ", "OBJECT_IDENTIFIER ", "OBJECT_DESCRIPTOR ",
			"EXTERNAL          ", "REAL              ", "ENUMERATED        ", "EMBEDDED_PDV      ",
			"UTF8_STRING       ", "RELATIVE_OID      ", "?(14)             ", "?(15)             ",
			"SEQUENCE          ", "SET               ", "NUMERIC_STRING    ", "PRINTABLE_STRING  ",
			"T61_STRING        ", "VIDEOTEX_STRING   ", "IA5STRING         ", "UTCTIME           ",
			"GENERALIZED_TIME  ", "GRAPHIC_STRING    ", "VISIBLE_STRING    ", "GENERAL_STRING    ",
			"UNIVERSAL_STRING  ", "CHARACTER_STRING  ", "BMP_STRING        ",
									};

}
