Advertisement

Smart Card Reader and Mobile APIs

  • Damien Sauveron
  • Raja Naeem Akram
  • Konstantinos Markantonakis
Chapter

Abstract

The aim of this chapter is to describe the main middlewares and APIs used to manage and access smart card readers and smart cards, along with the mobile phone APIs to access smart cards, SIM card and Secure Elements. It is illustrated by samples of code that the reader of this book will be able to reuse to quickly develop his/her first applications to communicate with smart cards.

Keywords

Smart card reader APIs Mobile phone APIs PC/SC Wrappers JSR 268 

References

  1. 1.
    USB Implementers Forum. More Information Available via http://www.usb.org/about, Cited 14 Apr 2016.
  2. 2.
    OpenCard Framework. More Information Available via https://sourceforge.net/projects/opencard/, Cited 14 Apr 2016.
  3. 3.
    Uwe Hansmann, Martin S. Nicklous, Thomas Schck, and Frank Seliger. Smart Card Application Development Using Java. Springer, 2000.Google Scholar
  4. 4.
    Vesna Hassler, Martin Manninger, Mikhail Gordeev, and Christoph Muller. Java Card for E-Payment Applications. Artech House Publishers, 2001.Google Scholar
  5. 5.
    Java Smartcard I/O API. More Information Available via https://docs.oracle.com/javase/8/docs/jre/api/security/smartcardio/spec/javax/smartcardio/package-summary.html, Cited 14 Apr 2016.
  6. 6.
    Frank Seliger. The OpenCard Framework and PC/SC – Two New Industry Initiatives for Smart Cards, 1999. More Information Available via http://www.scardsoft.com/documents/OCF/OCF_PCSC.pdf, Cited 14 Apr 2016.
  7. 7.
    javax.smartcardio provider with less PC/SC restrictions. More Information Available via https://github.com/intarsys/smartcard-io, Cited 14 Apr 2016.
  8. 8.
    Project SCUBA. More Information Available via http://scuba.sourceforge.net/, Cited 14 Apr 2016.
  9. 9.
    A re-implementation of the javax.smartcardio API. More Information Available via https://github.com/jnasmartcardio/jnasmartcardio, Cited 14 Apr 2016.
  10. 10.
    A Java applet for smartcard-aware web pages. More Information Available via http://www.springcard.com/en/download/find/file/pmd0160, Cited 14 Apr 2016.
  11. 11.
    PC/SC Workgroup. More Information Available via http://www.pcscworkgroup.com/, Cited 14 Apr 2016.
  12. 12.
    PC/SC Workgroup. PC/SC Workgroup Specifications 1.0. More Information Available via http://www.pcscworkgroup.com/specifications/specdownloadV1.php, Cited 14 Apr 2016.
  13. 13.
    PC/SC Workgroup. PC/SC Workgroup Specifications 2.01.14. November 2013. More Information Available via http://www.pcscworkgroup.com/specifications/specdownload.php, Cited 14 Apr 2016.
  14. 14.
    pcsc-lite home page. More Information Available via http://alioth.debian.org/projects/pcsclite/, Cited 14 Apr 2016.
  15. 15.
    Microsoft. SCard API. More Information Available via https://msdn.microsoft.com/en-us/library/aa380149(v=vs.85).aspx, Cited 14 Apr 2016.
  16. 16.
    WHQL Testing - overview. More Information Available via http://www.microsoft.com/whdc/whql/, Cited 14 Apr 2016.
  17. 17.
    USB Implementers Forum. Universal Serial Bus Device Class Specification for USB Chip/Smart Card Interface Devices version 1.0, March 2001. More Information Available via http://www.usb.org/developers/docs/devclass_docs/DWG_Smart-Card_USB-ICC_ICCD_rev10.pdf, Cited 14 Apr 2016.
  18. 18.
    USB Implementers Forum. Universal Serial Bus Device Class Specification for USB Chip/Smart Card Interface Devices version 1.1, April 2005. More Information Available via http://www.usb.org/developers/docs/devclass_docs/DWG_Smart-Card_CCID_Rev110.pdf, Cited 14 Apr 2016.
  19. 19.
    Microsoft. CryptoAPI. More Information Available via https://msdn.microsoft.com/en-us/library/aa382404(v=vs.85).aspx, Cited 14 Apr 2016.
  20. 20.
    David Corcoran. M.U.S.C.L.E: porting the PC/SC architecture to Linux. Gemplus Developers Conference 99, June 1999.Google Scholar
  21. 21.
    MUSCLE home page. More Information Available via http://pcsclite.alioth.debian.org/musclecard.com/software.html, Cited 14 Apr 2016.
  22. 22.
    pcsc-lite SCard API. More Information Available via http://pcsclite.alioth.debian.org/pcsc-lite/, Cited 14 Apr 2016.
  23. 23.
    pcsc-lite Detailed Description. More Information Available via http://pcsclite.alioth.debian.org/api/group__API.html#details, Cited 14 Apr 2016.
  24. 24.
    Generic CCID IFD Handler home page. More Information Available via http://pcsclite.alioth.debian.org/ccid.html, Cited 14 Apr 2016.
  25. 25.
    PC/SC APDU inspection and manipulation tool. More Information Available via http://www.fi.muni.cz/~xsvenda/apduinspect.html, Cited 14 Apr 2016.
  26. 26.
    PCSC API spy, third try. More Information Available via http://ludovicrousseau.blogspot.fr/2011/11/pcsc-api-spy-third-try.html, Cited 14 Apr 2016.
  27. 27.
    PCSC API spy, on Mac OS X. More Information Available via http://ludovicrousseau.blogspot.fr/2014/02/pcsc-api-spy-on-mac-os-x.html, Cited 14 Apr 2016.
  28. 28.
    Perl Wrappers for PC/SC. More Information Available via http://ludovic.rousseau.free.fr/softwares/pcsc-perl/, Cited 14 Apr 2016.
  29. 29.
    Python Wrappers for PC/SC. More Information Available via http://pyscard.sourceforge.net/, Cited 14 Apr 2016.
  30. 30.
    GNU Prolog Wrappers for PC/SC. More Information Available via http://gprolog.cvs.sourceforge.net/gprolog/contribs/gplpcsc/, Cited 14 Apr 2016.
  31. 31.
    Ruby Wrappers for PC/SC. More Information Available via https://github.com/costan/smartcard, Cited 14 Apr 2016.
  32. 32.
    Java Wrappers for PC/SC. More Information Available via http://damien.sauveron.fr/software-developments/tools/, Cited 14 Apr 2016.
  33. 33.
    PC/SC sample in different languages. More Information Available via http://ludovicrousseau.blogspot.fr/2010/04/pcsc-sample-in-different-languages.html, Cited 14 Apr 2016.
  34. 34.
    Design Issues for Foreign Function Interfaces. A survey of existing native interfaces for several languages and some suggestions. More Information Available via http://autocad.xarch.at/lisp/ffis.html, Cited 14 Apr 2016.
  35. 35.
    OCF To PC/SC Shim. More Information Available via http://damien.sauveron.fr/software-developments/tools/, Cited 14 Apr 2016.
  36. 36.
    Welcome to the Virtual Smart Card Architecture documentation! More Information Available via http://frankmorgner.github.io/vsmartcard/, Cited 14 Apr 2016.
  37. 37.
    PC/SC Relay. More Information Available via https://frankmorgner.github.io/vsmartcard/pcsc-relay/README.html#pcsc-relay, Cited 14 Apr 2016.
  38. 38.
    Nikolay Elenkov. Android Security Internals. An In-Depth Guide to Androids Security Architecture. No Starch Press. 2015. ISBN: 978-1-59327-581-5.Google Scholar
  39. 39.
    Nikolay Elenkov. Accessing the embedded secure element in Android 4.x. More Information Available via http://nelenkov.blogspot.fr/2012/08/accessing-embedded-secure-element-in.html, Cited 14 Apr 2016.
  40. 40.
    Nikolay Elenkov. Using the SIM card as a secure element in Android. More Information Available via http://nelenkov.blogspot.fr/2013/09/using-sim-card-as-secure-element.html, Cited 14 Apr 2016.
  41. 41.
    SIMAlliance Open Mobile API Specification V3.2. More Information Available via http://simalliance.org/wp-content/uploads/2015/03/SIMalliance_OpenMobileAPI_v3_2.pdf, Cited 14 Apr 2016.
  42. 42.
    SEEK for Android. More Information Available via http://seek-for-android.github.io/, Cited 14 Apr 2016.
  43. 43.
    Michael Hölzl and Michael Roland. SEEK adaptations in RIL for Galaxy S3. More Information Available via https://usmile.at/blog/seek-galaxys3, Cited 14 Apr 2016.
  44. 44.
    SEEK – Emulator extension. More Information Available via https://github.com/seek-for-android/pool/wiki/EmulatorExtension, Cited 14 Apr 2016.
  45. 45.
    SIMAlliance Open Mobile API Specification V3.0. More Information Available via http://simalliance.org/wp-content/uploads/2015/03/SIMalliance_OpenMobileAPI3_0_release1_FINAL3.pdf, Cited 14 Apr 2016.
  46. 46.
    Oracle. Security and Trust Services API for J2ME (SATSA); JSR 177, 2016. More Information Available via http://www.oracle.com/technetwork/java/satsa-136426.html, Cited 14 Apr 2016.
  47. 47.
    Keith Mayes, Konstantinos Markantonakis. Secure Smart Embedded Devices, Platforms and Applications. Springer. 2014. ISBN 978-1-4614-7915-4.Google Scholar
  48. 48.
  49. 49.
    bR301 Android Samples. More Information Available via https://github.com/FeitianSmartcardReader/bR301_Android/tree/master/Sample%20code, Cited 14 Apr 2016.
  50. 50.
    bR301 & iR301 iOS API. More Information Available via https://github.com/FeitianSmartcardReader/bR301_iOS_SDK_RELEASE, Cited 14 Apr 2016.
  51. 51.
    bR301 & iR301 iOS Samples. More Information Available via https://github.com/FeitianSmartcardReader/bR301_iOS_SDK_RELEASE/tree/master/Sample, Cited 14 Apr 2016.
  52. 52.
  53. 53.
  54. 54.
  55. 55.

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Damien Sauveron
    • 1
    • 2
  • Raja Naeem Akram
    • 3
  • Konstantinos Markantonakis
    • 3
  1. 1.XLIM UMR CNRS 7252Université de LimogesLimogesFrance
  2. 2.LaBRI UMR CNRS 5800Université de BordeauxBordeauxFrance
  3. 3.Smart Card Centre, Information Security GroupRoyal Holloway, University of LondonEghamUK

Personalised recommendations