Search in sources :

Example 6 with CardApplicationPath

use of iso.std.iso_iec._24727.tech.schema.CardApplicationPath in project open-ecard by ecsec.

the class TinySALTest method testCardApplicationConnect.

/**
 * Test of cardApplicationConnect method, of class TinySAL.
 */
@Test(enabled = TESTS_ENABLED)
public void testCardApplicationConnect() {
    System.out.println("cardApplicationConnect");
    // test normal case
    // get esign path
    CardApplicationPath cardApplicationPath = new CardApplicationPath();
    CardApplicationPathType cardApplicationPathType = new CardApplicationPathType();
    cardApplicationPathType.setCardApplication(appIdentifier_ESIGN);
    cardApplicationPath.setCardAppPathRequest(cardApplicationPathType);
    CardApplicationPathResponse cardApplicationPathResponse = instance.cardApplicationPath(cardApplicationPath);
    // connect to esign
    CardApplicationConnect cardApplicationConnect = new CardApplicationConnect();
    cardApplicationConnect.setCardApplicationPath(cardApplicationPathResponse.getCardAppPathResultSet().getCardApplicationPathResult().get(0));
    CardApplicationConnectResponse result = instance.cardApplicationConnect(cardApplicationConnect);
    assertEquals(ECardConstants.Major.OK, result.getResult().getResultMajor());
    assertEquals(appIdentifier_ESIGN, result.getConnectionHandle().getCardApplication());
    // test non existent card application path
    cardApplicationConnect = new CardApplicationConnect();
    CardApplicationPathType wrongCardApplicationPath = cardApplicationPathResponse.getCardAppPathResultSet().getCardApplicationPathResult().get(0);
    wrongCardApplicationPath.setCardApplication(new byte[] { 0x12, 0x23, 0x34 });
    cardApplicationConnect.setCardApplicationPath(wrongCardApplicationPath);
    result = instance.cardApplicationConnect(cardApplicationConnect);
    assertEquals(ECardConstants.Major.ERROR, result.getResult().getResultMajor());
    assertEquals(ECardConstants.Minor.App.INCORRECT_PARM, result.getResult().getResultMinor());
    // test nullpointer
    cardApplicationConnect = new CardApplicationConnect();
    cardApplicationConnect.setCardApplicationPath(null);
    result = instance.cardApplicationConnect(cardApplicationConnect);
    assertEquals(ECardConstants.Major.ERROR, result.getResult().getResultMajor());
    assertEquals(ECardConstants.Minor.App.INCORRECT_PARM, result.getResult().getResultMinor());
}
Also used : CardApplicationPathType(iso.std.iso_iec._24727.tech.schema.CardApplicationPathType) CardApplicationPath(iso.std.iso_iec._24727.tech.schema.CardApplicationPath) CardApplicationPathResponse(iso.std.iso_iec._24727.tech.schema.CardApplicationPathResponse) CardApplicationConnect(iso.std.iso_iec._24727.tech.schema.CardApplicationConnect) CardApplicationConnectResponse(iso.std.iso_iec._24727.tech.schema.CardApplicationConnectResponse) Test(org.testng.annotations.Test)

Example 7 with CardApplicationPath

use of iso.std.iso_iec._24727.tech.schema.CardApplicationPath in project open-ecard by ecsec.

the class TinySALTest method testDsiDelete.

/**
 * Test of dsiDelete method, of class TinySAL.
 */
@Test(enabled = TESTS_ENABLED)
public void testDsiDelete() {
    System.out.println("dsiDelete");
    // get path to esign
    CardApplicationPath cardApplicationPath = new CardApplicationPath();
    CardApplicationPathType cardApplicationPathType = new CardApplicationPathType();
    cardApplicationPathType.setCardApplication(appIdentifier_ESIGN);
    cardApplicationPath.setCardAppPathRequest(cardApplicationPathType);
    CardApplicationPathResponse cardApplicationPathResponse = instance.cardApplicationPath(cardApplicationPath);
    // connect to esign
    CardApplicationConnect cardApplicationConnect = new CardApplicationConnect();
    cardApplicationConnect.setCardApplicationPath(cardApplicationPathResponse.getCardAppPathResultSet().getCardApplicationPathResult().get(0));
    CardApplicationConnectResponse result = instance.cardApplicationConnect(cardApplicationConnect);
    assertEquals(ECardConstants.Major.OK, result.getResult().getResultMajor());
    // list datasets of esign
    DataSetList dataSetList = new DataSetList();
    dataSetList.setConnectionHandle(result.getConnectionHandle());
    DataSetListResponse dataSetListResponse = instance.dataSetList(dataSetList);
    Assert.assertTrue(dataSetListResponse.getDataSetNameList().getDataSetName().size() > 0);
    assertEquals(ECardConstants.Major.OK, dataSetListResponse.getResult().getResultMajor());
    String dataSetName = dataSetListResponse.getDataSetNameList().getDataSetName().get(0);
    String dsiName = "dsiTest";
    DSIDelete parameters = new DSIDelete();
    parameters.setConnectionHandle(result.getConnectionHandle());
    parameters.setDSIName(dsiName);
    DSIDeleteResponse resultDSIDelete = instance.dsiDelete(parameters);
    assertEquals(ECardConstants.Major.OK, resultDSIDelete.getResult().getResultMajor());
    // try to find dsiName under dataSetName
    DSIList parametersDSI = new DSIList();
    parametersDSI.setConnectionHandle(result.getConnectionHandle());
    DSIListResponse resultDSIList = instance.dsiList(parametersDSI);
    assertEquals(ECardConstants.Major.OK, resultDSIList.getResult().getResultMajor());
    // try to find new DSI
    Iterator<String> it = resultDSIList.getDSINameList().getDSIName().iterator();
    boolean dsiFound = false;
    while (it.hasNext()) {
        String val = it.next();
        if (val.equals(dsiName)) {
            dsiFound = true;
        }
    }
    assertTrue(!dsiFound);
}
Also used : CardApplicationPathResponse(iso.std.iso_iec._24727.tech.schema.CardApplicationPathResponse) DSIDelete(iso.std.iso_iec._24727.tech.schema.DSIDelete) DSIList(iso.std.iso_iec._24727.tech.schema.DSIList) CardApplicationConnectResponse(iso.std.iso_iec._24727.tech.schema.CardApplicationConnectResponse) CardApplicationPathType(iso.std.iso_iec._24727.tech.schema.CardApplicationPathType) DSIListResponse(iso.std.iso_iec._24727.tech.schema.DSIListResponse) CardApplicationPath(iso.std.iso_iec._24727.tech.schema.CardApplicationPath) DataSetListResponse(iso.std.iso_iec._24727.tech.schema.DataSetListResponse) CardApplicationConnect(iso.std.iso_iec._24727.tech.schema.CardApplicationConnect) DataSetList(iso.std.iso_iec._24727.tech.schema.DataSetList) DSIDeleteResponse(iso.std.iso_iec._24727.tech.schema.DSIDeleteResponse) Test(org.testng.annotations.Test)

