0

我在 iOS 应用程序中使用 OpenSSL 来签署消息。我使用 RSA_sign 进行签名。当我使用 RSA_verify 验证签名时,结果是这样的

050 +(f2d7846a5f495a743e470663facf7a2858d052cf

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

这就是我签名的方式

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

其中回复包含要签名的 sha1 散列数据。

此致

4

1 回答 1

0

我很惊讶您在缓冲区中看到了除原始签名之外的任何内容。RSA_verify不应该“返回”除验证结果之外的任何内容(在返回的整数值中,0表示失败,表示成功。请使用SSL 文档1中定义的方法。

在我看来,您首先可以看到哈希是一个错误。不幸的是,OpenSSL 没有很好的文档记录。

于 2013-10-12T13:54:34.767 回答