0
または、関数が失敗している理由を取得するための他のメカニズム?libsodiumにエラーコードがありますか?
私はcrypto_pwhash
を呼び出していますが、実際には全く同じコードが古いバージョンのlibsodiumで正常に機能しています。エラーコードがあると、デバッグがずっと楽になります。
または、関数が失敗している理由を取得するための他のメカニズム?libsodiumにエラーコードがありますか?
私はcrypto_pwhash
を呼び出していますが、実際には全く同じコードが古いバージョンのlibsodiumで正常に機能しています。エラーコードがあると、デバッグがずっと楽になります。
ほとんどの関数は、失敗したときに特定のエラーコードを返しません。
歴史上、暗号操作にさまざまなエラーコードを使用すると、攻撃者が致命的な攻撃を行うのに役立つことがありました。
crypto_pwhash
はメモリを割り当てます。だから失敗するかもしれない1つの理由は、あなたが記憶を使い果たしていることです。その場合、errno
が適切に設定されます。
また、パラメータが許容範囲内にあることも確認してください。 crypto_pwhash_bytes_min()
、crypto_pwhash_memlimit_min()
、crypto_pwhash_memlimit_min()
などの関数が便利です。例えば、その機能の目的を考えると、出力は少なくとも128ビットでなければならない。
提案していただきありがとうございます。 errnoは0であり、メモリは豊富です。出力サイズは256ビットです。opslimit(4)とmemlimit(33MB)は許可された範囲内にあります( 'crypto_pwhash_argon2i_memlimit_interactive'と' crypto_pwhash_argon2i_opslimit_interactive'を使って取得しました)。 –
あなたが使用しているパラメータの完全な一覧は何ですか? –
'crypto_pwhash(Key、KeySize、Passwd、Passwd.Size、Salt、4、33554432、0)' 'Key'は32バイト、' Salt'は16バイト、 'Passwd'は可変長です。同じパラメータで 'crypto_pwhash_argon2i'を試してみました。 –