package de.persosim.simulator.protocols.ta; /* * AUTOMATICALLY GENERATED CODE - DO NOT EDIT! * * (C) 2013 HJP-Consulting GmbH */ @SuppressWarnings("all")//generated code /* Command line options: -verbose -p EA -o DefaultTaProtocol -l java -t TA:taclass C:\develop\eclipse-persosim\git\de.persosim.models\exported\protocol_ta.xml */ /* This file is generated from protocol_ta.xml - do not edit manually */ /* Generated on: Wed Jul 30 09:45:19 CEST 2014 / version 3.52beta2 */ public class DefaultTaProtocol extends AbstractTaProtocol { public static final int TA_IN_PROGRESS = 0; public static final int TA_SET_DST_RECEIVED = 1; public static final int TA_COMPLETE = 2; public static final int TA_PROGRESS_INIT = 3; public static final int TA_GET_CHALLENGE_RECEIVED = 4; public static final int REGISTER_APDU_SET_DST = 5; public static final int TA_SET_AT_RECEIVED = 6; public static final int TA_EXTERNAL_AUTHENTICATE_RECEIVED = 7; public static final int TA_INIT = 8; public static final int TA_GET_CHALLENGE_PROCESSED = 9; public static final int TA_EXTERNAL_AUTHENTICATE_PROCESSED = 10; public static final int TA_PSO_RECEIVED = 11; public static final int REGISTER_APDUS = 12; public static final int REGISTER_APDU_EXTERNAL_AUTHENTICATE = 13; public static final int REGISTER_APDU_PSO = 14; public static final int TA_ANNOUNCED = 15; public static final int REGISTER_APDU_SET_AT = 16; public static final int TA_PSO_PROCESSED = 17; public static final int TA_SET_AT_PROCESSED = 18; public static final int REGISTER_APDU_GET_CHALLENGE = 19; public static final int RESET = 20; public static final int TA_SET_DST_PROCESSED = 21; public static final int __UNKNOWN_STATE__ = 22; public static final int DEFAULTTAPROTOCOL_NO_MSG = 0; // flag if initialized protected boolean m_initialized=false; int stateVar; int stateVarREGISTER_APDUS; int stateVarTA_ANNOUNCED; int stateVarTA_IN_PROGRESS; // State handler class default ctor public DefaultTaProtocol() { } /* Helper(s) to reset history */ public void resetHistoryREGISTER_APDUS(){stateVarREGISTER_APDUS= REGISTER_APDU_SET_DST;} public void resetHistoryTA_ANNOUNCED(){stateVarTA_ANNOUNCED= TA_INIT;} public void resetHistoryTA_IN_PROGRESS(){stateVarTA_IN_PROGRESS= TA_PROGRESS_INIT;} /* Helper to get innermost active state id */ public int getInnermostActiveState() { if(isInTA_SET_DST_PROCESSED()){ return TA_SET_DST_PROCESSED; }else if(isInTA_SET_AT_PROCESSED()){ return TA_SET_AT_PROCESSED; }else if(isInTA_PSO_PROCESSED()){ return TA_PSO_PROCESSED; }else if(isInTA_PSO_RECEIVED()){ return TA_PSO_RECEIVED; }else if(isInTA_EXTERNAL_AUTHENTICATE_PROCESSED()){ return TA_EXTERNAL_AUTHENTICATE_PROCESSED; }else if(isInTA_EXTERNAL_AUTHENTICATE_RECEIVED()){ return TA_EXTERNAL_AUTHENTICATE_RECEIVED; }else if(isInTA_SET_AT_RECEIVED()){ return TA_SET_AT_RECEIVED; }else if(isInTA_PROGRESS_INIT()){ return TA_PROGRESS_INIT; }else if(isInTA_SET_DST_RECEIVED()){ return TA_SET_DST_RECEIVED; }else if(isInREGISTER_APDU_GET_CHALLENGE()){ return REGISTER_APDU_GET_CHALLENGE; }else if(isInREGISTER_APDU_SET_AT()){ return REGISTER_APDU_SET_AT; }else if(isInREGISTER_APDU_PSO()){ return REGISTER_APDU_PSO; }else if(isInREGISTER_APDU_EXTERNAL_AUTHENTICATE()){ return REGISTER_APDU_EXTERNAL_AUTHENTICATE; }else if(isInTA_GET_CHALLENGE_PROCESSED()){ return TA_GET_CHALLENGE_PROCESSED; }else if(isInTA_INIT()){ return TA_INIT; }else if(isInREGISTER_APDU_SET_DST()){ return REGISTER_APDU_SET_DST; }else if(isInTA_GET_CHALLENGE_RECEIVED()){ return TA_GET_CHALLENGE_RECEIVED; }else if(isInRESET()){ return RESET; }else if(isInTA_COMPLETE()){ return TA_COMPLETE; }else{ return __UNKNOWN_STATE__; } } // Helper(s) to find out if the machine is in a certain state public boolean isInTA_IN_PROGRESS(){return (((stateVarTA_ANNOUNCED== TA_IN_PROGRESS)&&(stateVar== TA_ANNOUNCED)) ? (true) : (false));} public boolean isInTA_SET_DST_RECEIVED(){return (((stateVarTA_IN_PROGRESS== TA_SET_DST_RECEIVED)&&(stateVarTA_ANNOUNCED== TA_IN_PROGRESS)&&(stateVar== TA_ANNOUNCED)) ? (true) : (false));} public boolean isInTA_COMPLETE(){return (((stateVar== TA_COMPLETE)) ? (true) : (false));} public boolean isInTA_PROGRESS_INIT(){return (((stateVarTA_IN_PROGRESS== TA_PROGRESS_INIT)&&(stateVarTA_ANNOUNCED== TA_IN_PROGRESS)&&(stateVar== TA_ANNOUNCED)) ? (true) : (false));} public boolean isInTA_GET_CHALLENGE_RECEIVED(){return (((stateVarTA_ANNOUNCED== TA_GET_CHALLENGE_RECEIVED)&&(stateVar== TA_ANNOUNCED)) ? (true) : (false));} public boolean isInREGISTER_APDU_SET_DST(){return (((stateVarREGISTER_APDUS== REGISTER_APDU_SET_DST)&&(stateVar== REGISTER_APDUS)) ? (true) : (false));} public boolean isInTA_SET_AT_RECEIVED(){return (((stateVarTA_IN_PROGRESS== TA_SET_AT_RECEIVED)&&(stateVarTA_ANNOUNCED== TA_IN_PROGRESS)&&(stateVar== TA_ANNOUNCED)) ? (true) : (false));} public boolean isInTA_EXTERNAL_AUTHENTICATE_RECEIVED(){return (((stateVarTA_IN_PROGRESS== TA_EXTERNAL_AUTHENTICATE_RECEIVED)&&(stateVarTA_ANNOUNCED== TA_IN_PROGRESS)&&(stateVar== TA_ANNOUNCED)) ? (true) : (false));} public boolean isInTA_INIT(){return (((stateVarTA_ANNOUNCED== TA_INIT)&&(stateVar== TA_ANNOUNCED)) ? (true) : (false));} public boolean isInTA_GET_CHALLENGE_PROCESSED(){return (((stateVarTA_ANNOUNCED== TA_GET_CHALLENGE_PROCESSED)&&(stateVar== TA_ANNOUNCED)) ? (true) : (false));} public boolean isInTA_EXTERNAL_AUTHENTICATE_PROCESSED(){return (((stateVarTA_IN_PROGRESS== TA_EXTERNAL_AUTHENTICATE_PROCESSED)&&(stateVarTA_ANNOUNCED== TA_IN_PROGRESS)&&(stateVar== TA_ANNOUNCED)) ? (true) : (false));} public boolean isInTA_PSO_RECEIVED(){return (((stateVarTA_IN_PROGRESS== TA_PSO_RECEIVED)&&(stateVarTA_ANNOUNCED== TA_IN_PROGRESS)&&(stateVar== TA_ANNOUNCED)) ? (true) : (false));} public boolean isInREGISTER_APDUS(){return (((stateVar== REGISTER_APDUS)) ? (true) : (false));} public boolean isInREGISTER_APDU_EXTERNAL_AUTHENTICATE(){return (((stateVarREGISTER_APDUS== REGISTER_APDU_EXTERNAL_AUTHENTICATE)&&(stateVar== REGISTER_APDUS)) ? (true) : (false));} public boolean isInREGISTER_APDU_PSO(){return (((stateVarREGISTER_APDUS== REGISTER_APDU_PSO)&&(stateVar== REGISTER_APDUS)) ? (true) : (false));} public boolean isInTA_ANNOUNCED(){return (((stateVar== TA_ANNOUNCED)) ? (true) : (false));} public boolean isInREGISTER_APDU_SET_AT(){return (((stateVarREGISTER_APDUS== REGISTER_APDU_SET_AT)&&(stateVar== REGISTER_APDUS)) ? (true) : (false));} public boolean isInTA_PSO_PROCESSED(){return (((stateVarTA_IN_PROGRESS== TA_PSO_PROCESSED)&&(stateVarTA_ANNOUNCED== TA_IN_PROGRESS)&&(stateVar== TA_ANNOUNCED)) ? (true) : (false));} public boolean isInTA_SET_AT_PROCESSED(){return (((stateVarTA_IN_PROGRESS== TA_SET_AT_PROCESSED)&&(stateVarTA_ANNOUNCED== TA_IN_PROGRESS)&&(stateVar== TA_ANNOUNCED)) ? (true) : (false));} public boolean isInREGISTER_APDU_GET_CHALLENGE(){return (((stateVarREGISTER_APDUS== REGISTER_APDU_GET_CHALLENGE)&&(stateVar== REGISTER_APDUS)) ? (true) : (false));} public boolean isInRESET(){return (((stateVar== RESET)) ? (true) : (false));} public boolean isInTA_SET_DST_PROCESSED(){return (((stateVarTA_IN_PROGRESS== TA_SET_DST_PROCESSED)&&(stateVarTA_ANNOUNCED== TA_IN_PROGRESS)&&(stateVar== TA_ANNOUNCED)) ? (true) : (false));} // Reinitialize the state machine public void reInitialize(){ m_initialized=false; initialize(); } public void initialize(){ if(m_initialized==false){ m_initialized=true; //call on entry code of default states // Set state vars to default states stateVar = REGISTER_APDUS; /* set init state of top state */ stateVarREGISTER_APDUS = REGISTER_APDU_SET_DST; /* set init state of REGISTER_APDUS */ stateVarTA_ANNOUNCED = TA_INIT; /* set init state of TA_ANNOUNCED */ stateVarTA_IN_PROGRESS = TA_PROGRESS_INIT; /* set init state of TA_IN_PROGRESS */ } } protected void defaulttaprotocolChangeToState(int state){ stateVar=state; } protected void defaulttaprotocolChangeToStateREGISTER_APDUS(int state){ stateVarREGISTER_APDUS = state; } protected void defaulttaprotocolChangeToStateTA_ANNOUNCED(int state){ stateVarTA_ANNOUNCED = state; } protected void defaulttaprotocolChangeToStateTA_IN_PROGRESS(int state){ stateVarTA_IN_PROGRESS = state; } public int processEvent(int msg){ int evConsumed = 0; if(m_initialized==false) return 0; /* action code */ this.continueProcessing = true; do{ evConsumed = 0; switch (stateVar) { case REGISTER_APDUS: switch (stateVarREGISTER_APDUS) { case REGISTER_APDU_EXTERNAL_AUTHENTICATE: /* action code */ createNewApduSpecification("External Authenticate"); apduSpecification.setIsoFormat(ISO_FORMAT_FIRSTINTERINDUSTRY); apduSpecification.setIsoCase(ISO_CASE_3); apduSpecification.setIns(INS_82_EXTERNAL_AUTHENTICATE); apduSpecification.setP1((byte) 0x00); apduSpecification.setP2((byte) 0x00); registerApduSpecification(apduSpecification); if(true){ /* Transition from REGISTER_APDU_EXTERNAL_AUTHENTICATE to TA_ANNOUNCED */ evConsumed=16; /* OnEntry code of state TA_ANNOUNCED */ logs("TA_ANNOUNCED"); logs("INIT"); returnResult(); stateVar = TA_ANNOUNCED;/* Default in entry chain */ stateVarTA_ANNOUNCED = TA_INIT;/* Default in entry chain */ /* adjust state variables */ stateVarREGISTER_APDUS = REGISTER_APDU_SET_DST; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case REGISTER_APDU_EXTERNAL_AUTHENTICATE */ case REGISTER_APDU_GET_CHALLENGE: /* action code */ createNewApduSpecification("Get Challenge"); apduSpecification.setIsoFormat(ISO_FORMAT_FIRSTINTERINDUSTRY); apduSpecification.setIsoCase(ISO_CASE_2); apduSpecification.setIns(INS_84_GET_CHALLENGE); apduSpecification.setP1((byte) 0x00); apduSpecification.setP2((byte) 0x00); registerApduSpecification(apduSpecification); if(true){ /* Transition from REGISTER_APDU_GET_CHALLENGE to REGISTER_APDU_EXTERNAL_AUTHENTICATE */ evConsumed=16; /* adjust state variables */ stateVarREGISTER_APDUS = REGISTER_APDU_EXTERNAL_AUTHENTICATE; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case REGISTER_APDU_GET_CHALLENGE */ case REGISTER_APDU_PSO: /* action code */ createNewApduSpecification("PSO"); apduSpecification.setIsoFormat(ISO_FORMAT_FIRSTINTERINDUSTRY); apduSpecification.setIsoCase(ISO_CASE_3); apduSpecification.setIns(INS_2A_PERFORM_SECURITY_OPERATION); apduSpecification.setP1((byte) 0x00); apduSpecification.setP2((byte) 0xBE); createNewTagSpecification(TAG_7F4E); tagSpecification.setAllowUnspecifiedSubTags(true); apduSpecification.addTag(tagSpecification); createNewTagSpecification(TAG_5F37); tagSpecification.setAllowUnspecifiedSubTags(true); apduSpecification.addTag(tagSpecification); registerApduSpecification(apduSpecification); if(true){ /* Transition from REGISTER_APDU_PSO to REGISTER_APDU_SET_AT */ evConsumed=16; /* adjust state variables */ stateVarREGISTER_APDUS = REGISTER_APDU_SET_AT; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case REGISTER_APDU_PSO */ case REGISTER_APDU_SET_AT: /* action code */ createNewApduSpecification("Set AT"); apduSpecification.setIsoFormat(ISO_FORMAT_FIRSTINTERINDUSTRY); apduSpecification.setIsoCase(ISO_CASE_3); apduSpecification.setIns(INS_22_MANAGE_SECURITY_ENVIRONMENT); apduSpecification.setP1((byte) 0x81); apduSpecification.setP2((byte) 0xA4); createNewTagSpecification(TAG_80); apduSpecification.addTag(tagSpecification); createNewTagSpecification(TAG_83); apduSpecification.addTag(tagSpecification); createNewTagSpecification(TAG_67); tagSpecification.setRequired(REQ_OPTIONAL); tagSpecification.setAllowUnspecifiedSubTags(true); apduSpecification.addTag(tagSpecification); createNewTagSpecification(TAG_91); tagSpecification.setRequired(REQ_OPTIONAL); apduSpecification.addTag(tagSpecification); registerApduSpecification(apduSpecification); if(true){ /* Transition from REGISTER_APDU_SET_AT to REGISTER_APDU_GET_CHALLENGE */ evConsumed=16; /* adjust state variables */ stateVarREGISTER_APDUS = REGISTER_APDU_GET_CHALLENGE; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case REGISTER_APDU_SET_AT */ case REGISTER_APDU_SET_DST: /* action code */ createNewApduSpecification("Set DST"); apduSpecification.setIsoFormat(ISO_FORMAT_FIRSTINTERINDUSTRY); apduSpecification.setIsoCase(ISO_CASE_3); apduSpecification.setIns(INS_22_MANAGE_SECURITY_ENVIRONMENT); apduSpecification.setP1((byte) 0x81); apduSpecification.setP2((byte) 0xB6); createNewTagSpecification(TAG_83); apduSpecification.addTag(tagSpecification); registerApduSpecification(apduSpecification); if(true){ /* Transition from REGISTER_APDU_SET_DST to REGISTER_APDU_PSO */ evConsumed=16; /* adjust state variables */ stateVarREGISTER_APDUS = REGISTER_APDU_PSO; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case REGISTER_APDU_SET_DST */ default: /* Intentionally left blank */ break; } /* end switch REGISTER_APDUS */ break; /* end of case REGISTER_APDUS */ case RESET: if(true){ /* Transition from RESET to TA_INIT */ evConsumed=16; /* OnEntry code of state TA_ANNOUNCED */ logs("TA_ANNOUNCED"); /* OnEntry code of state TA_INIT */ logs("INIT"); returnResult(); /* adjust state variables */ stateVar = TA_ANNOUNCED; stateVarTA_ANNOUNCED = TA_INIT; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case RESET */ case TA_ANNOUNCED: switch (stateVarTA_ANNOUNCED) { case TA_GET_CHALLENGE_PROCESSED: if(true){ /* Transition from TA_GET_CHALLENGE_PROCESSED to TA_IN_PROGRESS */ evConsumed=16; /* Action code for transition */ returnResult(); stateVarTA_ANNOUNCED = TA_IN_PROGRESS;/* entry chain */ if(stateVarTA_IN_PROGRESS== TA_EXTERNAL_AUTHENTICATE_PROCESSED){ returnResult(); }else if(stateVarTA_IN_PROGRESS== TA_EXTERNAL_AUTHENTICATE_RECEIVED){ processCommandExternalAuthenticate(); }else if(stateVarTA_IN_PROGRESS== TA_PSO_PROCESSED){ returnResult(); }else if(stateVarTA_IN_PROGRESS== TA_PSO_RECEIVED){ processCommandPsoVerifyCertificate(); }else if(stateVarTA_IN_PROGRESS== TA_SET_AT_PROCESSED){ returnResult(); }else if(stateVarTA_IN_PROGRESS== TA_SET_AT_RECEIVED){ processCommandSetAt(); }else if(stateVarTA_IN_PROGRESS== TA_SET_DST_PROCESSED){ returnResult(); }else if(stateVarTA_IN_PROGRESS== TA_SET_DST_RECEIVED){ processCommandSetDst(); } }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case TA_GET_CHALLENGE_PROCESSED */ case TA_GET_CHALLENGE_RECEIVED: if(isStatusWord(SW_9000_NO_ERROR)){ /* Transition from TA_GET_CHALLENGE_RECEIVED to TA_GET_CHALLENGE_PROCESSED */ evConsumed=16; /* adjust state variables */ stateVarTA_ANNOUNCED = TA_GET_CHALLENGE_PROCESSED; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case TA_GET_CHALLENGE_RECEIVED */ case TA_INIT: if(true){ /* Transition from TA_INIT to TA_IN_PROGRESS */ evConsumed=16; stateVarTA_ANNOUNCED = TA_IN_PROGRESS;/* entry chain */ if(stateVarTA_IN_PROGRESS== TA_EXTERNAL_AUTHENTICATE_PROCESSED){ returnResult(); }else if(stateVarTA_IN_PROGRESS== TA_EXTERNAL_AUTHENTICATE_RECEIVED){ processCommandExternalAuthenticate(); }else if(stateVarTA_IN_PROGRESS== TA_PSO_PROCESSED){ returnResult(); }else if(stateVarTA_IN_PROGRESS== TA_PSO_RECEIVED){ processCommandPsoVerifyCertificate(); }else if(stateVarTA_IN_PROGRESS== TA_SET_AT_PROCESSED){ returnResult(); }else if(stateVarTA_IN_PROGRESS== TA_SET_AT_RECEIVED){ processCommandSetAt(); }else if(stateVarTA_IN_PROGRESS== TA_SET_DST_PROCESSED){ returnResult(); }else if(stateVarTA_IN_PROGRESS== TA_SET_DST_RECEIVED){ processCommandSetDst(); } }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case TA_INIT */ case TA_IN_PROGRESS: switch (stateVarTA_IN_PROGRESS) { case TA_EXTERNAL_AUTHENTICATE_PROCESSED: if(true){ /* Transition from TA_EXTERNAL_AUTHENTICATE_PROCESSED to TA_COMPLETE */ evConsumed=16; /* OnEntry code of state TA_COMPLETE */ logs("Completed"); /* adjust state variables */ stateVar = TA_COMPLETE; stateVarTA_ANNOUNCED = TA_INIT; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case TA_EXTERNAL_AUTHENTICATE_PROCESSED */ case TA_EXTERNAL_AUTHENTICATE_RECEIVED: if(isStatusWord(SW_9000_NO_ERROR)){ /* Transition from TA_EXTERNAL_AUTHENTICATE_RECEIVED to TA_EXTERNAL_AUTHENTICATE_PROCESSED */ evConsumed=16; /* OnEntry code of state TA_EXTERNAL_AUTHENTICATE_PROCESSED */ returnResult(); /* adjust state variables */ stateVarTA_IN_PROGRESS = TA_EXTERNAL_AUTHENTICATE_PROCESSED; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case TA_EXTERNAL_AUTHENTICATE_RECEIVED */ case TA_PROGRESS_INIT: if(isAPDU("Set DST")){ /* Transition from TA_PROGRESS_INIT to TA_SET_DST_RECEIVED */ evConsumed=16; /* OnEntry code of state TA_SET_DST_RECEIVED */ processCommandSetDst(); /* adjust state variables */ stateVarTA_IN_PROGRESS = TA_SET_DST_RECEIVED; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case TA_PROGRESS_INIT */ case TA_PSO_PROCESSED: if(isAPDU("Set AT")){ /* Transition from TA_PSO_PROCESSED to TA_SET_AT_RECEIVED */ evConsumed=16; /* OnEntry code of state TA_SET_AT_RECEIVED */ processCommandSetAt(); /* adjust state variables */ stateVarTA_IN_PROGRESS = TA_SET_AT_RECEIVED; }else if(isAPDU("Set DST")){ /* Transition from TA_PSO_PROCESSED to TA_SET_DST_RECEIVED */ evConsumed=16; /* OnEntry code of state TA_SET_DST_RECEIVED */ processCommandSetDst(); /* adjust state variables */ stateVarTA_IN_PROGRESS = TA_SET_DST_RECEIVED; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case TA_PSO_PROCESSED */ case TA_PSO_RECEIVED: if(isStatusWord(SW_9000_NO_ERROR)){ /* Transition from TA_PSO_RECEIVED to TA_PSO_PROCESSED */ evConsumed=16; /* OnEntry code of state TA_PSO_PROCESSED */ returnResult(); /* adjust state variables */ stateVarTA_IN_PROGRESS = TA_PSO_PROCESSED; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case TA_PSO_RECEIVED */ case TA_SET_AT_PROCESSED: if(isAPDU("External Authenticate")){ /* Transition from TA_SET_AT_PROCESSED to TA_EXTERNAL_AUTHENTICATE_RECEIVED */ evConsumed=16; /* OnEntry code of state TA_EXTERNAL_AUTHENTICATE_RECEIVED */ processCommandExternalAuthenticate(); /* adjust state variables */ stateVarTA_IN_PROGRESS = TA_EXTERNAL_AUTHENTICATE_RECEIVED; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case TA_SET_AT_PROCESSED */ case TA_SET_AT_RECEIVED: if(isStatusWord(SW_9000_NO_ERROR)){ /* Transition from TA_SET_AT_RECEIVED to TA_SET_AT_PROCESSED */ evConsumed=16; /* OnEntry code of state TA_SET_AT_PROCESSED */ returnResult(); /* adjust state variables */ stateVarTA_IN_PROGRESS = TA_SET_AT_PROCESSED; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case TA_SET_AT_RECEIVED */ case TA_SET_DST_PROCESSED: if(isAPDU("PSO")){ /* Transition from TA_SET_DST_PROCESSED to TA_PSO_RECEIVED */ evConsumed=16; /* OnEntry code of state TA_PSO_RECEIVED */ processCommandPsoVerifyCertificate(); /* adjust state variables */ stateVarTA_IN_PROGRESS = TA_PSO_RECEIVED; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case TA_SET_DST_PROCESSED */ case TA_SET_DST_RECEIVED: if(isStatusWord(SW_9000_NO_ERROR)){ /* Transition from TA_SET_DST_RECEIVED to TA_SET_DST_PROCESSED */ evConsumed=16; /* OnEntry code of state TA_SET_DST_PROCESSED */ returnResult(); /* adjust state variables */ stateVarTA_IN_PROGRESS = TA_SET_DST_PROCESSED; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case TA_SET_DST_RECEIVED */ default: /* Intentionally left blank */ break; } /* end switch TA_IN_PROGRESS */ /* Check if event was already processed */ if(evConsumed==0){ if(isAPDU("Get Challenge")){ /* Transition from TA_IN_PROGRESS to TA_GET_CHALLENGE_RECEIVED */ evConsumed=16; /* OnEntry code of state TA_GET_CHALLENGE_RECEIVED */ processCommandGetChallenge(); /* adjust state variables */ stateVarTA_ANNOUNCED = TA_GET_CHALLENGE_RECEIVED; }else{ /* Intentionally left blank */ } /*end of event selection */ } break; /* end of case TA_IN_PROGRESS */ default: /* Intentionally left blank */ break; } /* end switch TA_ANNOUNCED */ /* Check if event was already processed */ if(evConsumed==0){ if(true){ if(warningOrErrorOccurredDuringProcessing()){ /* Transition from TA_ANNOUNCED to RESET */ evConsumed=16; if(stateVarTA_ANNOUNCED== TA_IN_PROGRESS){ } /* OnEntry code of state RESET */ logs("Perform reset"); reset(); /* adjust state variables */ stateVar = RESET; }else{ /* Transition from TA_ANNOUNCED to TA_ANNOUNCED */ evConsumed=16; if(stateVarTA_ANNOUNCED== TA_IN_PROGRESS){ } /* OnEntry code of state TA_ANNOUNCED */ logs("TA_ANNOUNCED"); logs("INIT"); returnResult(); stateVar = TA_ANNOUNCED;/* Default in entry chain */ stateVarTA_ANNOUNCED = TA_INIT;/* Default in entry chain */ } /*end of event selection */ }else{ /* Intentionally left blank */ } /*end of event selection */ } break; /* end of case TA_ANNOUNCED */ case TA_COMPLETE: if(true){ /* Transition from TA_COMPLETE to TA_INIT */ evConsumed=16; /* OnEntry code of state TA_ANNOUNCED */ logs("TA_ANNOUNCED"); /* OnEntry code of state TA_INIT */ logs("INIT"); returnResult(); /* adjust state variables */ stateVar = TA_ANNOUNCED; stateVarTA_ANNOUNCED = TA_INIT; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case TA_COMPLETE */ default: /* Intentionally left blank */ break; } /* end switch stateVar_root */ /* Post Action Code */ } while (this.continueProcessing); return evConsumed; } }