快速业务通道

用Kerberos为J2ME应用程序上锁,第2部分 - 生成一个Kerberos票据请求 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
节数组表达。类似 地,清单 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 代码中相应 行的注释。

喘Kerberos葎J2ME哘喘殻會貧迄?及2何蛍 - 伏撹匯倖Kerberos同象萩箔(5)

扮寂:2011-08-05 IBM Faheem Khan

賠汽 4. getGeneralStringBytes() 圭隈

public byte[] getGeneralStringBytes (String generalStringContent)    {      //1. Declare a byte array named finalBytes, which will      //  hold all the bytes of the ASN.1 byte array representation.      byte finalBytes[];      //2. Calculate the number of bytes required to hold the      //  contents part of the ASN.1 byte array representation.      int contentBytesCount = generalStringContent.length();      //3. Use the getLengthBytes() method of Listing 3 to author      //  the length bytes. Store the length bytes in      //  an array named lengthBytes.      byte lengthBytes[] = getLengthBytes(contentBytesCount );      //4. Get the number of bytes in the lengthBytes array.      int lengthBytesCount = lengthBytes.length;      //5. Calculate the number of bytes required to hold the complete      //  ASN.1 byte array representation (the sum total of the number      //  of tag bytes, length bytes, and content bytes).      //  Store the number of bytes in a variable named totalBytesCount.      int totalBytesCount = 1 + lengthBytesCount + contentBytesCount ;      //6. Instantiate the finalBytes array to totalBytesCount size.      finalBytes = new byte[totalBytesCount];      //7.Copy the tag byte at the start of the finalBytes array.      finalBytes[0] = (byte)0x1B;      //8. Copy the length bytes from the lengthBytes array      //  to the finalBytes array just after the tag byte.      for (int i=0; i < lengthBytes.length; i++)        finalBytes[i+1] = 

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号