0

或任何其他机制来获取功能失败的原因?

我正在打电话crypto_pwhash,它没有明显的原因失败(返回-1),实际上完全相同的代码在旧版本的 libsodium 上运行良好。有一个错误代码将使调试更容易。

4

1 回答 1

1

大多数函数在失败时不会返回特定的错误代码。

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

crypto_pwhash分配内存。所以它可能失败的一个原因是你的内存不足。在这种情况下,errno将适当设置。

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

于 2017-03-21T22:46:47.827 回答