RustCrypto / password-hashes

Password hashing functions / KDFs
677 stars 84 forks source link

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

Closed michel-slm closed 10 months ago

michel-slm commented 10 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 10 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 10 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 10 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 10 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 10 months ago

PR here: #482