또는 함수가 실패하는 이유를 알아내는 다른 메커니즘?libsodium에 오류 코드가 있습니까?
저는 crypto_pwhash
을 호출하고 있습니다. 분명히 이유가 없으므로 -1이 반환됩니다. 사실 동일한 코드가 이전 버전의 libsodium에서 제대로 작동했습니다. 오류 코드가 있으면 디버깅이 훨씬 쉬워집니다.
또는 함수가 실패하는 이유를 알아내는 다른 메커니즘?libsodium에 오류 코드가 있습니까?
저는 crypto_pwhash
을 호출하고 있습니다. 분명히 이유가 없으므로 -1이 반환됩니다. 사실 동일한 코드가 이전 버전의 libsodium에서 제대로 작동했습니다. 오류 코드가 있으면 디버깅이 훨씬 쉬워집니다.
대부분의 함수는 실패 할 때 특정 오류 코드를 반환하지 않습니다.
암호 연산에 다른 오류 코드를 사용하면 공격자가 치명적인 공격을 수행하는 데 도움이 될 수 있음을 역사적으로 보여줍니다.
crypto_pwhash
은 메모리를 할당합니다. 따라서 실패 할 수있는 한 가지 이유는 당신이 기억이 부족하다는 것입니다. 이 경우 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'를 시도했습니다. –