Book description
Java Card™ technology provides a secure, vendor-independent, ubiquitous Java™ platform for smart cards and other memory constrained devices. It opens the smart card marketplace to third-party application development and enables programmers to develop smart card applications for a wide variety of vendors' products.
This book is the comprehensive guide to developing applications with Java Card technology. It introduces you to the Java Card platform and features detailed discussions of programming concepts. It also provides a step-by-step Java Card applet development guide to get you up and running.
Specific topics covered include:
Smart card basics
Java Card virtual machine
Persistent and transient objects
Atomicity and transactions
Handling APDUs
Applet firewall and object sharing
Java Card platform security
A step-by-step applet development guide
Applet optimization guidelines
A comprehensive reference to Java Card APIs
With Java Card technology, smart card programming will finally enter the mainstream of application development. This book provides the authoritative and practical information you need to enter this rapidly growing arena.
0201703297B04062001
Table of contents
- Copyright
- Foreword
- Preface
- 1. Introduction
-
2. Java Card Technology
-
3. Java Card Technology Overview
- 3.1. Architecture Overview
- 3.2. Java Card Language Subset
- 3.3. Java Card Virtual Machine
- 3.4. Java Card Installer and Off-Card Installation Program
- 3.5. Java Card Runtime Environment
- 3.6. Java Card APIs
- 3.7. Java Card Applets
- 3.8. Package and Applet Naming Convention
- 3.9. Applet Development Process
- 3.10. Applet Installation
- 4. Java Card Objects
- 5. Atomicity and Transactions
- 6. Java Card Exceptions and Exception Handling
- 7. Java Card Applets
-
8. Working with APDUs
- 8.1. APDU Class
- 8.2. Interface ISO7816
- 8.3. Working with APDUs in Applets
- 8.4. Protocol-Specific APDU Processing
- 8.5. Summary
-
9. Applet Firewall and Object Sharing
-
9.1. Applet Firewall
- 9.1.1. Contexts
- 9.1.2. Object Ownership
- 9.1.3. Object Access
-
9.2. Object Sharing across Contexts
- 9.2.1. Context Switch
- 9.2.2. JCRE Privileges
- 9.2.3. JCRE Entry Point Objects
- 9.2.4. Global Arrays
-
9.2.5. Object Shareable Interface Mechanism
- 9.2.5.1. Shareable Interface
- 9.2.5.2. Shareable Interface Object
- 9.2.5.3. Thoughts behind the Shareable Interface Mechanism
- 9.2.5.4. An Example of Object Sharing between Applets
- 9.2.5.5. Create a Shareable Interface Object
- 9.2.5.6. Request a Shareable Interface Object
- 9.2.5.7. Use a Shareable Interface Object
- 9.2.5.8. Context Switches during Object Sharing
- 9.2.5.9. Parameter Types and Return Types in Shareable Interface Methods
- 9.2.5.10. Authenticate a Client Applet
- 9.2.5.11. getPreviousContextAID Method
- 9.2.5.12. Summary
-
9.1. Applet Firewall
- 10. Programming Cryptography
- 11. Java Card Platform Security
-
3. Java Card Technology Overview
-
3. Programming Guide and Tips
-
12. Step-by-Step Applet Development Guide
- 12.1. Design the Applet
- 12.2. Construct the Applet Code
- 12.3. What's the Next Step?
-
13. Applet Optimization
- 13.1. Optimizing an Applet's Overall Design
- 13.2. On-Card Execution Time
- 13.3. Method Invocations
- 13.4. Creating Objects in Applets
- 13.5. Reusing Objects
- 13.6. Eliminating Redundant Code
- 13.7. Accessing Arrays
- 13.8. The switch Statement versus the if-else Statement
- 13.9. Arithmetic Statements
- 13.10. Optimizing Variables in Applets
- 14. Working with int Data Type
-
12. Step-by-Step Applet Development Guide
-
4. Appendices
- A. Java Card Language Subset
-
B. Java Card 2.1 Application Programming Interface
- package java.lang
- java.lang ArithmeticException
- java.lang ArrayIndexOutOfBoundsException
- java.lang ArrayStoreException
- java.lang ClassCastException
- java.lang Exception
- java.lang IndexOutOfBoundsException
- java.lang NegativeArraySizeException
- java.lang NullPointerException
- java.lang Object
- java.lang RuntimeException
- java.lang SecurityException
- java.lang Throwable
- package javacard.framework
- javacard.framework AID
- javacard.framework APDU
- javacard.framework APDUException
- javacard.framework Applet
- javacard.framework CardException
- javacard.framework CardRuntimeException
-
javacard.framework ISO7816
- Syntax
- Description
-
Fields
- CLA_ISO7816
- INS_EXTERNAL_AUTHENTICATE
- INS_SELECT
- OFFSET_CDATA
- OFFSET_CLA
- OFFSET_INS
- OFFSET_LC
- OFFSET_P1
- OFFSET_P2
- SW_APPLET_SELECT_FAILED
- SW_BYTES_REMAINING_00
- SW_CLA_NOT_SUPPORTED
- SW_COMMAND_NOT_ALLOWED
- SW_CONDITIONS_NOT_SATISFIED
- SW_CORRECT_LENGTH_00
- SW_DATA_INVALID
- SW_FILE_FULL
- SW_FILE_INVALID
- SW_FILE_NOT_FOUND
- SW_FUNC_NOT_SUPPORTED
- SW_INCORRECT_P1P2
- SW_INS_NOT_SUPPORTED
- SW_NO_ERROR
- SW_RECORD_NOT_FOUND
- SW_SECURITY_STATUS_NOT_SATISFIED
- SW_UNKNOWN
- SW_WRONG_DATA
- SW_WRONG_LENGTH
- SW_WRONG_P1P2
- javacard.framework ISOException
- javacard.framework JCSystem
- javacard.framework OwnerPIN
- javacard.framework PIN
- javacard.framework PINException
- javacard.framework Shareable
- javacard.framework SystemException
- javacard.framework TransactionException
- javacard.framework UserException
- javacard.framework Util
- package javacard.security
- javacard.security CryptoException
- javacard.security DESKey
- javacard.security DSAKey
- javacard.security DSAPrivateKey
- javacard.security DSAPublicKey
- javacard.security Key
-
javacard.security KeyBuilder
- Syntax
- Description
-
Fields
- LENGTH_DES
- LENGTH_DES3_2KEY
- LENGTH_DES3_3KEY
- LENGTH_DSA_1024
- LENGTH_DSA_512
- LENGTH_DSA_768
- LENGTH_RSA_1024
- LENGTH_RSA_2048
- LENGTH_RSA_512
- LENGTH_RSA_768
- TYPE_DES
- TYPE_DES_TRANSIENT_DESELECT
- TYPE_DES_TRANSIENT_RESET
- TYPE_DSA_PRIVATE
- TYPE_DSA_PUBLIC
- TYPE_RSA_CRT_PRIVATE
- TYPE_RSA_PRIVATE
- TYPE_RSA_PUBLIC
- Methods
- javacard.security MessageDigest
- javacard.security PrivateKey
- javacard.security PublicKey
- javacard.security RandomData
- javacard.security RSAPrivateCrtKey
- javacard.security RSAPrivateKey
- javacard.security RSAPublicKey
- javacard.security SecretKey
-
javacard.security Signature
- Syntax
- Description
-
Fields
- ALG_DES_MAC4_ISO9797_M1
- ALG_DES_MAC4_ISO9797_M2
- ALG_DES_MAC4_NOPAD
- ALG_DES_MAC4_PKCS5
- ALG_DES_MAC8_ISO9797_M1
- ALG_DES_MAC8_ISO9797_M2
- ALG_DES_MAC8_NOPAD
- ALG_DES_MAC8_PKCS5
- ALG_DSA_SHA
- ALG_RSA_MD5_PKCS1
- ALG_RSA_MD5_RFC2409
- ALG_RSA_RIPEMD160_ISO9796
- ALG_RSA_RIPEMD160_PKCS1
- ALG_RSA_SHA_ISO9796
- ALG_RSA_SHA_PKCS1
- ALG_RSA_SHA_RFC2409
- MODE_SIGN
- MODE_VERIFY
- Constructors
- Methods
- package javacardx.crypto
- javacardx.crypto Cipher
- javacardx.crypto KeyEncryption
- Glossary
- Bibliography
Product information
- Title: Java Card™ Technology for Smart Cards
- Author(s):
- Release date: June 2000
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780201703290
You might also like
book
Beginning NFC
Jump into the world of Near Field Communications (NFC), the fast-growing technology that lets devices in …
book
Implementing Service Level Objectives
Although service-level objectives (SLOs) continue to grow in importance, there’s a distinct lack of information about …
book
The Art of Communication
Bring nuance, depth, and meaning to every conversation you have The Art of Communication is for …
book
Spring Start Here
Spring Start Here teaches Java developers how to build applications using Spring framework. Informative graphics, relevant …