package de.persosim.simulator.protocols.ca; import de.persosim.simulator.cardobjects.OidIdentifier; import de.persosim.simulator.protocols.GenericOid; import de.persosim.simulator.protocols.Oid; import de.persosim.simulator.protocols.Tr03110; import de.persosim.simulator.utils.Utils; /** * This interface provides constants used in the context of the Chip Authentication protocol according to TR-03110. * @author slutters * */ public interface Ca extends Tr03110 { /* CA OIDs according to TR-03110 v2.1 part 3 */ /* CA id */ // 0x02 bsi-de protocols(2) // 0x02 smartcard(2) // 0x03 3 ca protocol(3) public final static byte[] id_CA = Utils.appendBytes(id_BSI, new byte[]{0x02, 0x02, 0x03}); public final static String id_CA_STRING = "id-CA"; /*--------------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------------*/ /* Key agreement & mapping */ public final static byte DH = (byte) 0x01; public final static byte ECDH = (byte) 0x02; public final static byte[] KEY_AGREEMENT_AND_MAPPING = new byte[]{DH, ECDH}; /*--------------------------------------------------------------------------------*/ /* Key agreement & mapping */ public final static String DH_STRING = "DH"; public final static String ECDH_STRING = "ECDH"; public final static String[] KEY_AGREEMENT_AND_MAPPING_STRING = new String[]{DH_STRING, ECDH_STRING}; /*--------------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------------*/ /* DH */ public final static byte[] id_CA_DH_AES_CBC_CMAC_128 = Utils.appendBytes(id_CA, DH, AES_CBC_CMAC_128); public final static byte[] id_CA_DH_AES_CBC_CMAC_192 = Utils.appendBytes(id_CA, DH, AES_CBC_CMAC_192); public final static byte[] id_CA_DH_AES_CBC_CMAC_256 = Utils.appendBytes(id_CA, DH, AES_CBC_CMAC_256); /* ECDH */ public final static byte[] id_CA_ECDH_AES_CBC_CMAC_128 = Utils.appendBytes(id_CA, ECDH, AES_CBC_CMAC_128); public final static byte[] id_CA_ECDH_AES_CBC_CMAC_192 = Utils.appendBytes(id_CA, ECDH, AES_CBC_CMAC_192); public final static byte[] id_CA_ECDH_AES_CBC_CMAC_256 = Utils.appendBytes(id_CA, ECDH, AES_CBC_CMAC_256); /*--------------------------------------------------------------------------------*/ public final static Oid OID_id_CA = new GenericOid(id_CA); /* DH */ public final static CaOid OID_id_CA_DH_AES_CBC_CMAC_128 = new CaOid(id_CA_DH_AES_CBC_CMAC_128); public final static CaOid OID_id_CA_DH_AES_CBC_CMAC_192 = new CaOid(id_CA_DH_AES_CBC_CMAC_192); public final static CaOid OID_id_CA_DH_AES_CBC_CMAC_256 = new CaOid(id_CA_DH_AES_CBC_CMAC_256); /* ECDH */ public final static CaOid OID_id_CA_ECDH_AES_CBC_CMAC_128 = new CaOid(id_CA_ECDH_AES_CBC_CMAC_128); public final static CaOid OID_id_CA_ECDH_AES_CBC_CMAC_192 = new CaOid(id_CA_ECDH_AES_CBC_CMAC_192); public final static CaOid OID_id_CA_ECDH_AES_CBC_CMAC_256 = new CaOid(id_CA_ECDH_AES_CBC_CMAC_256); /*--------------------------------------------------------------------------------*/ // {@link OidIdentifier} /* DH */ public final static OidIdentifier OID_IDENTIFIER_id_CA_DH_AES_CBC_CMAC_128 = new OidIdentifier(OID_id_CA_DH_AES_CBC_CMAC_128); public final static OidIdentifier OID_IDENTIFIER_id_CA_DH_AES_CBC_CMAC_192 = new OidIdentifier(OID_id_CA_DH_AES_CBC_CMAC_192); public final static OidIdentifier OID_IDENTIFIER_id_CA_DH_AES_CBC_CMAC_256 = new OidIdentifier(OID_id_CA_DH_AES_CBC_CMAC_256); /* ECDH */ public final static OidIdentifier OID_IDENTIFIER_id_CA_ECDH_AES_CBC_CMAC_128 = new OidIdentifier(OID_id_CA_ECDH_AES_CBC_CMAC_128); public final static OidIdentifier OID_IDENTIFIER_id_CA_ECDH_AES_CBC_CMAC_192 = new OidIdentifier(OID_id_CA_ECDH_AES_CBC_CMAC_192); public final static OidIdentifier OID_IDENTIFIER_id_CA_ECDH_AES_CBC_CMAC_256 = new OidIdentifier(OID_id_CA_ECDH_AES_CBC_CMAC_256); /*--------------------------------------------------------------------------------*/ /* DH */ public final static String id_CA_DH_AES_CBC_CMAC_128_STRING = "id-CA-DH-AES-CBC-CMAC-128"; public final static String id_CA_DH_AES_CBC_CMAC_192_STRING = "id-CA-DH-AES-CBC-CMAC-192"; public final static String id_CA_DH_AES_CBC_CMAC_256_STRING = "id-CA-DH-AES-CBC-CMAC-256"; /* ECDH */ public final static String id_CA_ECDH_AES_CBC_CMAC_128_STRING = "id-CA-ECDH-AES-CBC-CMAC-128"; public final static String id_CA_ECDH_AES_CBC_CMAC_192_STRING = "id-CA-ECDH-AES-CBC-CMAC-192"; public final static String id_CA_ECDH_AES_CBC_CMAC_256_STRING = "id-CA-ECDH-AES-CBC-CMAC-256"; }