Skip to content

Conversation

@tniessen
Copy link
Member

Based on my understanding of RFC 8017, when hashAlgorithm is set but saltLength is not, the value of saltLength associated with the key pair should default to the digest size of hashAlgorithm, not to 0.

I am not sure why OpenSSL uses 0. I suspect it is because we don't call EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen and 0 is the least restrictive value, at least within OpenSSL. This behavior can still be restored by explicitly setting saltLength to 0.

I'd argue that this is a bug fix. If we are concerned about semverity, I could modify this PR to only affect the new options (#39927) and keep the behavior of the old options intact. Personally, I don't think it's necessary to go that route.

@nodejs-github-botnodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. crypto Issues and PRs related to the crypto subsystem. needs-ci PRs that need a full CI run. labels Sep 5, 2021
Copy link
Member

@jasnelljasnell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 to treating this as a bug fix

@tniessentniessen requested a review from panvaSeptember 5, 2021 18:42
@nodejs-github-bot
Copy link
Collaborator

@panvapanva added author ready PRs that have at least one approval, no pending requests for changes, and a CI started. and removed needs-ci PRs that need a full CI run. labels Sep 5, 2021
@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@panva
Copy link
Member

panva commented Sep 7, 2021

@tniessen something's up with openssl3 and the first of the two tests > see here.

tniessen added a commit to tniessen/node that referenced this pull request Sep 7, 2021
@tniessen
Copy link
MemberAuthor

Thanks @panva. I believe it's a difference in behavior between OpenSSL 1.1.1 and OpenSSL 3. It seems to be unrelated to this change and there weren't any tests for this case as far as I can tell. I attempted a fix in #40031.

@tniessentniessen added the blocked PRs that are blocked by other issues or PRs. label Sep 7, 2021
panva pushed a commit that referenced this pull request Sep 9, 2021
Refs: #39999 PR-URL: #40031 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Filip Skokan <[email protected]>
@nodejs-github-bot
Copy link
Collaborator

@panvapanva removed the blocked PRs that are blocked by other issues or PRs. label Sep 9, 2021
@tniessentniessenforce-pushed the crypto-fix-rsa-pss-keygen-default-saltlength branch from d6dbc3c to db358bfCompareSeptember 9, 2021 15:39
@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@panva
Copy link
Member

panva commented Sep 9, 2021

Landed in a42bd7e

@panvapanva closed this Sep 9, 2021
panva pushed a commit that referenced this pull request Sep 9, 2021
PR-URL: #39999 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Filip Skokan <[email protected]>
@tniessen
Copy link
MemberAuthor

Thanks for reviewing everyone.

BethGriggs pushed a commit that referenced this pull request Sep 21, 2021
Refs: #39999 PR-URL: #40031 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Filip Skokan <[email protected]>
BethGriggs pushed a commit that referenced this pull request Sep 21, 2021
PR-URL: #39999 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Filip Skokan <[email protected]>
@BethGriggsBethGriggs mentioned this pull request Sep 21, 2021
1 task
@tniessentniessen deleted the crypto-fix-rsa-pss-keygen-default-saltlength branch October 7, 2021 16:42
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author readyPRs that have at least one approval, no pending requests for changes, and a CI started.c++Issues and PRs that require attention from people who are familiar with C++.cryptoIssues and PRs related to the crypto subsystem.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@tniessen@nodejs-github-bot@panva@jasnell@cjihrig