====== Java Card Runtime Environment Specification ====== [[javacard:jcre:Preface]] [[javacard:jcre:1. Introduction]] [[javacard:jcre:2. Lifetime of the Java Card Virtual Machine]] [[javacard:jcre:3. Java Card Applet Lifetime]] [[javacard:jcre:3.1 install Method]] [[javacard:jcre:3.2 select Method]] [[javacard:jcre:3.3 process Method]] [[javacard:jcre:3.4 deselect Method(s)]] [[javacard:jcre:3.5 uninstall Method]] [[javacard:jcre:3.6 Power Loss and Reset]] [[javacard:jcre:3.6.1 Concurrent Operations Over Multiple Interfaces]] [[javacard:jcre:4. Logical Channels and Applet Selection]] [[javacard:jcre:4.1 Default Applets]] [[javacard:jcre:4.1.1 Card Reset Behavior]] [[javacard:jcre:4.1.2 Proximity Card (PICC) Activation Behavior]] [[javacard:jcre:4.1.3 Default Applet Selection Behavior on Opening a New Channel]] [[javacard:jcre:4.2 Multiselectable Applets]] [[javacard:jcre:4.3 Forwarding APDU Commands To a Logical Channel]] [[javacard:jcre:4.4 Opening and Closing Logical Channels]] [[javacard:jcre:4.4.1 MANAGE CHANNEL Command Processing]] [[javacard:jcre:4.5 Applet Selection]] [[javacard:jcre:4.5.1 Applet Selection with MANAGE CHANNEL OPEN]] [[javacard:jcre:4.5.2 Applet Selection with SELECT FILE]] [[javacard:jcre:4.6 Applet Deselection]] [[javacard:jcre:4.6.1 MANAGE CHANNEL CLOSE Command]] [[javacard:jcre:4.7 Other Command Processing]] [[javacard:jcre:5. Transient Objects]] [[javacard:jcre:5.1 Events That Clear Transient Objects]] [[javacard:jcre:6. Applet Isolation and Object Sharing]] [[javacard:jcre:6.1 Applet Firewall]] [[javacard:jcre:6.1.1 Firewall Protection]] [[javacard:jcre:6.1.2 Contexts and Context Switching]] [[javacard:jcre:6.1.2.1 Active Contexts in the VM]] [[javacard:jcre:6.1.2.2 Context Switching in the VM]] [[javacard:jcre:6.1.3 Object Ownership]] [[javacard:jcre:6.1.4 Object Access]] [[javacard:jcre:6.1.5 Transient Objects and Contexts]] [[javacard:jcre:6.1.6 Static Fields and Methods]] [[javacard:jcre:6.1.6.1 Optional Static Access Checks]] [[javacard:jcre:6.2 Object Access Across Contexts]] [[javacard:jcre:6.2.1 Java Card RE Entry Point Objects]] [[javacard:jcre:6.2.2 Global Arrays]] [[javacard:jcre:6.2.3 Java Card RE Privileges]] [[javacard:jcre:6.2.4 Shareable Interfaces]] [[javacard:jcre:6.2.4.1 Server Applet A Builds a Shareable Interface Object]] [[javacard:jcre:6.2.4.2 Client Applet B Obtains the Shareable Interface Object]] [[javacard:jcre:6.2.4.3 Client Applet B Requests Services from Applet A]] [[javacard:jcre:6.2.5 Determining the Previous Context]] [[javacard:jcre:6.2.5.1 Java Card RE Context]] [[javacard:jcre:6.2.6 Shareable Interface Details]] [[javacard:jcre:6.2.6.1 Java Card API Shareable Interface]] [[javacard:jcre:6.2.7 Obtaining Shareable Interface Objects]] [[javacard:jcre:6.2.7.1 Applet.getShareableInterfaceObject(AID, byte) Method]] [[javacard:jcre:6.2.7.2 JCSystem.getAppletShareableInterfaceObject Method]] [[javacard:jcre:6.2.8 Class and Object Access Behavior]] [[javacard:jcre:6.2.8.1 Accessing Static Class Fields]] [[javacard:jcre:6.2.8.2 Accessing Array Objects]] [[javacard:jcre:6.2.8.3 Accessing Class Instance Object Fields]] [[javacard:jcre:6.2.8.4 Accessing Class Instance Object Methods]] [[javacard:jcre:6.2.8.5 Accessing Standard Interface Methods]] [[javacard:jcre:6.2.8.6 Accessing Shareable Interface Methods]] [[javacard:jcre:6.2.8.7 Throwing Exception Objects]] [[javacard:jcre:6.2.8.8 Accessing Classes]] [[javacard:jcre:6.2.8.9 Accessing Standard Interfaces]] [[javacard:jcre:6.2.8.10 Accessing Shareable Interfaces]] [[javacard:jcre:6.2.8.11 Accessing Array Object Methods]] [[javacard:jcre:7. Transactions and Atomicity]] [[javacard:jcre:7.1 Atomicity]] [[javacard:jcre:7.2 Transactions]] [[javacard:jcre:7.3 Transaction Duration]] [[javacard:jcre:7.4 Nested Transactions]] [[javacard:jcre:7.5 Tear or Reset Transaction Failure]] [[javacard:jcre:7.6 Aborting a Transaction]] [[javacard:jcre:7.6.1 Programmatic Abortion]] [[javacard:jcre:7.6.2 Abortion by the Java Card RE]] [[javacard:jcre:7.6.3 Cleanup Responsibilities of the Java Card RE]] [[javacard:jcre:7.7 Transient Objects and Global Arrays]] [[javacard:jcre:7.8 Commit Capacity]] [[javacard:jcre:7.9 Context Switching]] [[javacard:jcre:8. Remote Method Invocation Service]] [[javacard:jcre:8.1 Java Card Platform RMI]] [[javacard:jcre:8.1.1 Remote Objects]] [[javacard:jcre:8.1.1.1 Parameters and Return Values]] [[javacard:jcre:8.1.1.2 Exceptions]] [[javacard:jcre:8.1.1.3 Functional Limitations]] [[javacard:jcre:8.2 RMI Messages]] [[javacard:jcre:8.2.1 Applet Selection]] [[javacard:jcre:8.2.2 Method Invocation]] [[javacard:jcre:8.3 Data Formats]] [[javacard:jcre:8.3.1 Remote Object Identifier]] [[javacard:jcre:8.3.2 Remote Object Reference Descriptor]] [[javacard:jcre:8.3.3 Method Identifier]] [[javacard:jcre:8.3.4 Parameter Encoding]] [[javacard:jcre:8.3.4.1 Primitive Data Type Parameter Encoding]] [[javacard:jcre:8.3.4.2 Array Parameter Encoding]] [[javacard:jcre:8.3.5 Return Value Encoding]] [[javacard:jcre:8.3.5.1 Normal Response Encoding]] [[javacard:jcre:8.3.5.2 Exception Response Encoding]] [[javacard:jcre:8.3.5.3 Error Response Encoding]] [[javacard:jcre:8.4 APDU Command Formats]] [[javacard:jcre:8.4.1 SELECT FILE Command]] [[javacard:jcre:8.4.2 INVOKE Command]] [[javacard:jcre:8.5 RMIService Class]] [[javacard:jcre:8.5.1 setInvokeInstructionByte Method]] [[javacard:jcre:8.5.2 processCommand Method]] [[javacard:jcre:9. API Topics]] [[javacard:jcre:9.1 Resource Use Within the API]] [[javacard:jcre:9.2 Exceptions Thrown by API Classes]] [[javacard:jcre:9.3 Transactions Within the API]] [[javacard:jcre:9.4 APDU Class]] [[javacard:jcre:9.4.1 T=0 Specifics for Outgoing Data Transfers]] [[javacard:jcre:9.4.1.1 Constrained Transfers With No Chaining]] [[javacard:jcre:9.4.1.2 Regular Output Transfers]] [[javacard:jcre:9.4.1.3 Additional T=0 Requirements]] [[javacard:jcre:9.4.2 T=1 Specifics for Outgoing Data Transfers]] [[javacard:jcre:9.4.2.1 Constrained Transfers With No Chaining]] [[javacard:jcre:9.4.2.2 Regular Output Transfers]] [[javacard:jcre:9.4.3 T=1 Specifics for Incoming Data Transfers]] [[javacard:jcre:9.4.3.1 Incoming Transfers Using Chaining]] [[javacard:jcre:9.4.4 Extended Length APDU Specifics]] [[javacard:jcre:9.4.4.1 Extended Length API Semantics]] [[javacard:jcre:9.5 Security and Crypto Packages]] [[javacard:jcre:9.6 JCSystem Class]] [[javacard:jcre:9.7 Optional Extension Packages]] [[javacard:jcre:10. Virtual Machine Topics]] [[javacard:jcre:10.1 Resource Failures]] [[javacard:jcre:10.2 Security Violations]] [[javacard:jcre:11. Applet Installation and Deletion]] [[javacard:jcre:11.1 The Installer]] [[javacard:jcre:11.1.1 Installer Implementation]] [[javacard:jcre:11.1.2 Installer AID]] [[javacard:jcre:11.1.3 Installer APDUs]] [[javacard:jcre:11.1.4 CAP File Versions]] [[javacard:jcre:11.1.5 Installer Behavior]] [[javacard:jcre:11.1.6 Installer Privileges]] [[javacard:jcre:11.2 The Newly Installed Applet]] [[javacard:jcre:11.2.1 Installation Parameters]] [[javacard:jcre:11.3 The Applet Deletion Manager]] [[javacard:jcre:11.3.1 Applet Deletion Manager Implementation]] [[javacard:jcre:11.3.2 Applet Deletion Manager AID]] [[javacard:jcre:11.3.3 Applet Deletion Manager APDUs]] [[javacard:jcre:11.3.4 Applet Deletion Manager Behavior]] [[javacard:jcre:11.3.4.1 Applet Instance Deletion]] [[javacard:jcre:11.3.4.2 Applet Library Package Deletion]] [[javacard:jcre:11.3.4.3 Applet Package and Contained Instances Deletion]] [[javacard:jcre:11.3.5 Applet Deletion Manager Privileges]] [[javacard:jcre:12. API Constants]] [[javacard:jcre:12.1 Class javacard.framework.APDU]] [[javacard:jcre:12.2 Class javacard.framework.APDUException]] [[javacard:jcre:12.3 Interface javacard.framework.ISO7816]] [[javacard:jcre:12.4 Class javacard.framework.JCSystem]] [[javacard:jcre:12.5 Class javacard.framework.PINException]] [[javacard:jcre:12.6 Class javacard.framework.SystemException]] [[javacard:jcre:12.7 Class javacard.framework.TransactionException]] [[javacard:jcre:12.8 Class javacard.framework.service.Dispatcher]] [[javacard:jcre:12.9 Class javacard.framework.service.RMIService]] [[javacard:jcre:12.10 Class javacard.framework.service.ServiceException]] [[javacard:jcre:12.11 Class javacard.security.Checksum]] [[javacard:jcre:12.12 Class javacard.security.CryptoException]] [[javacard:jcre:12.13 Class javacard.security.KeyAgreement]] [[javacard:jcre:12.14 Class javacard.security.KeyBuilder]] [[javacard:jcre:12.15 Class javacard.security.KeyPair]] [[javacard:jcre:12.16 Class javacard.security.MessageDigest]] [[javacard:jcre:12.17 Class javacard.security.RandomData]] [[javacard:jcre:12.18 Class javacard.security.Signature]] [[javacard:jcre:12.19 Class javacardx.biometry.BioBuilder]] [[javacard:jcre:12.20 Class javacardx.biometry.BioException]] [[javacard:jcre:12.21 Class javacardx.biometry.BioTemplate]] [[javacard:jcre:12.22 Class javacardx.crypto.Cipher]] [[javacard:jcre:12.23 Class javacardx.external.ExternalExeption]] [[javacard:jcre:12.24 Class javacardx.external.Memory]] [[javacard:jcre:12.25 Class javacardx.framework.math.BigNumber]] [[javacard:jcre:12.26 Class javacardx.framework.tlv.BERTag]] [[javacard:jcre:12.27 Class javacardx.framework.tlv.TLVException]] [[javacard:jcre:12.28 Class javacardx.framework.util.UtilException]] [[javacard:jcre:Glossary]] [[javacard:jcre:Index]]