Example 8 with CardApplicationPath

use of iso.std.iso_iec._24727.tech.schema.CardApplicationPath in project open-ecard by ecsec.

the class TinySALTest method testCardApplicationDelete.

/**
 * Test of cardApplicationDelete method, of class TinySAL.
 */
@Test(enabled = TESTS_ENABLED)
public void testCardApplicationDelete() {
    System.out.println("cardApplicationDelete");
    Set<CardStateEntry> cHandles = states.getMatchingEntries(new ConnectionHandleType());
    byte[] appName = { (byte) 0x74, (byte) 0x65, (byte) 0x73, (byte) 0x74 };
    CardApplicationDelete parameters = new CardApplicationDelete();
    parameters.setConnectionHandle(cHandles.iterator().next().handleCopy());
    parameters.setCardApplicationName(appName);
    CardApplicationDeleteResponse result = instance.cardApplicationDelete(parameters);
    assertEquals(ECardConstants.Major.OK, result.getResult().getResultMajor());
    // get path to esign
    CardApplicationPath cardApplicationPath = new CardApplicationPath();
    CardApplicationPathType cardApplicationPathType = new CardApplicationPathType();
    cardApplicationPathType.setCardApplication(appIdentifier_ESIGN);
    cardApplicationPath.setCardAppPathRequest(cardApplicationPathType);
    CardApplicationPathResponse cardApplicationPathResponse = instance.cardApplicationPath(cardApplicationPath);
    // connect to esign
    CardApplicationConnect cardApplicationConnect = new CardApplicationConnect();
    cardApplicationConnect.setCardApplicationPath(cardApplicationPathResponse.getCardAppPathResultSet().getCardApplicationPathResult().get(0));
    CardApplicationConnectResponse resultConnect = instance.cardApplicationConnect(cardApplicationConnect);
    assertEquals(ECardConstants.Major.OK, resultConnect.getResult().getResultMajor());
    CardApplicationList cardApplicationList = new CardApplicationList();
    cardApplicationList.setConnectionHandle(cHandles.iterator().next().handleCopy());
    CardApplicationListResponse cardApplicationListResponse = instance.cardApplicationList(cardApplicationList);
    Iterator<byte[]> it = cardApplicationListResponse.getCardApplicationNameList().getCardApplicationName().iterator();
    boolean appFound = false;
    try {
        while (it.hasNext()) {
            byte[] val = it.next();
            if (Arrays.equals(val, appName)) {
                appFound = true;
            }
        }
        assertTrue(!appFound);
    } catch (Exception e) {
        assertTrue(!appFound);
        System.out.println(e);
    }
}
Also used : ConnectionHandleType(iso.std.iso_iec._24727.tech.schema.ConnectionHandleType) CardStateEntry(org.openecard.common.sal.state.CardStateEntry) CardApplicationPathResponse(iso.std.iso_iec._24727.tech.schema.CardApplicationPathResponse) CardApplicationConnectResponse(iso.std.iso_iec._24727.tech.schema.CardApplicationConnectResponse) CardApplicationList(iso.std.iso_iec._24727.tech.schema.CardApplicationList) SkipException(org.testng.SkipException) ParserConfigurationException(javax.xml.parsers.ParserConfigurationException) CardApplicationDelete(iso.std.iso_iec._24727.tech.schema.CardApplicationDelete) CardApplicationPathType(iso.std.iso_iec._24727.tech.schema.CardApplicationPathType) CardApplicationPath(iso.std.iso_iec._24727.tech.schema.CardApplicationPath) CardApplicationListResponse(iso.std.iso_iec._24727.tech.schema.CardApplicationListResponse) CardApplicationDeleteResponse(iso.std.iso_iec._24727.tech.schema.CardApplicationDeleteResponse) CardApplicationConnect(iso.std.iso_iec._24727.tech.schema.CardApplicationConnect) Test(org.testng.annotations.Test)

Example 9 with CardApplicationPath

use of iso.std.iso_iec._24727.tech.schema.CardApplicationPath in project open-ecard by ecsec.

the class AndroidMarshaller method parse.

