use of iso.std.iso_iec._24727.tech.schema.GetStatusResponse in project open-ecard by ecsec.
the class IfdEventRunner method ifdStatus.
@Nonnull
private List<IFDStatusType> ifdStatus() throws WSException {
LOG.debug("Requesting terminal names.");
ListIFDs listReq = new ListIFDs();
listReq.setContextHandle(ctxHandle);
ListIFDsResponse ifds = env.getIFD().listIFDs(listReq);
WSHelper.checkResult(ifds);
LOG.debug("Requesting status for all terminals found.");
ArrayList<IFDStatusType> result = new ArrayList<>();
for (String ifd : ifds.getIFDName()) {
GetStatus status = new GetStatus();
status.setContextHandle(ctxHandle);
status.setIFDName(ifd);
GetStatusResponse statusResponse = env.getIFD().getStatus(status);
try {
WSHelper.checkResult(statusResponse);
result.addAll(statusResponse.getIFDStatus());
} catch (WSException ex) {
String msg = "Failed to request status from terminal, assuming no card present.";
LOG.error(msg, ex);
IFDStatusType is = new IFDStatusType();
is.setIFDName(ifd);
result.add(is);
}
}
return result;
}
use of iso.std.iso_iec._24727.tech.schema.GetStatusResponse 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.");
}
}
use of iso.std.iso_iec._24727.tech.schema.GetStatusResponse in project open-ecard by ecsec.
the class ListTokens method getUnknownCards.
private List<TokenInfoType> getUnknownCards(List<ConnectionHandleType> knownHandles) {
ArrayList<TokenInfoType> result = new ArrayList<>();
List<byte[]> ifdCtxs = ctx.getIfdCtx();
for (byte[] ifdCtx : ifdCtxs) {
try {
// get all IFD names
GetStatus gs = new GetStatus();
gs.setContextHandle(ifdCtx);
GetStatusResponse gsr = (GetStatusResponse) dispatcher.safeDeliver(gs);
WSHelper.checkResult(gsr);
for (IFDStatusType istatus : gsr.getIFDStatus()) {
for (SlotStatusType sstatus : istatus.getSlotStatus()) // check if name is already in the list of known cards
if (sstatus.isCardAvailable() && !isInHandleList(istatus.getIFDName(), knownHandles)) {
TokenInfoType ti = new TokenInfoType();
org.openecard.ws.chipgateway.ConnectionHandleType conHandle;
conHandle = new org.openecard.ws.chipgateway.ConnectionHandleType();
conHandle.setCardType(ECardConstants.UNKNOWN_CARD);
ti.setConnectionHandle(conHandle);
// add to handle list
result.add(ti);
}
}
} catch (WSHelper.WSException ex) {
LOG.warn("Failed to retrieve status info from IFD. Skipping unknown card entries.");
}
}
return result;
}
use of iso.std.iso_iec._24727.tech.schema.GetStatusResponse in project open-ecard by ecsec.
the class AndroidMarshallerTest method testConversionOfGetStatusResponse.
@Test
public void testConversionOfGetStatusResponse() throws Exception {
WSMarshaller m = new AndroidMarshaller();
Object o = m.unmarshal(m.str2doc(GET_STATUS_RESPONSE));
if (!(o instanceof GetStatusResponse)) {
throw new Exception("Object should be an instace of GetStatusResponse");
}
}
use of iso.std.iso_iec._24727.tech.schema.GetStatusResponse in project open-ecard by ecsec.
the class ExecuteRecognition method testExecute.
@Test(enabled = false)
public void testExecute() throws Exception {
Environment env = new ClientEnv();
IFD ifd = new org.openecard.ifd.scio.IFD();
env.setIFD(ifd);
byte[] ctx;
// establish context
EstablishContext eCtx = new EstablishContext();
EstablishContextResponse eCtxR = ifd.establishContext(eCtx);
ctx = eCtxR.getContextHandle();
// get status to see if we can execute the recognition
GetStatus status = new GetStatus();
status.setContextHandle(ctx);
GetStatusResponse statusR = ifd.getStatus(status);
if (statusR.getIFDStatus().size() > 0 && statusR.getIFDStatus().get(0).getSlotStatus().get(0).isCardAvailable()) {
CardRecognitionImpl recog = new CardRecognitionImpl(env);
IFDStatusType stat = statusR.getIFDStatus().get(0);
RecognitionInfo info = recog.recognizeCard(ctx, stat.getIFDName(), BigInteger.ZERO);
if (info == null) {
System.out.println("Card not recognized.");
} else {
System.out.println(info.getCardType());
}
}
}
Aggregations