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

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

 2010-03-30 00:00:00 来源:WEB开发网   
核心提示: 清单 16. getPaddedData() 方法publicbyte[]getPaddedData(byte[]data){intnumberToPad=8-(data.length%8);if(numberToPad>0&&numberToPad!=8){byte[]bytesPad=

清单 16. getPaddedData() 方法

  public byte[] getPaddedData(byte[] data) { 
   int numberToPad = 8 - ( data.length % 8 ); 
   if (numberToPad > 0 && numberToPad != 8) 
   { 
     byte[] bytesPad = new byte[numberToPad]; 
     for (int x = 0; x < numberToPad; x++) 
      bytesPad [x] = (byte)numberToPad; 
     return  concatenateBytes(data, bytesPad); 
   } 
   else 
     return data; 
  }//getPaddedData() 

getChecksumBytes()

getChecksumBytes() 方法生成一个称为 Checksum 的结构,如 清单 17 所示。Checksum 结构包含两个字段: cksumtype 和 checksum 。

清单 17. Checksum 结构

  Checksum ::= SEQUENCE { 
        cksumtype[0]  INTEGER, 
        checksum[1]  OCTET STRING 
  }+ 

有两个地方需要 Checksum 结构 ―― 第一个是生成服务票据响应时,然后是生成安全上下文建立请求时。Checksum 结构的作用在这两种情况下是不同的,需要在生成服务票据和上下文建立请求时说明(elaborate)。

清单 18 所示的 getChecksumBytes() 方法取两个字节数组参数。第一个参数带有 checksum 字段,而第二个参数带有 cksumtype 字段。

getChecksumBytes() 方法将 cksumtype 字段包装到一个特定于上下文的标签号 0(它表示 cksumtype 字段,如 清单 17 所示),而将 checksum 字段包装到一个特定于上下文的标签号 1(它表示 checksum 字段,同样如 清单 17 所示)。然后它链接这两个字段,将这个数组包装到一个 SEQUENCE 中,并返回这个 SEQUENCE 。

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

Tags:Kerberos JME 应用程序

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