WEB开发网
开发学院软件开发Java 用 Kerberos 为 J2ME 应用程序上锁,第 3 部分: 建... 阅读

用 Kerberos 为 J2ME 应用程序上锁,第 3 部分: 建立与电子银行的安全通信(上)

 2010-03-30 00:00:00 来源:WEB开发网   
核心提示: 处理 TGT 响应既然已经收到了来自 KDC 的 TGT 响应,现在该对响应进行处理以便从响应中提取 票据 和 会话密钥 ,用 Kerberos 为 J2ME 应用程序上锁,第 3 部分: 建立与电子银行的安全通信(上)(3), 自然,响应处理包括一些低层 ASN.1 处理(就像在本系列第二篇文

处理 TGT 响应

既然已经收到了来自 KDC 的 TGT 响应,现在该对响应进行处理以便从响应中提取 票据 和 会话密钥 。

自然,响应处理包括一些低层 ASN.1 处理(就像在本系列第二篇文章中生成票据请求时遇到的低层 ASN.1 生成方法一样)。所以在展示如何使用低层处理方法从票据响应中提取 票据 和 会话密钥 之前,我将实现并解释一些低层 ASN.1 处理方法以及一些低层加密支持方法。

像以前一样,低层 ASN1 处理方法放在 ASN1DataTypes 类中。下面的方法在本文的 源代码下载 中的 ASN1DataTypes.java 文件中:

isSequence()

getIntegerValue()

isASN1Structure()

getNumberOfLengthBytes()

getLength()

getASN1Structure()

getContents()

下面是上面列出的每一个低层 ASN.1 处理方法的说明。

isSequence()

清单 2 中显示的 isSequence() 方法取单个 字节 作为参数,并检查这个 字节 是否是一个 ASN.1 SEQUENCE 字节。如果 字节 值表示一个 SEQUENCE ,那么它就返回 true,否则它返回 false。

清单 2. isSequence() 方法

  public boolean isSequence(byte tagByte) 
  { 
   if (tagByte == (byte)0x30) 
     return true; 
   else 
     return false;  
  }//isSequence 

getIntegerValue()

清单 3 中显示的 getIntegerValue() 方法只取一个输入参数,它是表示一个 ASN.1 INTEGER 数据类型的内容的 字节 数组。它将输入 字节 数组转换为 J2ME int 数据类型,并返回 J2ME int 。在从 ASN.1 INTEGER 中提取了内容字节,并且希望知道它所表示的是什么 integer 值时就需要这个方法。还要用这个方法将长度字节转换为 J2ME int 。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Kerberos JME 应用程序

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接