用 Kerberos 为 J2ME 应用程序上锁,第 3 部分: 建立与电子银行的安全通信(上)
2010-03-30 00:00:00 来源:WEB开发网getContents()
清单 8 中显示的 getContents() 方法取 ASN1Structure 字节数组并返回一个包含 ASN1Structure 内容的字节数组。
getContents() 方法假定所提供的字节数组是一个有效的 ASN1 结构,所以它忽略结构中表示标签字节的第一个字节。它将第二个字节(即第一个长度字节)传递给 getNumberOfLengthBytes() 方法,这个方法返回 ASN1Structure 输入字节数组中的长度字节数。
然后它构建一个名为 contentBytes 的新字节数组,并将 ASN1Structure 的内容拷贝到 contentBytes 数组中(去掉标签和长度字节)。
清单 8. getContents() 方法
public byte[] getContents (byte[] ASN1Structure)
{
int numberOfLengthBytes = getNumberOfLengthBytes(ASN1Structure [1]);
byte[] contentBytes = new byte[ASN1Structure.length - (numberOfLengthBytes + 1)];
for (int x =0; x < contentBytes.length; x++)
contentBytes[x]= ASN1Structure [x + numberOfLengthBytes + 1];
return contentBytes;
}//getContents
一些低层加密支持方法
除了前面描述的低层处理方法,还需要一些低层加密支持方法以处理一个票据响应。这就是为什么在解释票据响应的处理之前,我要讨论以下这些为 Kerberos 客户机提供加密支持的方法:
encrypt()
decrypt()
getMD5DigestValue()
decryptAndVerifyDigest()
这些方法是 KerberosClient 类的组成部分,可以在 KerberosClient.java 文件中找到它们,本文的 源代码下载中可以找到这个文件。下面是对这几个方法的说明:
更多精彩
赞助商链接