📄 jcrespec11installer.html
字号:
<P CLASS="Linebreak"></P><LI CLASS="Bullet1"><A NAME="pgfId-410960"></A>An applet instance belonging to the context of the applet instance being deleted, is active on the card.</LI><P CLASS="Linebreak"></P></UL><P CLASS="Paragraph"><A NAME="pgfId-413397"></A>Otherwise, the Java Card RE shall delete the applet instance.</P><BR><HR NOSHADE SIZE=1><TABLE CLASS="TipNote" DIR="LTR" WIDTH="100%" SUMMARY="TipNote"><COLGROUP SPAN="1" WIDTH="100%"><TR ALIGN="left" VALIGN="top"><TD ROWSPAN="1" COLSPAN="1" ABBR="TipNoteText"><P CLASS="TipNote"><B CLASS="TipNote">Note - </B><A NAME="pgfId-413551"></A>The applet deletion attempt may fail due to security considerations or resource limitations.</P></TD></TR></TABLE><HR NOSHADE SIZE=1><BR><P CLASS="Paragraph"><A NAME="pgfId-412856"></A>The applet instance deletion operation must be atomic. If a reset or power fail occurs during the deletion process, it must result in either an unsuccessful applet instance deletion or a successfully completed applet instance deletion before any applet is selected on the card.</P><P CLASS="Paragraph"><A NAME="pgfId-410622"></A>Following an unsuccessful applet instance deletion, the applet instance shall be selectable, and all objects owned by the applet shall remain unchanged. The functionality of all applet instances on the card remains the same as prior to the unsuccessful attempt.</P><P CLASS="Paragraph"><A NAME="pgfId-410986"></A>Following a successful applet instance deletion, it shall not be possible to select that applet, and no object owned by the applet can be accessed by any applet currently on the card or by a new applet created in the future.</P><P CLASS="Paragraph"><A NAME="pgfId-410710"></A>The resources used by the applet instance may be recovered for reuse.</P><P CLASS="Paragraph"><A NAME="pgfId-410651"></A>The AID of the deleted applet instance may be reassigned to a new applet instance.</P><H5 CLASS="Head4"><A NAME="pgfId-410741"></A>Multiple Applet Instance Deletion</H5><P CLASS="Paragraph"><A NAME="pgfId-418668"></A>The Java Card RE shall guarantee that multiple applet instance deletion is not attempted, and thereby deemed unsuccessful in the following cases:</P><UL><LI CLASS="Bullet1"><A NAME="pgfId-419942"></A>An object owned by any of the applet instances being deleted is referenced from an object owned by an applet instance on the card which is not being deleted.</LI><P CLASS="Linebreak"></P><LI CLASS="Bullet1"><A NAME="pgfId-419943"></A>An object owned by any of the applet instances being deleted is referenced from a static field on a package on the card.</LI><P CLASS="Linebreak"></P><LI CLASS="Bullet1"><A NAME="pgfId-410961"></A>An applet instance belonging to the contexts of any of the applet instances being deleted is active on the card.</LI><P CLASS="Linebreak"></P></UL><P CLASS="Paragraph"><A NAME="pgfId-412866"></A>Otherwise, the Java Card RE shall delete the applet instances.</P><BR><HR NOSHADE SIZE=1><TABLE CLASS="TipNote" DIR="LTR" WIDTH="100%" SUMMARY="TipNote"><COLGROUP SPAN="1" WIDTH="100%"><TR ALIGN="left" VALIGN="top"><TD ROWSPAN="1" COLSPAN="1" ABBR="TipNoteText"><P CLASS="TipNote"><B CLASS="TipNote">Note - </B><A NAME="pgfId-413562"></A>The applet deletion attempt may fail due to security considerations or resource limitations.</P></TD></TR></TABLE><HR NOSHADE SIZE=1><BR><P CLASS="Paragraph"><A NAME="pgfId-413403"></A>The multiple applet instance deletion operation must be atomic. If a reset or power fail occurs during the deletion process, it must result in either an unsuccessful multiple applet instance deletion or a successfully completed multiple applet instance deletion before any applet is selected on the card.</P><P CLASS="Paragraph"><A NAME="pgfId-410855"></A>Following an unsuccessful multiple applet instance deletion, all applet instances shall be selectable, and all objects owned by the applets shall remain unchanged. The functionality of all applet instances on the card remains the same as prior to the unsuccessful attempt.</P><P CLASS="Paragraph"><A NAME="pgfId-410856"></A>Following a successful multiple applet instance deletion, it shall not be possible to select any of the deleted applets, and no object owned by the deleted applets can be accessed by any applet currently on the card or by a new applet created in the future.</P><P CLASS="Paragraph"><A NAME="pgfId-410857"></A>The resources used by the applet instances may be recovered for reuse.</P><P CLASS="Paragraph"><A NAME="pgfId-410858"></A>The AID of the deleted applet instances may be reassigned to new applet instances.</P><H4 CLASS="Head3"><A NAME="pgfId-410505"></A>11.3.4.2 <A NAME="97190"></A>Applet/Library Package Deletion</H4><P CLASS="Paragraph"><A NAME="pgfId-418705"></A>The Java Card RE shall guarantee that applet/library package deletion is not attempted and thereby deemed unsuccessful in the following cases:</P><UL><LI CLASS="Bullet1"><A NAME="pgfId-418707"></A>A reachable (non-garbage) instance of a class belonging to the package being deleted exists on the card.</LI><P CLASS="Linebreak"></P><LI CLASS="Bullet1"><A NAME="pgfId-411521"></A>Another package on the card depends on this package (as expressed in the CAP file's import component).</LI><P CLASS="Linebreak"></P></UL><P CLASS="Paragraph"><A NAME="pgfId-412870"></A>Otherwise, if the applet/library package is resident in mutable memory, the Java Card RE shall delete the applet/library package.</P><BR><HR NOSHADE SIZE=1><TABLE CLASS="TipNote" DIR="LTR" WIDTH="100%" SUMMARY="TipNote"><COLGROUP SPAN="1" WIDTH="100%"><TR ALIGN="left" VALIGN="top"><TD ROWSPAN="1" COLSPAN="1" ABBR="TipNoteText"><P CLASS="TipNote"><B CLASS="TipNote">Note - </B><A NAME="pgfId-413573"></A>The package deletion attempt may fail due to security considerations or resource limitations.</P></TD></TR></TABLE><HR NOSHADE SIZE=1><BR><P CLASS="Paragraph"><A NAME="pgfId-413412"></A>The applet/library package deletion operation must be atomic. If a reset or power fail occurs during the deletion process, it must result in either an unsuccessful applet/library package deletion or a successfully completed applet/library package deletion before any applet is selected on the card.</P><P CLASS="Paragraph"><A NAME="pgfId-410692"></A>Following an unsuccessful applet/library package deletion, any object or package that depends on the package continues to function unaffected. The functionality of all applets on the card remains the same as prior to the unsuccessful attempt.</P><P CLASS="Paragraph"><A NAME="pgfId-410693"></A>Following a successful applet/library package deletion, it shall not be possible to install another package which depends on the deleted package. Additionally, it shall be possible to reinstall the same package (with exactly the same package AID) or an upgraded version of the deleted package onto the card.</P><P CLASS="Paragraph"><A NAME="pgfId-411483"></A>The resources used by the applet/library package may be recovered for reuse.</P><H4 CLASS="Head3"><A NAME="pgfId-411484"></A>11.3.4.3 <A NAME="26964"></A>Applet Package and Contained Instances Deletion</H4><P CLASS="Paragraph"><A NAME="pgfId-418751"></A>The Java Card RE shall guarantee that deletion of the applet package and contained instances is not attempted and thereby deemed unsuccessful in the following cases:</P><UL><LI CLASS="Bullet1"><A NAME="pgfId-411529"></A>Another package on the card depends on this package (as expressed in the CAP file's import component).</LI><P CLASS="Linebreak"></P><LI CLASS="Bullet1"><A NAME="pgfId-411530"></A>An object owned by any of the applet instances being deleted is referenced from an object owned by an applet instance on the card that is not being deleted.</LI><P CLASS="Linebreak"></P><LI CLASS="Bullet1"><A NAME="pgfId-418767"></A>An object owned by any of the applet instances being deleted is referenced from a static field of a package that is not being deleted.</LI><P CLASS="Linebreak"></P><LI CLASS="Bullet1"><A NAME="pgfId-412892"></A>An applet instance belonging to the contexts of any of the applet instances being deleted, is active on the card.</LI><P CLASS="Linebreak"></P></UL><P CLASS="Paragraph"><A NAME="pgfId-412893"></A>Otherwise, if the applet package is resident in mutable memory, the Java Card RE shall delete the applet package and contained instances.</P><BR><HR NOSHADE SIZE=1><TABLE CLASS="TipNote" DIR="LTR" WIDTH="100%" SUMMARY="TipNote"><COLGROUP SPAN="1" WIDTH="100%"><TR ALIGN="left" VALIGN="top"><TD ROWSPAN="1" COLSPAN="1" ABBR="TipNoteText"><P CLASS="TipNote"><B CLASS="TipNote">Note - </B><A NAME="pgfId-413582"></A>The applet and package deletion attempt may fail due to security considerations or resource limitations.</P></TD></TR></TABLE><HR NOSHADE SIZE=1><BR><P CLASS="Paragraph"><A NAME="pgfId-413421"></A>The deletion of applet package and contained instances operation must be atomic. If a reset or power fail occurs during the deletion process, it must result in either an unsuccessful deletion of the applet package and contained instances or a successfully completed deletion of the applet package and contained instances before any applet is selected on the card.</P><P CLASS="Paragraph"><A NAME="pgfId-412894"></A>Following an unsuccessful deletion of the applet package and contained instances, any object or package that depends on the package continues to function unaffected. The functionality of all applets on the card remains the same as prior to the unsuccessful attempt.</P><P CLASS="Paragraph"><A NAME="pgfId-411473"></A>Following a successful deletion of the applet package and contained instances, it shall not be possible to install another package that depends on the deleted package. Additionally, it shall be possible to reinstall the same package (with exactly the same package AID) or an upgraded version of the deleted package onto the card.</P><P CLASS="Paragraph"><A NAME="pgfId-411465"></A>The resources used by the applet package may be recovered for reuse.</P><P CLASS="Paragraph"><A NAME="pgfId-411582"></A>Following a successful deletion of the applet package and contained instances, it shall not be possible to select any of the deleted applets, and no object owned by the deleted applets can be accessed by any applet currently on the card or by a new applet created in the future.</P><P CLASS="Paragraph"><A NAME="pgfId-411583"></A>The resources used by the applet instances may be recovered for reuse.</P><P CLASS="Paragraph"><A NAME="pgfId-411584"></A>The AID for the deleted applet instances may be reassigned to new applet instances.</P><H3 CLASS="Head2"><A NAME="pgfId-410325"></A>11.3.5 Applet Deletion Manager Privileges</H3><P CLASS="Paragraph"><A NAME="pgfId-410326"></A>Although an Applet Deletion Manager may be implemented as an applet, an Applet Deletion Manager typically requires access to features that are not available to other applets. For example, depending on the Java Card RE implementer's implementation, the Applet Deletion Manager needs to do the following:</P><UL><LI CLASS="Bullet1"><A NAME="pgfId-410327"></A>Read and write directly to memory, bypassing the object system and/or standard security.</LI><P CLASS="Linebreak"></P><LI CLASS="Bullet1"><A NAME="pgfId-410328"></A>Access objects owned by other applets or by the Java Card RE.</LI><P CLASS="Linebreak"></P><LI CLASS="Bullet1"><A NAME="pgfId-410329"></A>Invoke non-entry point methods of the Java Card RE.</LI><P CLASS="Linebreak"></P></UL><P CLASS="Paragraph"><A NAME="pgfId-410331"></A>Again, it is up to each Java Card RE implementer to determine the Applet Deletion Manager implementation and supply such features in their Java Card RE implementations as necessary to support their Applet Deletion Manager. Java Card RE implementers are also responsible for the security of such features, so that they are not available to normal applets.</P><P CLASS="Paragraph"><A NAME="pgfId-408007"></A> </P><div class="navbar" align="center"><br><br><table dir="LTR" summary="Navigation bar, includes the book title and navigation buttons" width=100% cellpadding="0" cellspacing="0" border="0"><colgroup span="3" width="100%"><col id="1" span="1" width="45%"><col id="2" span="1" width="25%"><col id="3" span="1" width="30%"><tr bgcolor="#cccccc"><td class="navbartitle" align=left rowspan="1" colspan="1" abbr="ChapTitle"> Runtime Environment Specification for the Java Card Platform, Version 2.2.2</td><td class="navbartitle" align=right rowspan="1" colspan="1" abbr="PartNum">3-8-06</td><td valign="top" align="right" rowspan="1" colspan="1" abbr="NavButtons"><a href="index.html"><img src="shared/toc01.gif" title="Table Of Contents" alt="Table Of Contents" width="30" height="26" border="0"></a><a href="JCRESpec10vm.html"><img src="shared/prev01.gif" title="Previous Chapter" alt="Previous Chapter" width="30" height="26" border="0"></a><a href="JCRESpec12constants.html"><img src="shared/next01.gif" title="Next Chapter" alt="Next Chapter" width="30" height="26" border="0"></a><a href="ix.html"><img src="shared/index01.gif" title="Book Index" alt="Book Index" width="30" height="26" border="0"></a></td></tr></table><br><br></div><P CLASS="copyrightlink"><a href="copyright.html">Copyright</a> © 2005, Sun Microsystems, Inc. All Rights Reserved.</P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -