Skip to main content

Formal Specification and Verification of Java Card’s Application Identifier Class

  • Conference paper
  • First Online:
Java on Smart Cards:Programming and Security (JavaCard 2000)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2041))

Included in the following conference series:

Abstract

This paper discusses a verification in PVS of the AID (Application Identifier) class from the JavaCard API. The properties that are verified are formulated in the interface specification language JML. This language is also used to express the properties that are assumed about the native methods from the Util class that are used in the AID class. These properties include invariants for classes and behaviour specifications for methods; the latter give pre- and post-conditions describing the functional behaviour, and also specify when exceptions may be thrown.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. JavaCard API 2.1. http://www.java.sun.com/products/javacard/htmldoc/.

  2. J. van den Berg, M. Huisman, B. Jacobs, and E. Poll. A type-theoretic memory model for verification of sequential Java programs. In D. Bert, C. Choppy, and P. Mosses, editors, Recent Trends in Algebraic Development Techniques, number 1827 in Lect. Notes Comp. Sci., pages 1–21. Springer, Berlin, 2000.

    Google Scholar 

  3. J. van den Berg and B. Jacobs. The LOOP compiler for Java and JML. Techn. Rep. CSI-R0019, Comput. Sci. Inst., Univ. of Nijmegen. To appear at TACAS’01., 2000.

    Google Scholar 

  4. J. van den Berg, B. Jacobs, and E. Poll. Formal specification and verification of JavaCard’s Application Identifier Class. Techn. Rep. CSI-R0014, Comput. Sci. Inst., Univ. of Nijmegen. Appeared in: Proceedings of the JavaCard Workshop, Cannes. INRIA Techn. Rep. Updated version will appear in: I. Attali and Th. Jensen, editors, Proceedings of the Java Card 2000 Workshop (Springer LNCS 2001), Sept. 1999.

    Google Scholar 

  5. A. Bhorkar. A run-time assertion checker for Java using JML. Techn. Rep. 00-08, Dep. of Comp. Science, Iowa State Univ. (http://www.cs.iastate.edu/~leavens/JML.html), 2000.

  6. Z. Chen. Java Card Technologyfor Smart Cards. The Java Series. Addison-Wesley, 2000.

    Google Scholar 

  7. D. Detlefs, K. R. M. Leino, and G. Nelson. Wrestling with rep exposure. Technical report, Compaq Systems Research Center, Palo Alto, 1998. Research Report 156.

    Google Scholar 

  8. M. Huisman, B. Jacobs, and J. van den Berg. A case study in class library verification: Java’s Vector class. Techn. Rep. CSI-R0007, Comput. Sci. Inst., Univ. of Nijmegen. To appear in Software Tools for Technology Transfer, 2001.

    Google Scholar 

  9. K. Huizing, R. Kuiper, and SOOP. Verification of object oriented programs using class invariants. In T. Maibaum, editor, Fundamental Approaches to Software Engineering, number 1783 in Lect. Notes Comp. Sci., pages 208–221. Springer, Berlin, 2000.

    Chapter  Google Scholar 

  10. B. Jacobs and E. Poll. A logic for the Java Modeling Language JML. Techn. Rep. CSI-R0018, Comput. Sci. Inst., Univ. of Nijmegen. To appear at FASE’01., 2000.

    Google Scholar 

  11. B. Jacobs, J. van den Berg, M. Huisman, M. van Berkum, U. Hensel, and H. Tews. Reasoning about classes in Java (preliminary report). In Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), pages 329–340. ACM Press, 1998.

    Google Scholar 

  12. G.T. Leavens, A.L. Baker, and C. Ruby. JML: A notation for detailed design. In H. Kilov and B. Rumpe, editors, Behavioral Specifications of Business and Systems, pages 175–188. Kluwer, 1999.

    Google Scholar 

  13. G.T. Leavens, A.L. Baker, and C. Ruby. Preliminary design of JML: A behavioral interface specification language for Java. Techn. Rep. 98-06, Dep. of Comp. Sci., Iowa State Univ. (http://www.cs.iastate.edu/~leavens/JML.html), 1999.

  14. S. Owre, J.M. Rushby, N. Shankar, and F. von Henke. Formal verification for fault-tolerant architectures: Prolegomena to the design of PVS. IEEE Trans. on Softw. Eng., 21(2):107–125, 1995.

    Article  Google Scholar 

  15. A. Poetzsch-Heffter and P. Müller. A programming logic for sequential Java. In S.D. Swierstra, editor, Programming Languages and Systems, number 1576 in Lect. Notes Comp. Sci., pages 162–176. Springer, Berlin, 1999.

    Chapter  Google Scholar 

  16. E. Poll, J. van den Berg, and B. Jacobs. Specification of the JavaCard API in JML. In J. Domingo-Ferrer, D. Chan, and A. Watson, editors, Smart Card Research and Advanced Application, pages 135–154. Kluwer Acad. Publ., 2000.

    Google Scholar 

  17. E. Poll, J. van den Berg, and B. Jacobs. Formal specification of the JavaCard API in JML: the APDU class. Comp. Networks Mag., 2001. To appear.

    Google Scholar 

  18. Extended static checker ESC/Java. Compaq System Research Center. http://www.research.digital.com/SRC/esc/Esc.html.

  19. C. Szyperski. Component Software. Addison-Wesley, 1998.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

van den Berg, J., Jacobs, B., Poll, E. (2001). Formal Specification and Verification of Java Card’s Application Identifier Class. In: Attali, I., Jensen, T. (eds) Java on Smart Cards:Programming and Security. JavaCard 2000. Lecture Notes in Computer Science, vol 2041. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45165-X_11

Download citation

  • DOI: https://doi.org/10.1007/3-540-45165-X_11

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42167-2

  • Online ISBN: 978-3-540-45165-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics