md5 out range of signed 32bit displacement

本文解决了一个在 Red Hat 6.4 上编译 openssl-0.9.8b 时遇到的错误。该错误发生在 md5-x86_64.s 文件中,涉及超出 32 位带符号位移范围的问题。通过修改 asm/md5-x86_64.pl 脚本中的特定部分,并将 T_i 转换为 32 位带符号十进制数,最终解决了这个问题。

openssl-0.9.8b.tar.gzredhat6.4编译报错out range of signed 32bit displacement

md5-x86_64.s:41: Error: 0xd76aa478 out range of signed 32bit displacement
md5-x86_64.s:50: Error: 0xe8c7b756 out range of signed 32bit displacement
md5-x86_64.s:68: Error: 0xc1bdceee out range of signed 32bit displacement
md5-x86_64.s:77: Error: 0xf57c0faf out range of signed 32bit displacement

解决方法:

vi  openssl-0.9.8b/crypto/md5/asm/md5-x86_64.pl

在其中一段:

sub round1_step{ my ($pos, $dst, $x, $y, $z, $k_next, $T_i, $s) = @_;

之后增加一句:

$T_i = unpack("l",pack("l", hex($T_i))); # convert to 32-bit signed decimal

类似的在其后面出现的:sub round2_step,sub round3_step……也都增加这句。


重新编译成功。


本文出自 “兵临城下” 博客,请务必保留此出处http://308107405.blog.51cto.com/6396647/1537551

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值