use of org.openecard.ws.marshal.WSMarshaller in project open-ecard by ecsec.
the class PINTest method testModifyPin.
@Test(enabled = false)
public void testModifyPin() throws IFDException, WSMarshallerException, SAXException {
IFD ifd = new IFD();
ifd.setGUI(new SwingUserConsent(new SwingDialogWrapper()));
EstablishContext eCtx = new EstablishContext();
byte[] ctxHandle = ifd.establishContext(eCtx).getContextHandle();
ListIFDs listIFDs = new ListIFDs();
listIFDs.setContextHandle(ctxHandle);
String ifdName = ifd.listIFDs(listIFDs).getIFDName().get(0);
Connect connect = new Connect();
connect.setContextHandle(ctxHandle);
connect.setIFDName(ifdName);
connect.setSlot(BigInteger.ZERO);
byte[] slotHandle = ifd.connect(connect).getSlotHandle();
// prepare pace call
String xmlCall = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<iso:EstablishChannel xmlns:iso=\"urn:iso:std:iso-iec:24727:tech:schema\">\n" + " <iso:SlotHandle>" + ByteUtils.toHexString(slotHandle) + "</iso:SlotHandle>\n" + " <iso:AuthenticationProtocolData Protocol=\"urn:oid:0.4.0.127.0.7.2.2.4\">\n" + " <iso:PinID>03</iso:PinID>\n" + " </iso:AuthenticationProtocolData>\n" + "</iso:EstablishChannel>";
WSMarshaller m = WSMarshallerFactory.createInstance();
EstablishChannel eCh = (EstablishChannel) m.unmarshal(m.str2doc(xmlCall));
// send pace call
EstablishChannelResponse eChR = ifd.establishChannel(eCh);
assertEquals(eChR.getResult().getResultMajor(), ECardConstants.Major.OK);
PasswordAttributesType pwdAttr = create(true, ASCII_NUMERIC, 6, 6, 6);
pwdAttr.setPadChar(new byte[] { (byte) 0x3F });
PCSCPinModify ctrlStruct = new PCSCPinModify(pwdAttr, StringUtils.toByteArray("002C0203"));
byte[] structData = ctrlStruct.toBytes();
String pinStr = "00 2C 02 03 06 3F3F3F3F3F3F";
String ctrlStr = "15 05 82 06 00 00 00 0606 01 02 02 0407 00 01 02 000000 0B000000";
// This is the command the 'AusweisApp' sends
// String ausweisApp = "150582080000000606010202090400010200000005000000002C020300";
byte[] referenceData = StringUtils.toByteArray(ctrlStr + pinStr, true);
assertEquals(referenceData, structData);
ControlIFD controlIFD = new ControlIFD();
controlIFD.setCommand(ByteUtils.concatenate((byte) PCSCFeatures.MODIFY_PIN_DIRECT, structData));
controlIFD.setSlotHandle(slotHandle);
ControlIFDResponse response = ifd.controlIFD(controlIFD);
}
use of org.openecard.ws.marshal.WSMarshaller in project open-ecard by ecsec.
the class PINTest method executePACE_PIN.
@Test(enabled = false)
public void executePACE_PIN() throws UnsupportedDataTypeException, JAXBException, SAXException, WSMarshallerException {
IFD ifd = new IFD();
ifd.setGUI(new SwingUserConsent(new SwingDialogWrapper()));
EstablishContext eCtx = new EstablishContext();
byte[] ctxHandle = ifd.establishContext(eCtx).getContextHandle();
ListIFDs listIFDs = new ListIFDs();
listIFDs.setContextHandle(ctxHandle);
String ifdName = ifd.listIFDs(listIFDs).getIFDName().get(0);
Connect connect = new Connect();
connect.setContextHandle(ctxHandle);
connect.setIFDName(ifdName);
connect.setSlot(BigInteger.ZERO);
byte[] slotHandle = ifd.connect(connect).getSlotHandle();
// prepare pace call
String xmlCall = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<iso:EstablishChannel xmlns:iso=\"urn:iso:std:iso-iec:24727:tech:schema\">\n" + " <iso:SlotHandle>" + ByteUtils.toHexString(slotHandle) + "</iso:SlotHandle>\n" + " <iso:AuthenticationProtocolData Protocol=\"urn:oid:0.4.0.127.0.7.2.2.4\">\n" + " <iso:PinID>03</iso:PinID>\n" + " </iso:AuthenticationProtocolData>\n" + "</iso:EstablishChannel>";
WSMarshaller m = WSMarshallerFactory.createInstance();
EstablishChannel eCh = (EstablishChannel) m.unmarshal(m.str2doc(xmlCall));
// send pace call
EstablishChannelResponse eChR = ifd.establishChannel(eCh);
}
use of org.openecard.ws.marshal.WSMarshaller in project open-ecard by ecsec.
the class AndroidMarshallerTest method testConversionOfResult.
@Test
public void testConversionOfResult() throws Exception {
Result r = new Result();
r.setResultMajor("major");
r.setResultMinor("minor");
InternationalStringType internationalStringType = new InternationalStringType();
internationalStringType.setLang("lang");
internationalStringType.setValue("value");
r.setResultMessage(internationalStringType);
WSMarshaller m = new AndroidMarshaller();
Document d = m.marshal(r);
String s = m.doc2str(d);
LOG.debug(s);
}
use of org.openecard.ws.marshal.WSMarshaller in project open-ecard by ecsec.
the class AndroidMarshallerTest method testConversionOfWait.
@Test
public void testConversionOfWait() throws Exception {
WSMarshaller m = new AndroidMarshaller();
Wait w = new Wait();
w.setContextHandle(new byte[] { 0x0, 0x1, 0x2 });
w.setTimeOut(new BigInteger("123"));
ChannelHandleType channelHandleType = new ChannelHandleType();
channelHandleType.setBinding("binding");
channelHandleType.setProtocolTerminationPoint("protocolterminatiopoint");
channelHandleType.setSessionIdentifier("sessionidentifier");
PathSecurityType pathSecurityType = new PathSecurityType();
pathSecurityType.setParameters("omg");
pathSecurityType.setProtocol("protocol");
channelHandleType.setPathSecurity(pathSecurityType);
w.setCallback(channelHandleType);
Document d = m.marshal(w);
String s = m.doc2str(d);
LOG.debug(s);
}
use of org.openecard.ws.marshal.WSMarshaller in project open-ecard by ecsec.
the class AndroidMarshallerTest method testConversionOfGetStatus.
@Test
public void testConversionOfGetStatus() throws Exception {
WSMarshaller m = new AndroidMarshaller();
GetStatus getStatus = new GetStatus();
getStatus.setIFDName("ifdName");
getStatus.setContextHandle(new byte[] { 0x0, 0x1, 0x2 });
Document d = m.marshal(getStatus);
String s = m.doc2str(d);
LOG.debug(s);
}
Aggregations