快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
engthBytes() 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 = lengthBytesCount + 1;      //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)0x30;      //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] = lengthBytes[i];      //9. Copy the content bytes to the finalBytes array      //  just after the length bytes.      finalBytes = concatenateBytes (finalBytes, sequenceContents);      //10. Return the finalBytes array.      return finalBytes;    }//getsequenceBytes

用Kerberos为J2ME应用程序上锁,第2部分 - 生成一个Kerberos票据请求(8)

时间:2011-08-05 IBM Faheem Khan

getTagAndLengthBytes()

这个方法与所讨论过的各种 getXXXBytes() 方法非常相象。不过,虽然其中每一个方法生成一个特定 的 ASN.1 通用数据类型,但是 getTagAndLengthBytes() 方法(见清单 10)生成应用程序级和上下文特 定的数据类型。

这个方法取三个参数。第一个参数( tagType )指定标签类型。如果它的值等于静态整数 ASN1DataTypes.Context_Specific ,那么它指定的是一个上下文特定标签,如果它的值等于 ASN1DataTypes.Application_Type ,那么它指定的是一个应用程序级标签。

第二个参数( tagNumber )指定标签数,而第三个( tagContents )包含了内容字节数组。

getTagAndLengthBytes() 根据输入参数计算标签和长度字节的值,将标签和长度字节加到内容字节前 面,并返回应用程序级或者上下文特定的 ASN.1 结构的完整字节数组表达。

清单 10. getTagAndLengthBytes() 方法

public byte[] getTagAndLengthBytes (int tagType, int tagNumber, byte[]  tagContents)    {      //1. Declare a byte array named finalBytes,      //  which will hold all the bytes of the ASN.1 byte array  representation.      byte finalBytes[];      //2. Declare a byte array named tagAndLengthBytes,      //  which will hold the tag and length bytes.      byte tagAndLengthBytes[];      //3. Now calculate the value of the tag byte.      int tag = tagType + tagNumber;      //4. Calculate the number of bytes require

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号