1 /* 2 * --------- 3 * |.##> <##.| Open Smart Card Development Platform (www.openscdp.org) 4 * |# #| 5 * |# #| Copyright (c) 1999-2006 CardContact Software & System Consulting 6 * |'##> <##'| Andreas Schwier, 32429 Minden, Germany (www.cardcontact.de) 7 * --------- 8 * 9 * This file is part of OpenSCDP. 10 * 11 * OpenSCDP is free software; you can redistribute it and/or modify 12 * it under the terms of the GNU General Public License version 2 as 13 * published by the Free Software Foundation. 14 * 15 * OpenSCDP is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU General Public License for more details. 19 * 20 * You should have received a copy of the GNU General Public License 21 * along with OpenSCDP; if not, write to the Free Software 22 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 23 */ 24 25 // 26 // Example how to use Java classes from within scripts 27 // Display a text on a CT-API compliant card terminal with a display 28 // 29 30 // 1. Get CardTerminalRegistry from OpenCard Framework 31 32 var ctr = Packages.opencard.core.terminal.CardTerminalRegistry.getRegistry(); 33 34 // 2. Get CardTerminal instance for a given name 35 36 if (_scsh3.reader) { 37 var ct = ctr.cardTerminalForName(_scsh3.reader); 38 } else { 39 // Use default if no reader is configured 40 var ct = ctr.cardTerminalForName("MCT"); 41 } 42 43 // 3. Prepare message to display (TLV object with tag '50') 44 45 var text = "Hello World"; 46 var displayObject = new ASN1(0x50, new ByteString(text, ASCII)); 47 48 // 4. Create display APDU (see MKT specification, part 4, chapter 6.2.3 49 // CLA = 20, INS = 17, P1 = 40 (Display), P2 = 00 50 51 var apdu = new ByteBuffer("20174000", HEX); 52 apdu.append(displayObject.size); 53 apdu.append(displayObject.getBytes()); 54 55 // 5. Send to card reader 56 57 var response = ct.sendTerminalCommand(apdu.toByteString()); 58 59 print(response); 60