-
Notifications
You must be signed in to change notification settings - Fork 30k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
subset of small-order Ed25519 vectors is failing in WPTs #54572
Comments
crypto.subtle
inconstistent verificationcrypto.subtle
verification failing Web Platform Tests
To further complicate things when you acknowledge these failures as expected then in jenkins on s390x some of those vectors actually pass. But they're not flaky. Our results are also not that different from other implementers, see wpt.fyi. Normally I would just acknowledge these failures myself but because on jenkins s390x some of these failures pass and that we can't dynamically set the expectations, I left WebCryptoAPI WPTs not updated. The Curve25519 secure curves part of the WICG spec is not yet merged into WebCryptoAPI so these are in theory still tentative. And it would seem the browser vendors are not willing to implement specific checks beyond what the crypto libraries do either. |
crypto.subtle
verification failing Web Platform Tests
I'm happy to just skip these as expected failures, I just figured opening an issue and getting all the information would be better to do beforehand. |
You can't skip individual vectors, only the whole file, which is also not something we'd like to do. |
IIRC you can using the For example, "getRandomValues.any.js": {
"fail": {
"note": "These types do not exist in Node.js",
"expected": [
"Float16 arrays",
"Float arrays",
"DataView"
]
} |
You just didn't get to run full CI yet to encounter this. I did as soon as the WPTs landed. |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
Refs: #54572 Refs: #54468 PR-URL: #54593 Refs: #54572 Refs: #54468 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Refs: #54572 Refs: #54468 PR-URL: #54593 Refs: #54572 Refs: #54468 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Refs: #54572 Refs: #54468 PR-URL: #54593 Refs: #54572 Refs: #54468 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Refs: #54572 Refs: #54468 PR-URL: #54593 Refs: #54572 Refs: #54468 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Refs: nodejs#54572 Refs: nodejs#54468 PR-URL: nodejs#54593 Refs: nodejs#54572 Refs: nodejs#54468 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Refs: nodejs#54572 Refs: nodejs#54468 PR-URL: nodejs#54593 Refs: nodejs#54572 Refs: nodejs#54468 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
node/test/wpt/status/WebCryptoAPI.cjs Line 30 in d5d1e80
I see these tests fail on s390 z13 while they succeed on s390 z15. On z13, {
"sign_verify/eddsa_small_order_points.https.any.js": {
"fail": {
"unexpected": [
"Ed25519 Verification checks with small-order key of order - Test 0",
"Ed25519 Verification checks with small-order key of order - Test 11"
],
"expected": [
"Ed25519 Verification checks with small-order key of order - Test 1",
"Ed25519 Verification checks with small-order key of order - Test 2",
"Ed25519 Verification checks with small-order key of order - Test 12",
"Ed25519 Verification checks with small-order key of order - Test 13"
]
}
}
} |
I've been working on upgrading the Web Platform Tests in PR #54468, but I'm running into an issue with the WebCryptoAPI tests failing. After investigating, I found that I could reproduce the problem in Node.js. The error seems to be related to the
crypto.subtle
API, which isn't producing the expected results when verifying data in Ed25519.FWIW Node.js isn't the only runtime per https://wpt.fyi/results/WebCryptoAPI/sign_verify/eddsa.https.any.html?label=experimental&label=master&aligned
The original error from running the Web Platform Tests is:
My minimal reproduction is:
Results:
Expand for a version with all tests, including passing ones
CC @nodejs/crypto
The text was updated successfully, but these errors were encountered: