⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0089.htm

📁 关于java的开发文档
💻 HTM
📖 第 1 页 / 共 2 页
字号:
          <TD>不支援 </TD></TR>
        <TR>
          <TD>boolean、byte、 short、int </TD>
          <TD>float、double、 long、char、 Strings </TD></TR>
        <TR>
          <TD>Dynamic Object Creation </TD>
          <TD>Dynamic Class Loading </TD></TR>
        <TR>
          <TD>Arrays </TD>
          <TD>Security Manager </TD></TR>
        <TR>
          <TD>Virtual mehtods </TD>
          <TD>Garbage Collectioin &amp; Finalization </TD></TR>
        <TR>
          <TD>Dynamic allocation </TD>
          <TD>Threads </TD></TR>
        <TR>
          <TD>Packages </TD>
          <TD>Cloning </TD></TR>
        <TR>
          <TD>Exceptions </TD>
          <TD>Multi-dimentional arrays </TD></TR>
        <TR>
          <TD>Interfaces </TD>
          <TD>&nbsp; </TD></TR></TBODY></TABLE><A name=six>
      <TABLE height=40>
        <TBODY>
        <TR>
          <TD>
          六、Java Ring 
      </TD></TR></TBODY></TABLE></A>
      <P>Java Ring又名 Java-Powered iButton,是Dallas Semiconductor公司的产品,事实上 Java 
      Ring只是Java Card的另外一种型态,Dallas公司将它制作成为钮扣的形状,进而镶嵌在戒指之上,成为一个Java Ring。 </P>
      <P>因为Java Ring是沿袭Java Card的规格,所以在软体的架构上是相同的。而 Java Ring在Java 
      Card的原有的硬体架构下加强了其原有的结构,并且发展出与Java Card不同的应用层面。详细的资料请参考[3] 。 
      </P><A name=seven>
      <TABLE height=40>
        <TBODY>
        <TR>
          <TD>
          七、Java Card API 
        </TD></TR></TBODY></TABLE></A>
      <P>Java Card的2.1版总共分为四个 packages,而其内容与重要的物件分述如下: </P>
      <UL type=circle>
        <LI><B>javacard.lang package</B>:提供 Java language重要的classes,如 
        Object物件,因为所有的Java物件皆继承其下。 
        <UL>
          <LI>Object class - root of class hierarchy </LI></UL>
        <UL>
          <LI>Throwable class - 为所有 error及exception 的superclass,这亦表示Java 
          Card支援exception </LI></UL></LI></UL>
      <UL type=circle>
        <LI><B>javacard.frame work package</B> :是Java Card API 主要的core 
        package,提供了实做Java Card applet基本的物件与工具。 
        <UL>
          <LI>IOS7816 abstract interface - 提供了ISO7816所使用的常数值 </LI></UL>
        <UL>
          <LI>PIN abstract interface - 使其 subclass能透过此一介面能够做check PIN number及验证 
          PIN是否为validate 等功能 </LI></UL>
        <UL>
          <LI>Shareable abstract interface - 
          使得不同的applets能够透过implement此介面来达到互相沟通的功能 </LI></UL>
        <UL>
          <LI>AID class - AID(Application Identifier)是用来唯一表示Java Card 
          applet的number,使得JCRE能够透过一个AID table来识别或选择我们所要执行的applet </LI></UL>
        <UL>
          <LI>APDU class - 是属於 JCRE的物件,是藉由maintain一个 byte array buffer 来接收与传送 
          terminal端的指令与回传applet执行的结果与状态的标准格式 </LI></UL>
        <UL>
          <LI>Applet class - 每一个 Java Card applet 都必须继承在此 class之下。其中在 
          implement时要特别注意几个methods,如select、 deselect是当 terminal端跟据 applet的AID下达 
          select或deselect 此applet的指令时,由JCRE来启动的 methods。而 install与register 
          则是applet下载至 Java Card安装并向 JCRE注册之methods 。等到applet安装注册完成,并且被 
          terminal所select 时,所有下达的 APDU command接会交由applet的 process 
          method来处理并负责回传结果 </LI></UL>
        <UL>
          <LI>JCSystem class - 负责管理 applet与Java Card 的系统资源,如AID 与Transaction的管理 
          </LI></UL>
        <UL>
          <LI>OwnerPIN class - 继承自PIN interface,负责 maintain卡片持有人的PIN 
          number,并提供相关check与 update等methods </LI></UL>
        <UL>
          <LI>Util class - 是一个提供常用工具的class ,如byte array copy与compare等 
        </LI></UL></LI></UL>
      <UL type=circle>
        <LI><B>javacard.secur ity package</B>:提供安全机制与物件的package,其中几个重要的 
        interface与class 如下: 
        <UL>
          <LI>Key abstract interface - 是 DESKey、 PrivateKey、 PublicKey等 
          interface的共同介面 </LI></UL>
        <UL>
          <LI>KeyBuilde r class - 是一个 create各种安全的 key的factory </LI></UL>
        <UL>
          <LI>MessageDi gest class - 是一个可以将message做数位签章之object </LI></UL></LI></UL>
      <UL type=circle>
        <LI><B>javacardx.cryp to 
        package</B>:其中包含了关於加密与安全的物件,并且有美国的出口限制,而此package 仅包含了一个 interface与一个 
        abstract class: 
        <UL>
          <LI>Cipher abstract class - 使得在Java Card中的资讯得以加密保护 </LI></UL></LI></UL><A 
      name=eight>
      <TABLE height=40>
        <TBODY>
        <TR>
          <TD>
          八、范例 
      </TD></TR></TBODY></TABLE><BR><B>程式8-1 HelloWorld applet</B> 
      <P align=center>
      <TABLE width="70%">
        <TBODY>
        <TR>
          <TD class=detail><PRE>


//一applet必须要属於一package

package samples.HelloWorld;		

import javacard.framework.*;	//imoprt必要的package

public class HelloWorld extends Applet
{   
//此echoBytes array为"HelloWorld"的16进位表示法
    private static final byte echoBytes[] = {
    	0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x57, 0x6f, 0x72, 0x6c, 0x64};

//applet constructor

    protected HelloWorld(APDU apdu)
    {	//在applet initiate时向JCRE注册
        register();
    }

/*当applet下载至Java Card时,则会启动install method来安装applet,并传入
applet install所要的参数*/

    public static void install( byte[] bArray, short bOffset, byte bLength )

    {	//initiate 
	HelloWorld applets  new HelloWorld(null);

    }

    public void process(APDU apdu) throws ISOException
    { //处理terminal端的APDU指令

      byte buffer[] = apdu.getBuffer();
	//取得APDU之buffer

	//将echoBytes,及"HelloWorld"byte自串copy至APDU的buffer
  	Util.arrayCopyNonAtomic(echoBytes, (short)0, buffer, 
     (short)0, (short)echoBytes.length);

//将APDU buffer的资料设为"写出",并直接传送出去

	apdu.setOutgoingAndSend((short)0, (short)echoBytes.length);

    }

}


</PRE></TD></TR></TBODY></TABLE></P><PRE></PRE>
      <P>以上是一个 HelloWorld的例子(程式8-1)用来介绍基本的Java Card applet的implement 方式。而此 
      HelloWorld范例程式的执行,是预设由terminal端传来 Command 
      APDU後,此applet并不处理此APDU,而是直接将"HelloWorld"的讯息以APDU的方式直接回传给 terminal端。 </P><A 
      name=nine>
      <TABLE height=40>
        <TBODY>
        <TR>
          <TD>
          九、参考资料 
      </TD></TR></TBODY></TABLE></A>
      <DL>
        <DT>
        <DD><A name=1>[1]</A> "Java Card 2.0 Reference Implementation," <A 
        href="../../www.javasoft.com/default.htm">htt p://www.javasoft. com</A>. 
        <DD><A name=2>[2]</A> "Java Card 2.1 Reference Implementation," <A 
        href="../../www.javasoft.com/default.htm">htt p://www.javasoft. com</A> 
        <DD><A name=3>[3]</A> <A 
        href="../../ibutton.com.tw/default.htm">http://ibutton.com.tw/</A> 
  </DD></DL></TD></TR></TBODY></TABLE>

  </table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -