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 に答える