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

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

 2010-03-30 00:00:00 来源:WEB开发网   
核心提示: 看一下 清单 7 中的 getASN1Strucute() 方法实现,它将 offset 值初始化为零并进入 do-while 循环,用 Kerberos 为 J2ME 应用程序上锁,第 3 部分: 建立与电子银行的安全通信(上)(9), 在 do-while 循环中,将字节数组中第一个字节读入

看一下 清单 7 中的 getASN1Strucute() 方法实现。它将 offset 值初始化为零并进入 do-while 循环。

在 do-while 循环中,将字节数组中第一个字节读入名为 tagByte 的字节中。然后用 isASN1Structure() 方法检查输入数组的第一个字节是否是所需要的 ASN.1 结构。

如果第一个字节代表所需要的结构,那么就用 getLength() 方法找到要返回的所需数量的字节。然后将所需要的字节拷贝到名为 outputBytes 的字节数组中、并将这些字节返回到调用应用程序。

如果第一个字节不代表所需要的结构,那么就要跳到下一个结构。为此,将 offset 值设置为下一个结构的开始位置。

do-while 循环在下一个循环中检查下一个结构,并以此方式检查整个输入数组。如果没有找到所需要的结构,那么 do-while 循环就会退出并返回 null。

清单 7. getASN1Structure() 方法

  public byte[] getASN1Structure (byte[] inputByteArray, int tagType, int tagNumber) 
  { 
   byte tagByte; 
   int offset = 0; 
   do { 
     tagByte = inputByteArray[offset]; 
     if (isASN1Structure(tagByte, tagType, tagNumber)) { 
      int lengthOfStructure = getLength(inputByteArray, offset); 
      byte[] outputBytes = new byte[lengthOfStructure]; 
      for (int x =0; x < lengthOfStructure; x++) 
        outputBytes[x]= inputByteArray [x + offset]; 
      return outputBytes; 
     } 
     else 
      offset += getLength(inputByteArray, offset); 
    
   } while (offset < inputByteArray.length); 
   
   return null; 
  }//getASN1Structure 

上一页  4 5 6 7 8 9 10  下一页

Tags:Kerberos JME 应用程序

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