快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
   //  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)0x18;      //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.      for (int j=lengthBytesCount+1; j<totalBytesCount; j++)        finalBytes[j] = generalizedTimeContent[j-(lengthBytesCount+1)];      //10. Return the finalBytes array.      return finalBytes;    }//getGeneralizedTimeBytes

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

时间:2011-08-05 IBM Faheem Khan

concatenateBytes()

这个方法(见清单 8)取两个字节数组,将第二个数组串接到第一个之后,并返回串接的数组。

因为这个方法取两个字节数组并返回另一个字节数组,所以它可以自身串联任意次以串接任意数量的 字节数组。例如, concatenateBytes(byteArray1, concatenateBytes(byteArray2, byteArray3)) 会将 byteArray3 加在 byteArray2 后,再将结果加到 byteArray1 后。

清单 8. concatenateBytes() 方法

public byte[] concatenateBytes (byte[] array1, byte[] array2)    {      byte concatenatedBytes[] = new byte[array1.length + array2.length];      for (int i=0; i<array1.length; i++)        concatenatedBytes[i] = array1[i];      for (int j=array1.length; j<concatenatedBytes.length; j++)        concatenatedBytes[j] = array2[j-array1.length];      return concatenatedBytes;    }//concatenateBytes

getSequenceBytes()

这个方法(见清单 9)生成一个 ASN.1 SEQUENCE 的字节数组表达。它取一个字节数组作为输入参数 ,将这个字节数组作为 SEQUENCE 的内容,在内容前面加上 SEQUENCE 标签字节( 0x30 )和长度字节, 并返回完整的 SEQUENCE 结构。

通常, getSequenceBytes() 方法会与 concatenateBytes() 配合使用。一个应用程序将生成 SEQUENCE 中单独的结构,将各个结构的字节数组表达串接在一起以构成一个数组,并将串接后的数组传 递给 getSequenceBytes() 方法,这个方法将返回 SEQUENCE 的完整字节数组表达。

清单 9. getSequenceBytes() 方法

public byte[] getSequenceBytes (byte[] sequenceContents)    {      //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 = sequenceContents.length;      //3. Use the getL

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