private synchronized Object parse(XmlPullParser parser) throws XmlPullParserException, IOException, ParserConfigurationException, DatatypeConfigurationException {
    if (parser.getName().equals("DestroyChannelResponse")) {
        DestroyChannelResponse destroyChannelResponse = new DestroyChannelResponse();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Profile")) {
                    destroyChannelResponse.setProfile(parser.nextText());
                } else if (parser.getName().equals("RequestID")) {
                    destroyChannelResponse.setRequestID(parser.nextText());
                } else if (parser.getName().equals("Result")) {
                    destroyChannelResponse.setResult(this.parseResult(parser));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("DestroyChannelResponse")));
        return destroyChannelResponse;
    } else if (parser.getName().equals("DestroyChannel")) {
        DestroyChannel destroyChannel = new DestroyChannel();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("SlotHandle")) {
                    destroyChannel.setSlotHandle(StringUtils.toByteArray(parser.nextText()));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("DestroyChannel")));
        return destroyChannel;
    } else if (parser.getName().equals("EstablishChannelResponse")) {
        EstablishChannelResponse establishChannelResponse = new EstablishChannelResponse();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Profile")) {
                    establishChannelResponse.setProfile(parser.nextText());
                } else if (parser.getName().equals("RequestID")) {
                    establishChannelResponse.setRequestID(parser.nextText());
                } else if (parser.getName().equals("Result")) {
                    establishChannelResponse.setResult(this.parseResult(parser));
                } else if (parser.getName().equals("AuthenticationProtocolData")) {
                    establishChannelResponse.setAuthenticationProtocolData(this.parseDIDAuthenticationDataType(parser));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("EstablishChannelResponse")));
        return establishChannelResponse;
    } else if (parser.getName().equals("DIDAuthenticate")) {
        DIDAuthenticate didAuthenticate = new DIDAuthenticate();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("DIDName")) {
                    didAuthenticate.setDIDName(parser.nextText());
                } else if (parser.getName().equals("SlotHandle")) {
                    ConnectionHandleType cht = new ConnectionHandleType();
                    cht.setSlotHandle(StringUtils.toByteArray(parser.nextText()));
                    didAuthenticate.setConnectionHandle(cht);
                } else if (parser.getName().equals("AuthenticationProtocolData")) {
                    didAuthenticate.setAuthenticationProtocolData(this.parseDIDAuthenticationDataType(parser));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("DIDAuthenticate")));
        return didAuthenticate;
    } else if (parser.getName().equals("DIDAuthenticateResponse")) {
        DIDAuthenticateResponse response = new DIDAuthenticateResponse();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Result")) {
                    response.setResult(this.parseResult(parser));
                }
                if (parser.getName().equals("AuthenticationProtocolData")) {
                    response.setAuthenticationProtocolData(this.parseDIDAuthenticationDataType(parser));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("DIDAuthenticateResponse")));
        return response;
    } else if (parser.getName().equals("StartPAOSResponse")) {
        StartPAOSResponse startPAOSResponse = new StartPAOSResponse();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Result")) {
                    startPAOSResponse.setResult(this.parseResult(parser));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("StartPAOSResponse")));
        return startPAOSResponse;
    } else if (parser.getName().equals("InitializeFramework")) {
        InitializeFramework initializeFramework = new InitializeFramework();
        return initializeFramework;
    } else if (parser.getName().equals("Conclusion")) {
        return parseConclusion(parser);
    } else if (parser.getName().equals("WaitResponse")) {
        WaitResponse waitResponse = new WaitResponse();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Result")) {
                    waitResponse.setResult(this.parseResult(parser));
                } else if (parser.getName().equals("IFDEvent")) {
                    waitResponse.getIFDEvent().add(parseIFDStatusType(parser, "IFDEvent"));
                } else if (parser.getName().equals("SessionIdentifier")) {
                    waitResponse.setSessionIdentifier(parser.nextText());
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("WaitResponse")));
        return waitResponse;
    } else if (parser.getName().equals("GetStatusResponse")) {
        GetStatusResponse getStatusResponse = new GetStatusResponse();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Result")) {
                    getStatusResponse.setResult(this.parseResult(parser));
                } else if (parser.getName().equals("IFDStatus")) {
                    getStatusResponse.getIFDStatus().add(parseIFDStatusType(parser, "IFDStatus"));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("GetStatusResponse")));
        return getStatusResponse;
    } else if (parser.getName().equals("ListIFDs")) {
        ListIFDs listIFDs = new ListIFDs();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("ContextHandle")) {
                    listIFDs.setContextHandle(StringUtils.toByteArray(parser.nextText()));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("ListIFDs")));
        return listIFDs;
    } else if (parser.getName().equals("GetIFDCapabilities")) {
        GetIFDCapabilities getIFDCapabilities = new GetIFDCapabilities();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("ContextHandle")) {
                    getIFDCapabilities.setContextHandle(StringUtils.toByteArray(parser.nextText()));
                } else if (parser.getName().equals("IFDName")) {
                    getIFDCapabilities.setIFDName(parser.nextText());
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("GetIFDCapabilities")));
        return getIFDCapabilities;
    } else if (parser.getName().equals("GetIFDCapabilitiesResponse")) {
        GetIFDCapabilitiesResponse resp = new GetIFDCapabilitiesResponse();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Profile")) {
                    resp.setProfile(parser.nextText());
                } else if (parser.getName().equals("RequestID")) {
                    resp.setRequestID(parser.nextText());
                } else if (parser.getName().equals("Result")) {
                    resp.setResult(this.parseResult(parser));
                } else if (parser.getName().equals("GetIFDCapabilitiesResponse")) {
                    resp.setIFDCapabilities((IFDCapabilitiesType) this.parse(parser));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("GetIFDCapabilitiesResponse")));
        return resp;
    } else if (parser.getName().equals("IFDCapabilitiesType")) {
        IFDCapabilitiesType cap = new IFDCapabilitiesType();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("OpticalSignalUnit")) {
                    cap.setOpticalSignalUnit(Boolean.getBoolean(parser.nextText()));
                } else if (parser.getName().equals("AcousticSignalUnit")) {
                    cap.setAcousticSignalUnit(Boolean.getBoolean(parser.nextText()));
                } else if (parser.getName().equals("SlotCapability")) {
                    cap.getSlotCapability().add(parseSlotCapability(parser));
                } else if (parser.getName().equals("DisplayCapability")) {
                    cap.getDisplayCapability().add(parseDisplayCapability(parser));
                } else if (parser.getName().equals("KeyPadCapability")) {
                    cap.getKeyPadCapability().add(parseKeyPadCapability(parser));
                } else if (parser.getName().equals("BioSensorCapability")) {
                    cap.getBioSensorCapability().add(parseBioSensorCapability(parser));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("IFDCapabilitiesType")));
        return cap;
    } else if (parser.getName().equals("BeginTransaction")) {
        BeginTransaction trans = new BeginTransaction();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("SlotHandle")) {
                    trans.setSlotHandle(StringUtils.toByteArray(parser.nextText()));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("BeginTransaction")));
        return trans;
    } else if (parser.getName().equals("BeginTransactionResponse")) {
        BeginTransactionResponse response = new BeginTransactionResponse();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Profile")) {
                    response.setProfile(parser.nextText());
                } else if (parser.getName().equals("RequestID")) {
                    response.setRequestID(parser.nextText());
                } else if (parser.getName().equals("Result")) {
                    response.setResult(this.parseResult(parser));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("BeginTransactionResponse")));
        return response;
    } else if (parser.getName().equals("EndTransaction")) {
        EndTransaction end = new EndTransaction();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("SlotHandle")) {
                    end.setSlotHandle(StringUtils.toByteArray(parser.nextText()));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("EndTransaction")));
        return end;
    } else if (parser.getName().equals("EndTransactionResponse")) {
        EndTransactionResponse response = new EndTransactionResponse();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Profile")) {
                    response.setProfile(parser.nextText());
                } else if (parser.getName().equals("RequestID")) {
                    response.setRequestID(parser.nextText());
                } else if (parser.getName().equals("Result")) {
                    response.setResult(this.parseResult(parser));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("EndTransactionResponse")));
        return response;
    } else if (parser.getName().equals("CardApplicationPath")) {
        CardApplicationPath path = new CardApplicationPath();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("CardAppPathRequest")) {
                    path.setCardAppPathRequest((CardApplicationPathType) parse(parser));
                } else if (parser.getName().equals("Profile")) {
                    path.setProfile(parser.nextText());
                } else if (parser.getName().equals("RequestID")) {
                    path.setRequestID(parser.nextText());
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("CardApplicationPath")));
        return path;
    } else if (parser.getName().equals("CardAppPathRequest") || parser.getName().equals("CardApplicationPathResult")) {
        CardApplicationPathType type = new CardApplicationPathType();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("ChannelHandle")) {
                    type.setChannelHandle((ChannelHandleType) parse(parser));
                } else if (parser.getName().equals("ContextHandle")) {
                    type.setContextHandle(StringUtils.toByteArray(parser.nextText()));
                } else if (parser.getName().equals("IFDName")) {
                    type.setIFDName(parser.nextText());
                } else if (parser.getName().equals("SlotIndex")) {
                    type.setSlotIndex(new BigInteger(parser.nextText()));
                } else if (parser.getName().equals("CardApplication")) {
                    type.setCardApplication(StringUtils.toByteArray(parser.nextText()));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("CardAppPathRequest")));
        return type;
    } else if (parser.getName().equals("ChannelHandle")) {
        ChannelHandleType ch = new ChannelHandleType();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("ProtocolTerminationPoint")) {
                    ch.setProtocolTerminationPoint(parser.nextText());
                } else if (parser.getName().equals("SessionIdentifier")) {
                    ch.setSessionIdentifier(parser.nextText());
                } else if (parser.getName().equals("Binding")) {
                    ch.setBinding(parser.nextText());
                } else if (parser.getName().equals("PathSecurity")) {
                    ch.setPathSecurity((PathSecurityType) parse(parser));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("ChannelHandle")));
        return ch;
    } else if (parser.getName().equals("PathSecurity")) {
        PathSecurityType p = new PathSecurityType();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Protocol")) {
                    p.setProtocol(parser.nextText());
                } else if (parser.getName().equals("Parameters")) {
                    // TODO this object is an any type
                    p.setParameters((Object) parse(parser));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("PathSecurity")));
        return p;
    } else if (parser.getName().equals("CardApplicationPathResponse")) {
        CardApplicationPathResponse resp = new CardApplicationPathResponse();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("CardAppPathResultSet")) {
                    resp.setCardAppPathResultSet((CardApplicationPathResponse.CardAppPathResultSet) parse(parser));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("CardApplicationPathResponse")));
        return resp;
    } else if (parser.getName().equals("CardAppPathResultSet")) {
        CardApplicationPathResponse.CardAppPathResultSet result = new CardApplicationPathResponse.CardAppPathResultSet();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("CardApplicationPathResult")) {
                    result.getCardApplicationPathResult().add((CardApplicationPathType) parse(parser));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("CardAppPathResultSet")));
        return result;
    } else if (parser.getName().equals("CardApplicationConnect")) {
        CardApplicationConnect result = new CardApplicationConnect();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("CardApplicationPath")) {
                    result.setCardApplicationPath(parseCardApplicationPath(parser));
                } else if (parser.getName().equals("Output")) {
                    result.setOutput((OutputInfoType) parse(parser));
                } else if (parser.getName().equals("ExclusiveUse")) {
                    result.setExclusiveUse(Boolean.getBoolean(parser.nextText()));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("CardApplicationConnect")));
        return result;
    } else if (parser.getName().equals("Output")) {
        OutputInfoType result = new OutputInfoType();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Timeout")) {
                    result.setTimeout(new BigInteger(parser.nextText()));
                } else if (parser.getName().equals("DisplayIndex")) {
                    result.setDisplayIndex(new BigInteger(parser.nextText()));
                } else if (parser.getName().equals("Message")) {
                    result.setMessage(parser.nextText());
                } else if (parser.getName().equals("AcousticalSignal")) {
                    result.setAcousticalSignal(Boolean.getBoolean(parser.nextText()));
                } else if (parser.getName().equals("OpticalSignal")) {
                    result.setOpticalSignal(Boolean.getBoolean(parser.nextText()));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("Output")));
        return result;
    } else if (parser.getName().equals("CardApplicationConnectResponse")) {
        CardApplicationConnectResponse result = new CardApplicationConnectResponse();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Profile")) {
                    result.setProfile(parser.nextText());
                } else if (parser.getName().equals("RequestID")) {
                    result.setRequestID(parser.nextText());
                } else if (parser.getName().equals("Result")) {
                    result.setResult(this.parseResult(parser));
                } else if (parser.getName().equals("ConnectionHandle")) {
                    result.setConnectionHandle((ConnectionHandleType) parse(parser));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("CardApplicationConnectResponse")));
        return result;
    } else if (parser.getName().equals("ConnectionHandle")) {
        ConnectionHandleType result = new ConnectionHandleType();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("ChannelHandle")) {
                    result.setChannelHandle((ChannelHandleType) parse(parser));
                } else if (parser.getName().equals("ContextHandle")) {
                    result.setContextHandle(StringUtils.toByteArray(parser.nextText()));
                } else if (parser.getName().equals("IFDName")) {
                    result.setIFDName(parser.nextText());
                } else if (parser.getName().equals("SlotIndex")) {
                    result.setSlotIndex(new BigInteger(parser.nextText()));
                } else if (parser.getName().equals("CardApplication")) {
                    result.setCardApplication(StringUtils.toByteArray(parser.nextText()));
                } else if (parser.getName().equals("SlotHandle")) {
                    result.setSlotHandle(StringUtils.toByteArray(parser.nextText()));
                } else if (parser.getName().equals("RecognitionInfo")) {
                    result.setRecognitionInfo((RecognitionInfo) parse(parser));
                } else if (parser.getName().equals("SlotInfo")) {
                    result.setSlotInfo((SlotInfo) parse(parser));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("ConnectionHandle")));
        return result;
    } else if (parser.getName().equals("RecognitionInfo")) {
        RecognitionInfo result = new RecognitionInfo();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("CardType")) {
                    result.setCardType(parser.nextText());
                } else if (parser.getName().equals("CardIdentifier")) {
                    result.setCardIdentifier(StringUtils.toByteArray(parser.nextText()));
                } else if (parser.getName().equals("CaptureTime")) {
                // TODO
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("RecognitionInfo")));
        return result;
    } else if (parser.getName().equals("SlotInfo")) {
        SlotInfo result = new SlotInfo();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("ProtectedAuthPath")) {
                    result.setProtectedAuthPath(Boolean.getBoolean(parser.nextText()));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("SlotInfo")));
        return result;
    } else if (parser.getName().equals("CardApplicationDisconnect")) {
        CardApplicationDisconnect result = new CardApplicationDisconnect();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("ConnectionHandle")) {
                    result.setConnectionHandle(parseConnectionHandle(parser));
                } else if (parser.getName().equals("Action")) {
                    result.setAction(ActionType.fromValue(parser.nextText()));
                } else if (parser.getName().equals("Profile")) {
                    result.setProfile(parser.nextText());
                } else if (parser.getName().equals("RequestID")) {
                    result.setRequestID(parser.nextText());
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("CardApplicationDisconnect")));
        return result;
    } else if (parser.getName().equals("CardApplicationDisconnectResponse")) {
        CardApplicationDisconnectResponse result = new CardApplicationDisconnectResponse();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Profile")) {
                    result.setProfile(parser.nextText());
                } else if (parser.getName().equals("RequestID")) {
                    result.setRequestID(parser.nextText());
                } else if (parser.getName().equals("Result")) {
                    result.setResult(this.parseResult(parser));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("CardApplicationDisconnectResponse")));
        return result;
    } else if (parser.getName().equals("GetRecognitionTreeResponse")) {
        GetRecognitionTreeResponse resp = new GetRecognitionTreeResponse();
        RecognitionTree recTree = new RecognitionTree();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Result")) {
                    resp.setResult(this.parseResult(parser));
                } else if (parser.getName().equals("CardCall")) {
                    recTree.getCardCall().add(this.parseCardCall(parser));
                }
            } else if (eventType == XmlPullParser.END_TAG) {
                if (parser.getName().equals("CardCall")) {
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("GetRecognitionTreeResponse")));
        resp.setRecognitionTree(recTree);
        return resp;
    } else if (parser.getName().equals("EstablishContext")) {
        EstablishContext establishContext = new EstablishContext();
        return establishContext;
    } else if (parser.getName().equals("EstablishContextResponse")) {
        EstablishContextResponse establishContextResponse = new EstablishContextResponse();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Result")) {
                    establishContextResponse.setResult(this.parseResult(parser));
                } else if (parser.getName().equals("ContextHandle")) {
                    establishContextResponse.setContextHandle(StringUtils.toByteArray(parser.nextText()));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("EstablishContextResponse")));
        return establishContextResponse;
    } else if (parser.getName().equals("ListIFDsResponse")) {
        ListIFDsResponse listIFDsResponse = new ListIFDsResponse();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Result")) {
                    listIFDsResponse.setResult(this.parseResult(parser));
                } else if (parser.getName().equals("IFDName")) {
                    listIFDsResponse.getIFDName().add(parser.nextText());
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("ListIFDsResponse")));
        return listIFDsResponse;
    } else if (parser.getName().equals("ConnectResponse")) {
        ConnectResponse connectResponse = new ConnectResponse();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Result")) {
                    connectResponse.setResult(this.parseResult(parser));
                } else if (parser.getName().equals("SlotHandle")) {
                    connectResponse.setSlotHandle(StringUtils.toByteArray(parser.nextText()));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("ConnectResponse")));
        return connectResponse;
    } else if (parser.getName().equals("Connect")) {
        Connect c = new Connect();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("IFDName")) {
                    c.setIFDName(parser.nextText());
                } else if (parser.getName().equals("ContextHandle")) {
                    c.setContextHandle(StringUtils.toByteArray(parser.nextText()));
                } else if (parser.getName().equals("Slot")) {
                    c.setSlot(new BigInteger(parser.nextText()));
                }
            // TODO exclusive
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("Connect")));
        return c;
    } else if (parser.getName().equals("Disconnect")) {
        Disconnect d = new Disconnect();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("SlotHandle")) {
                    d.setSlotHandle(StringUtils.toByteArray(parser.nextText()));
                } else if (parser.getName().equals("Action")) {
                    d.setAction(ActionType.fromValue(parser.nextText()));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("Disconnect")));
        return d;
    } else if (parser.getName().equals("DisconnectResponse")) {
        DisconnectResponse response = new DisconnectResponse();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Profile")) {
                    response.setProfile(parser.nextText());
                } else if (parser.getName().equals("RequestID")) {
                    response.setRequestID(parser.nextText());
                } else if (parser.getName().equals("Result")) {
                    response.setResult(this.parseResult(parser));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("DisconnectResponse")));
        return response;
    } else if (parser.getName().equals("Transmit")) {
        Transmit t = new Transmit();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("InputAPDUInfo")) {
                    t.getInputAPDUInfo().add(this.parseInputAPDUInfo(parser));
                } else if (parser.getName().equals("SlotHandle")) {
                    t.setSlotHandle(StringUtils.toByteArray(parser.nextText()));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("Transmit")));
        return t;
    } else if (parser.getName().equals("TransmitResponse")) {
        TransmitResponse transmitResponse = new TransmitResponse();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("Result")) {
                    transmitResponse.setResult(this.parseResult(parser));
                } else if (parser.getName().equals("OutputAPDU")) {
                    transmitResponse.getOutputAPDU().add(StringUtils.toByteArray(parser.nextText()));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("TransmitResponse")));
        return transmitResponse;
    } else if (parser.getName().equals("CardInfo")) {
        // TODO CardIdentification and CardCapabilities are ignored
        CardInfo cardInfo = new CardInfo();
        ApplicationCapabilitiesType applicationCapabilities = new ApplicationCapabilitiesType();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("ObjectIdentifier")) {
                    CardTypeType cardType = new CardTypeType();
                    cardType.setObjectIdentifier(parser.nextText());
                    cardInfo.setCardType(cardType);
                } else if (parser.getName().equals("ImplicitlySelectedApplication")) {
                    try {
                        // TODO iso:Path, see CardInfo_ecard-AT_0-9-0
                        String selectedApplication = parser.nextText();
                        applicationCapabilities.setImplicitlySelectedApplication(StringUtils.toByteArray(selectedApplication));
                    } catch (XmlPullParserException ex) {
                    }
                } else if (parser.getName().equals("CardApplication")) {
                    applicationCapabilities.getCardApplication().add(this.parseCardApplication(parser));
                } else if (parser.getName().equals("CardTypeName")) {
                    InternationalStringType internationalString = new InternationalStringType();
                    String lang = parser.getAttributeValue("http://www.w3.org/XML/1998/namespace", "lang");
                    internationalString.setLang(lang);
                    internationalString.setValue(parser.nextText());
                    cardInfo.getCardType().getCardTypeName().add(internationalString);
                } else if (parser.getName().equals("SpecificationBodyOrIssuer")) {
                    cardInfo.getCardType().setSpecificationBodyOrIssuer(parser.nextText());
                } else if (parser.getName().equals("Status")) {
                    cardInfo.getCardType().setStatus(parser.nextText());
                } else if (parser.getName().equals("Date")) {
                // currently not working; see http://code.google.com/p/android/issues/detail?id=14379
                /*String text = parser.nextText();
			XMLGregorianCalendar date = DatatypeFactory.newInstance().newXMLGregorianCalendar(text);
			cardInfo.getCardType().setDate(date);*/
                } else if (parser.getName().equals("Version")) {
                    cardInfo.getCardType().setVersion(this.parseVersion(parser));
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("CardInfo")));
        cardInfo.setApplicationCapabilities(applicationCapabilities);
        return cardInfo;
    } else if (parser.getName().equals("AddonSpecification")) {
        AddonSpecification addonBundleDescription = new AddonSpecification();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("ID")) {
                    addonBundleDescription.setId(parser.nextText());
                } else if (parser.getName().equals("Version")) {
                    addonBundleDescription.setVersion(parser.nextText());
                } else if (parser.getName().equals("License")) {
                    addonBundleDescription.setLicense(parser.nextText());
                } else if (parser.getName().equals("LocalizedName")) {
                    LocalizedString string = new LocalizedString();
                    string.setLang(parser.getAttributeValue("http://www.w3.org/XML/1998/namespace", "lang"));
                    string.setValue(parser.nextText());
                    addonBundleDescription.getLocalizedName().add(string);
                } else if (parser.getName().equals("LocalizedDescription")) {
                    LocalizedString string = new LocalizedString();
                    string.setLang(parser.getAttributeValue("http://www.w3.org/XML/1998/namespace", "lang"));
                    string.setValue(parser.nextText());
                    addonBundleDescription.getLocalizedDescription().add(string);
                } else if (parser.getName().equals("About")) {
                    LocalizedString string = new LocalizedString();
                    string.setLang(parser.getAttributeValue("http://www.w3.org/XML/1998/namespace", "lang"));
                    string.setValue(parser.nextText());
                    addonBundleDescription.getAbout().add(string);
                } else if (parser.getName().equals("Logo")) {
                    addonBundleDescription.setLogo(parser.nextText());
                } else if (parser.getName().equals("ConfigDescription")) {
                    addonBundleDescription.setConfigDescription(parseConfigDescription(parser));
                } else if (parser.getName().equals("BindingActions")) {
                    addonBundleDescription.getBindingActions().addAll(parseBindingActions(parser));
                } else if (parser.getName().equals("ApplicationActions")) {
                    addonBundleDescription.getApplicationActions().addAll(parseApplicationActions(parser));
                } else if (parser.getName().equals("IFDActions")) {
                    addonBundleDescription.getIfdActions().addAll(parseProtocolPluginSpecification(parser, "IFDActions"));
                } else if (parser.getName().equals("SALActions")) {
                    addonBundleDescription.getSalActions().addAll(parseProtocolPluginSpecification(parser, "SALActions"));
                } else {
                    throw new IllegalArgumentException(parser.getName() + " in AddonSpecification is not supported.");
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("AddonSpecification")));
        return addonBundleDescription;
    } else if (parser.getName().equals("EstablishChannel")) {
        EstablishChannel result = new EstablishChannel();
        int eventType;
        do {
            parser.next();
            eventType = parser.getEventType();
            if (eventType == XmlPullParser.START_TAG) {
                if (parser.getName().equals("SlotHandle")) {
                    result.setSlotHandle(StringUtils.toByteArray(parser.nextText()));
                } else if (parser.getName().equals("AuthenticationProtocolData")) {
                    result.setAuthenticationProtocolData(parseDIDAuthenticationDataType(parser));
                } else if (parser.getName().equals("Profile")) {
                    result.setProfile(parser.nextText());
                } else if (parser.getName().equals("RequestID")) {
                    result.setRequestID(parser.nextText());
                } else {
                    throw new IOException("Unmarshalling of " + parser.getName() + " in EstablishChannel not supported.");
                }
            }
        } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("EstablishChannel")));
        return result;
    } else {
        throw new IOException("Unmarshalling of " + parser.getName() + " is not yet supported.");
    }
}
Also used : ConnectionHandleType(iso.std.iso_iec._24727.tech.schema.ConnectionHandleType) InitializeFramework(de.bund.bsi.ecard.api._1.InitializeFramework) GetStatusResponse(iso.std.iso_iec._24727.tech.schema.GetStatusResponse) ChannelHandleType(iso.std.iso_iec._24727.tech.schema.ChannelHandleType) LocalizedString(org.openecard.addon.manifest.LocalizedString) GetIFDCapabilities(iso.std.iso_iec._24727.tech.schema.GetIFDCapabilities) BeginTransaction(iso.std.iso_iec._24727.tech.schema.BeginTransaction) PathSecurityType(iso.std.iso_iec._24727.tech.schema.PathSecurityType) CardApplicationConnect(iso.std.iso_iec._24727.tech.schema.CardApplicationConnect) XmlPullParserException(org.xmlpull.v1.XmlPullParserException) AddonSpecification(org.openecard.addon.manifest.AddonSpecification) EstablishContext(iso.std.iso_iec._24727.tech.schema.EstablishContext) EndTransaction(iso.std.iso_iec._24727.tech.schema.EndTransaction) OutputInfoType(iso.std.iso_iec._24727.tech.schema.OutputInfoType) CardApplicationPathResponse(iso.std.iso_iec._24727.tech.schema.CardApplicationPathResponse) EstablishChannelResponse(iso.std.iso_iec._24727.tech.schema.EstablishChannelResponse) CardApplicationConnect(iso.std.iso_iec._24727.tech.schema.CardApplicationConnect) Connect(iso.std.iso_iec._24727.tech.schema.Connect) CardInfo(iso.std.iso_iec._24727.tech.schema.CardInfo) EstablishContextResponse(iso.std.iso_iec._24727.tech.schema.EstablishContextResponse) DestroyChannelResponse(iso.std.iso_iec._24727.tech.schema.DestroyChannelResponse) BeginTransactionResponse(iso.std.iso_iec._24727.tech.schema.BeginTransactionResponse) EstablishChannel(iso.std.iso_iec._24727.tech.schema.EstablishChannel) BigInteger(java.math.BigInteger) GetIFDCapabilitiesResponse(iso.std.iso_iec._24727.tech.schema.GetIFDCapabilitiesResponse) ListIFDs(iso.std.iso_iec._24727.tech.schema.ListIFDs) CardApplicationDisconnect(iso.std.iso_iec._24727.tech.schema.CardApplicationDisconnect) CardTypeType(iso.std.iso_iec._24727.tech.schema.CardTypeType) ConnectResponse(iso.std.iso_iec._24727.tech.schema.ConnectResponse) CardApplicationConnectResponse(iso.std.iso_iec._24727.tech.schema.CardApplicationConnectResponse) IFDCapabilitiesType(iso.std.iso_iec._24727.tech.schema.IFDCapabilitiesType) StartPAOSResponse(iso.std.iso_iec._24727.tech.schema.StartPAOSResponse) WaitResponse(iso.std.iso_iec._24727.tech.schema.WaitResponse) EndTransactionResponse(iso.std.iso_iec._24727.tech.schema.EndTransactionResponse) LocalizedString(org.openecard.addon.manifest.LocalizedString) CardApplicationPathType(iso.std.iso_iec._24727.tech.schema.CardApplicationPathType) Disconnect(iso.std.iso_iec._24727.tech.schema.Disconnect) CardApplicationDisconnect(iso.std.iso_iec._24727.tech.schema.CardApplicationDisconnect) DisconnectResponse(iso.std.iso_iec._24727.tech.schema.DisconnectResponse) CardApplicationDisconnectResponse(iso.std.iso_iec._24727.tech.schema.CardApplicationDisconnectResponse) DestroyChannel(iso.std.iso_iec._24727.tech.schema.DestroyChannel) RecognitionInfo(iso.std.iso_iec._24727.tech.schema.ConnectionHandleType.RecognitionInfo) RecognitionTree(iso.std.iso_iec._24727.tech.schema.RecognitionTree) DIDAuthenticate(iso.std.iso_iec._24727.tech.schema.DIDAuthenticate) Transmit(iso.std.iso_iec._24727.tech.schema.Transmit) ListIFDsResponse(iso.std.iso_iec._24727.tech.schema.ListIFDsResponse) GetRecognitionTreeResponse(iso.std.iso_iec._24727.tech.schema.GetRecognitionTreeResponse) CardApplicationDisconnectResponse(iso.std.iso_iec._24727.tech.schema.CardApplicationDisconnectResponse) CardApplicationConnectResponse(iso.std.iso_iec._24727.tech.schema.CardApplicationConnectResponse) IOException(java.io.IOException) InternationalStringType(oasis.names.tc.dss._1_0.core.schema.InternationalStringType) DIDAuthenticateResponse(iso.std.iso_iec._24727.tech.schema.DIDAuthenticateResponse) CardApplicationPath(iso.std.iso_iec._24727.tech.schema.CardApplicationPath) ApplicationCapabilitiesType(iso.std.iso_iec._24727.tech.schema.ApplicationCapabilitiesType) TransmitResponse(iso.std.iso_iec._24727.tech.schema.TransmitResponse) SlotInfo(iso.std.iso_iec._24727.tech.schema.ConnectionHandleType.SlotInfo)

