2013-10-09 32 views
0

我在iOS应用程序中使用OpenSSL签名消息。我使用RSA_sign来签名。当我使用RSA_verify验证签名,结果是这样的050 +在已验证签名的开头

050 +(f2d7846a5f495a743e470663facf7a2858d052cf

哪里f2d7846a5f495a743e470663facf7a2858d052cf是原始签名。所以我得到额外的050 +(在签名的开始。谁能告诉我这是为什么?

这是我如何签署

int sign = RSA_sign(NID_sha1,(char *)reply, strlen(reply), signature, &siglen, myRSA); 

其中答复包含sha1散列数据进行签名。

问候

回答

0

我很惊讶,你看到比在缓冲区中的原始签名的任何其他。 RSA_verify不应该“回归”以外的任何其他情况下的验证结果(在返回的整数值,0失败,1成功,请使用方法如SSL documentation定义。

在我看来,这是一个错误,你可以看到散列在第一位不幸的OpenSSL没有很好的记录

+0

从我的答案,Aqueel缺少任何东西?依靠返回的哈希可能是危险的,它可能会改变实施,因为它是不是文档界面的一部分。 –