我在iOS应用中使用OpenSSL来签名消息。我用RSA_sign签名。当我使用RSA_verify验证签名时,结果就像这样
050 +(f2d7846a5f495a743e470663facf7a2858d052cf
其中f2d7846a5f495a743e470663facf7a2858d052cf是原始签名。所以我得到额外的050 +(在签名开始时。有人可以告诉我这个的原因吗?
这就是我签名的方式
int sign = RSA_sign(NID_sha1,( char *)reply, strlen(reply), signature, &siglen, myRSA );
其中reply包含要签名的sha1散列数据。
最好的问候
答案 0 :(得分:0)
我很惊讶您在缓冲区中看到除原始签名之外的任何内容。 RSA_verify
不应该“返回”除验证结果之外的任何内容(在返回的整数值中,0
表示失败,1
表示成功。请使用上面定义的方法SSL documentation。
在我看来,这是一个你可以在第一时间看到哈希的错误。不幸的是,OpenSSL没有很好的文档记录。