Example 10 with CardApplicationPath

use of iso.std.iso_iec._24727.tech.schema.CardApplicationPath in project open-ecard by ecsec.

the class AndroidMarshaller method parseCardApplicationPath.

private CardApplicationPathType parseCardApplicationPath(XmlPullParser parser) throws XmlPullParserException, IOException, ParserConfigurationException, DatatypeConfigurationException {
    CardApplicationPathType type = new CardApplicationPathType();
    int eventType;
    do {
        parser.next();
        eventType = parser.getEventType();
        if (eventType == XmlPullParser.START_TAG) {
            if (parser.getName().equals("ChannelHandle")) {
                type.setChannelHandle((ChannelHandleType) parse(parser));
            } else if (parser.getName().equals("ContextHandle")) {
                type.setContextHandle(StringUtils.toByteArray(parser.nextText()));
            } else if (parser.getName().equals("IFDName")) {
                type.setIFDName(parser.nextText());
            } else if (parser.getName().equals("SlotIndex")) {
                type.setSlotIndex(new BigInteger(parser.nextText()));
            } else if (parser.getName().equals("CardApplication")) {
                type.setCardApplication(StringUtils.toByteArray(parser.nextText()));
            }
        }
    } while (!(eventType == XmlPullParser.END_TAG && parser.getName().equals("CardApplicationPath")));
    return type;
}
Also used : CardApplicationPathType(iso.std.iso_iec._24727.tech.schema.CardApplicationPathType) BigInteger(java.math.BigInteger)

