用 Kerberos 为 J2ME 应用程序上锁,第 3 部分: 建立与电子银行的安全通信(上)
2010-03-30 00:00:00 来源:WEB开发网isASN1Structure()
清单 4 中显示的 isASN1Structure() 方法分析一个输入字节是否表示具有特定标签号的特定类型的 ASN.1 结构(即, 特定于上下文的 (context specific)、应用程序级 (application level) 或者通用类型 (universal type ))的标签字节(第一个字节)。
这个方法取三个参数。第一个参数( tagByte )是要分析的输入 字节 。第二和第三个参数( tagType 和 tagNumber )分别表示所要查找的标签类型和标签号。
为了检查 tagByte 是否具有所需要的标签号的标签类型, isASN1Structure() 方法首先用 tagType 和 tagNumber 参数构建一个新的临时标签字节( tempTagByte )。然后比较 tempTagByte 与 tagByte 。如果它们是相同的,那么方法就返回 true,如果不相同它就返回 false。
清单 4. isASN1Structure() 方法
public boolean isASN1Structure (byte tagByte, int tagType, int tagNumber)
{
byte tempTagByte = (byte) (tagType + tagNumber);
if (tagByte == tempTagByte)
return true;
else
return false;
}//isASN1Structure
getNumberOfLengthBytes()
清单 5 显示的 getNumberOfLengthBytes() 方法取一个参数( firstLengthByte )。 firstLengthByte 参数是 ASN.1 结构的第一个长度字节。 getNumberOfLengthBytes() 方法处理第一个长度字节,以计算 ASN.1 结构中长度字节的字节数。这是一个工具方法, ASN1DataTypes 类中的其他方法在需要知道一个 ASN.1 结构的长度字节的字节数时就使用它。
清单 5 中的 getNumberOfLengthBytes() 方法的实现策略如下:
更多精彩
赞助商链接