Java Card¿ Technology for Smart Cards: Architecture and Programmer's Guide
Audience for This BookJava Card™ technology combines a subset of the Java programming language with a runtime environment optimized for smart cards and other memory-constrained devices. This book is intended for a wide technical audience with different needs of understanding Java Card technology.First and foremost, it is written for Java Card applet developers. You will find a smart card tutorial, in-depth discussions on various Java Card features, helpful programming tips for applet development, and the reference to the Java Card APIs.Second, this book is supplementary reading for Java Card platform implementors. It provides further discussion of many topics in the Java Card specifications and includes code examples to clarify those topics.Third, this book is useful for technical managers or anyone who wants to gain an overall understanding of Java Card technology. In particular, the first three chapters are introductions to orient you within the technology from both a technical and marketing point of view.Throughout this book, I assume that readers are familiar with the fundamentals of the Java language. For those who want to learn more about the Java language, the book by Arnold and Gosling is a good resource.  Organization of This BookThis book is written in a bottom-up fashion. Each chapter was a step to the next one, so it is best if you read the chapters in order.   Part 1: IntroductionChapter 1 introduces smart cards and Java Card technology—history, benefits, and applications.   Chapter 2 discusses smart card basics as a foundation for exploring the rest of the book.  Part 2: Java Card TechnologyChapter 3 gives an overview of Java Card technology—the system architecture and its components.   Chapter 4 discusses the properties and the behavior of persistent and transient objects in the Java Card platform and how to create and use those objects.   Chapter 5 explains what atomicity means in the Java Card platform and how to develop an applet using transactions to protect data integrity.   Chapter 6 discusses exceptions in the Java Card platform and how applets throw and handle exceptions.   Chapter 7 explains how applets run within the JCRE and demonstrates the techniques of applet writing.Chapter 8 describes the techniques of handling APDUs in an applet.Chapter 9 explains the behavior of objects, exceptions, and applets under the control of the applet firewall and discusses how applets can safely share data using object sharing mechanisms.   Chapter 10 first introduces many important cryptographic concepts and algorithms. It then outlines the cryptographic APIs in the Java Card platform and demonstrates how to use these APIs through code examples.   Chapter 11 describes the security features in the Java Card platform and discusses how these security features are enforced through a variety of mechanisms. Along with the discussion, this chapter summarizes the topics covered in Part 2.   Part 3: Programming Guide and TipsChapter 12 walks you through a step-by-step process of creating a simple electronic wallet applet.Chapter 13 provides a number of recommendations for optimizing applets. In many cases, a discussion is provided with the recommendation to help you understand various design trade-offs.   Chapter 14 discusses issues related to using the int data type when writing Java Card applets.  Part 4: AppendicesAppendix A describes the subset of the Java programming language that is supported in the Java Card platform.   Appendix B provides a comprehensive reference to the Java Card 2.1 APIs.  The Version Covered in This BookThis book is based on Java Card version 2.1, the latest release when the book was written. At the meantime, the next version 2.1.1 is underway. Version 2.1.1 will include minor enhancement updates to version 2.1. The contents and techniques covered in the book will continue to be relevant to future Java Card releases, and new things will be incorporated in future editions of this book.0201703297P04062001