RustCrypto / password-hashes

Password hashing functions / KDFs
652 stars 80 forks source link

[argon2] many tests fail on s390x, likely due to endianness issues #481

Closed michel-slm closed 8 months ago

michel-slm commented 8 months ago

I'm packaging argon2 in Fedora, and many tests fail on s390x:

https://koji.fedoraproject.org/koji/taskinfo?taskID=112000146 https://kojipkgs.fedoraproject.org/work/tasks/231/112000231/build.log build.log

Full build.log uploaded since Fedora's build system would garbage collect scratch builds after a couple of weeks.

It succeeds on other architectures - x86_64, aarch64, ppc64le

tarcieri commented 8 months ago

Reproduced, thanks.

That's unfortunate. Normally we run our crates through cross tests to look for this sort of thing, but they were never configured for argon2.

newpavlov commented 8 months ago

These methods introduced in #247 are obviously not endianess-portable.

For BE testing it would be nice to use MIRI instead of cross.

cc @Pjottos

tarcieri commented 8 months ago

These methods introduced in https://github.com/RustCrypto/password-hashes/pull/247 are obviously not endianess-portable.

Aha! Good catch!

For BE testing it would be nice to use MIRI instead of cross.

I don't think that's going to work. The argon2 test suite exercises the full Argon2 algorithm repeatedly with KATs. Miri is going to be way too slow for those to complete in a reasonable timeframe.

tarcieri commented 8 months ago

Okay, got it fixed locally. Will add some cross config in CI and push up a PR.

FWIW I tried running the tests under Miri. I gave it about 10 minutes to get through one of the nontrivial ones and it couldn't complete that, so I don't think it's going to work out in CI.

cross with powerpc-unknown-linux-gnu as the target seems like the fastest option to me.

tarcieri commented 8 months ago

PR here: #482