Aggregations

CardApplicationPathResponse (iso.std.iso_iec._24727.tech.schema.CardApplicationPathResponse)35 CardApplicationPathType (iso.std.iso_iec._24727.tech.schema.CardApplicationPathType)35 CardApplicationPath (iso.std.iso_iec._24727.tech.schema.CardApplicationPath)34 CardApplicationConnect (iso.std.iso_iec._24727.tech.schema.CardApplicationConnect)33 CardApplicationConnectResponse (iso.std.iso_iec._24727.tech.schema.CardApplicationConnectResponse)33 Test (org.testng.annotations.Test)26 ConnectionHandleType (iso.std.iso_iec._24727.tech.schema.ConnectionHandleType)9 DIDAuthenticate (iso.std.iso_iec._24727.tech.schema.DIDAuthenticate)6 DIDAuthenticateResponse (iso.std.iso_iec._24727.tech.schema.DIDAuthenticateResponse)6 DIDGet (iso.std.iso_iec._24727.tech.schema.DIDGet)6 DIDGetResponse (iso.std.iso_iec._24727.tech.schema.DIDGetResponse)6 DIDList (iso.std.iso_iec._24727.tech.schema.DIDList)6 DIDListResponse (iso.std.iso_iec._24727.tech.schema.DIDListResponse)6 DIDQualifierType (iso.std.iso_iec._24727.tech.schema.DIDQualifierType)6 DataSetList (iso.std.iso_iec._24727.tech.schema.DataSetList)6 DataSetListResponse (iso.std.iso_iec._24727.tech.schema.DataSetListResponse)6 CardApplicationDisconnect (iso.std.iso_iec._24727.tech.schema.CardApplicationDisconnect)5 CardAppPathResultSet (iso.std.iso_iec._24727.tech.schema.CardApplicationPathResponse.CardAppPathResultSet)5 CryptoMarkerType (iso.std.iso_iec._24727.tech.schema.CryptoMarkerType)4 CardApplicationDisconnectResponse (iso.std.iso_iec._24727.tech.schema.CardApplicationDisconnectResponse)3