libsodium 有错误代码吗?

Does libsodium have error codes?

或者任何其他机制来获取函数失败的原因?

我正在调用 crypto_pwhash 但它失败了 (returns -1),原因不明,事实上,完全相同的代码在旧版本的 libsodium 上运行良好。有一个错误代码会使调试更容易。

大多数函数在失败时 return 没有特定的错误代码。

历史表明,使用不同的错误代码进行密码操作可以帮助攻击者进行毁灭性的攻击。

crypto_pwhash 分配内存。因此它可能失败的原因之一是您 运行 内存不足。在这种情况下,errno 将被适当地设置。

还要检查参数是否在允许的范围内。 crypto_pwhash_bytes_min()crypto_pwhash_memlimit_min()crypto_pwhash_memlimit_min() 等函数可以派上用场。例如,鉴于该函数的用途,输出必须至少为 128 位。