2013-10-09 80 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缺少任何東西?依靠返回的哈希可能是危險的,它可能會改變實施,因爲它是不是文檔界面的一部分。 –