jiangfeng88
驱动牛犊
驱动牛犊
  • 注册日期2011-05-09
  • 最后登录2011-06-06
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望111点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2489回复:7

ndis 加解密

楼主#
更多 发布于:2011-05-29 03:43
        大家好!我现在基于passthru做了一个NDIS的加解密程序,现在的问题是解密数据能够成功,但是貌似解密之后的数据没有提交上去,因为我从一端ping另外一端的时候,在另外一端NDIS中间层打印了解密后的数据完全是正确的,但是另外一端并没有回应一个ICMP包,所以我猜想是解密后的数据包没有正确的提交到上层。
        我简单的介绍一下我加解密的实现:首先是在加密端用ESP算法加密传输层之后(包括传输层头)的数据,因为AES加密算法需要数据时16的倍数,所以还有相应的填充数据,所以加密后数据的总长度会变长。然后在接受端用AES算法进行解密数据,解密后数据的长度还原到原来的长度。由于数据的加解密在数据是一片完整的存储区时才比较好计算,所以我在接受函数和发送函数都是分配自己的buffer描述符和buffer。
        烦请各位大牛帮帮忙啊! 这个问题困扰我一个月了!
jiangfeng88
驱动牛犊
驱动牛犊
  • 注册日期2011-05-09
  • 最后登录2011-06-06
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望111点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2011-05-30 16:41
抓到的报是加密的数据!(因为抓包是从网卡拷贝一个包过来,我还没有解密的数据),对于校验和的问题我觉得应该没有什么问题,因为我解密后的数据完全就是发送端要发送的数据(未加密之前的数据),一模一样的!
jiangfeng88
驱动牛犊
驱动牛犊
  • 注册日期2011-05-09
  • 最后登录2011-06-06
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望111点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2011-06-01 19:49
首先,在没有装加解密模块的时候是能够ping通的!至于上面那位大哥说的检验和问题,我后来重新计算了校验和,还是提交不上去。不知道怎么回事?我该怎么办呢?
jiangfeng88
驱动牛犊
驱动牛犊
  • 注册日期2011-05-09
  • 最后登录2011-06-06
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望111点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2011-06-03 15:05
现在的情况又变了,能提交上去,但是提交的貌似是加密的包,但是我用debug调试了一下,它确实进入了我的解密代码,而且数据也改变了,重新分配了一个packet描述符和buffer描述符,还有一个buffer数据区,buffer数据区是解密之后的数据,把它们关联起来在提交上去,提交的明明是mypacket,但是上层接受到的貌似是加密后的数据!
游客

返回顶部