用 Kerberos 为 J2ME 应用程序上锁,第 2 部分: 生成一个 Kerberos 票据请求
2010-03-30 00:00:00 来源:WEB开发网getGeneralStringBytes()、getOctetStringBytes()、getBitStringBytes() 和 getGeneralizedTimeBytes()
像 getIntegerBytes() 一样,每一个方法返回一种 ASN.1 通用数据类型结构。
清单 4 中的 getGeneralStringBytes() 方法生成一个 ASN.1 GeneralString 的字节数组表达。类似地,清单 5 中的 getOctetStringBytes() 方法返回 ASN.1 OctetString 的字节数组表达。清单 6 中的 getBitStringBytes() 方法返回 BitString 的 ASN.1 表达。最后,清单 7 中的 getGeneralizedTimeBytes() 方法返回 ASN.1 GeneralizedTime 值的字节数组表达。
所有这些方法遵循在前面对 getIntegerBytes() 方法的讨论中见过的同样实现逻辑:
声明一个名为 finalBytes 的字节数组,它将包含 ASN.1 字节数组表达的所有字节。
计算容纳 ASN.1 字节数组表达的内容所需要的字节数。
用清单 3 中的 getLengthBytes() 方法生成长度字节。将长度字节储存到一个名为 lengthBytes 的数组中。
得到 lengthBytes 数组中的字节数。
计算容纳完整的 ASN.1 字节数组表达所需要的字节数(标签字节、长度字节和内容字节的总和)。将这个字节数储存到一个名为 totalBytesCount 的变量中。
实例化一个具有 totalBytesCount 的值大小的 finalBytes 数组。
将标签字节拷贝到 finalBytes 数组的开始处。
将 lengthBytes 数组中的长度字节拷贝到 finalBytes 数组中紧随标签字节的位置。
将内容字节拷贝到 finalBytes 数组中紧随长度字节的位置。
返回 finalBytes 数组。
清单 4、清单 5、清单 6 和清单 7 带有帮助您跟踪和对照上述 10 步中每一步与 J2ME 代码中相应行的注释。
更多精彩
赞助商链接