package de.persosim.simulator.tlv;
/**
* This interface holds ASN1 conform constants in order to address them by name
* instead of magic numbers. These values are defined in the ASN.1 standard.
*
* @author amay
*
*/
public interface Asn1 {
// tag classes
public static final byte CLASS = (byte) 0xC0;
public static final byte CLASS_UNIVERSAL = (byte) 0x00;
public static final byte CLASS_APPLICATION = (byte) 0x40;
public static final byte CLASS_CONTEXT_SPECIFIC = (byte) 0x80;
public static final byte CLASS_PRIVATE = (byte) 0xC0;
// tag encoding
public static final byte ENCODING = (byte) 0x20;
public static final byte ENCODING_PRIMITIVE = (byte) 0x00;
public static final byte ENCODING_CONSTRUCTED = (byte) 0x20;
// Universal class tags
public static final byte UNIVERSAL_BOOLEAN = 0x01;
public static final byte UNIVERSAL_INTEGER = 0x02;
public static final byte UNIVERSAL_BIT_STRING = 0x03;
public static final byte UNIVERSAL_OCTET_STRING = 0x04;
public static final byte UNIVERSAL_NULL = 0x05;
public static final byte UNIVERSAL_OBJECT_IDENTIFIER = 0x06;
public static final byte UNIVERSAL_OBJECT_DESCRIPTOR = 0x07;
public static final byte UNIVERSAL_INSTANCE_OF = 0x08;
public static final byte UNIVERSAL_EXTERNAL = 0x08;
public static final byte UNIVERSAL_REAL = 0x09;
public static final byte UNIVERSAL_ENUMERATED = 0x0A;
public static final byte UNIVERSAL_EMBEDDED_PDV = 0x0B;
public static final byte UNIVERSAL_UTF8String = 0x0C;
public static final byte UNIVERSAL_RELATIVE_OID = 0x0D;
public static final byte UNIVERSAL_SEQUENCE = 0x10;
public static final byte UNIVERSAL_SEQUENCE_OF = 0x10;
public static final byte UNIVERSAL_SET = 0x11;
public static final byte UNIVERSAL_SET_OF = 0x11;
public static final byte UNIVERSAL_NUMERIC_STRING = 0x12;
public static final byte UNIVERSAL_PRINTABLE_STRING = 0x13;
public static final byte UNIVERSAL_TELETEX_STRING = 0x14;
public static final byte UNIVERSAL_T61_STRING = 0x14;
public static final byte UNIVERSAL_VIDEOTEX_STRING = 0x15;
public static final byte UNIVERSAL_IA5_STRING = 0x16;
public static final byte UNIVERSAL_UTC_TIME = 0x17;
public static final byte UNIVERSAL_GENERALIZED_TIME = 0x18;
public static final byte UNIVERSAL_GRAPHIC_STRING = 0x19;
public static final byte UNIVERSAL_VISIBLE_STRING = 0x1A;
public static final byte UNIVERSAL_ISO646_STRING = 0x1A;
public static final byte UNIVERSAL_GENERAL_STRING = 0x1B;
public static final byte UNIVERSAL_UNIVERSAL_STRING = 0x1C;
public static final byte UNIVERSAL_CHARACTER_STRING = 0x1D;
public static final byte UNIVERSAL_BMP_STRING = 0x1E;
// Tags frequently used within PersoSim (this list should be extended when needed)
public static final byte BOOLEAN = UNIVERSAL_BOOLEAN;
public static final byte INTEGER = UNIVERSAL_INTEGER;
public static final byte BIT_STRING = UNIVERSAL_BIT_STRING;
public static final byte OCTET_STRING = UNIVERSAL_OCTET_STRING;
public static final byte OBJECT_IDENTIFIER = UNIVERSAL_OBJECT_IDENTIFIER;
public static final byte SEQUENCE = ENCODING_CONSTRUCTED | UNIVERSAL_SEQUENCE;
public static final byte SET = ENCODING_CONSTRUCTED | UNIVERSAL_SET;
public static final byte IA5_STRING = UNIVERSAL_IA5_STRING;
}