Skip to content
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

Add options to tls.getCiphers() to get more specific information about cipher suites #42077

Closed
thernstig opened this issue Feb 22, 2022 · 3 comments
Labels
feature request Issues that request new features to be added to Node.js. stale tls Issues and PRs related to the tls subsystem.

Comments

@thernstig
Copy link
Contributor

thernstig commented Feb 22, 2022

What is the problem this feature will solve?

Currently https://nodejs.org/api/tls.html offers two ways to show cipher suites.

node -p crypto.constants.defaultCoreCipherList | tr ':' '\n' shows the set of default enabled (and disabled) cipher suites in Node.js.
tls.getCiphers() shows the set of supported cipher suites in Node.js.

Enabled and supported cipher suites are not the same (see #42059 (comment) and #42063). Even if a cipher suite is enabled, it might not be supported. And the other way around even if a cipher suite is supported, it might not be enabled.

Many organisations needs to know the exact cipher suites used. We need an intersection of the enabled AND supported cipher suites.

What is the feature you are proposing to solve the problem?

I propose that tls.getCiphers() gets extended with an optional parameter that takes a string/enum such as SUPPORTED (default), ENABLED_AND_SUPPORTED, ENABLED etc.

What alternatives have you considered?

I have found none. There is currently no way to expand the default configured list of cypher suites into a list of all the cipher suites, like the command openssl ciphers does. openssl ciphers converts textual OpenSSL cipher lists into ordered SSL cipher preference lists.

I could run openssl ciphers CIPHERLIST locally on my machine, but the problem with that is that it would use my local openssl CLI's version of the openssl library, and not the built-in openssl library version used in Node.js.

In addition, some of the enabled cipher suites from that list is not even supported as seen from tls.getCiphers() (see #42059 (comment)).

@thernstig thernstig added the feature request Issues that request new features to be added to Node.js. label Feb 22, 2022
@VoltrexKeyva VoltrexKeyva added the tls Issues and PRs related to the tls subsystem. label Feb 23, 2022
@thernstig thernstig changed the title Add options to tls.getCiphers() tp get more specific information about cipher suites Add options to tls.getCiphers() to get more specific information about cipher suites Mar 2, 2022
@targos targos moved this to Pending Triage in Node.js feature requests Apr 4, 2022
@github-actions
Copy link
Contributor

There has been no activity on this feature request for 5 months and it is unlikely to be implemented. It will be closed 6 months after the last non-automated comment.

For more information on how the project manages feature requests, please consult the feature request management document.

@github-actions github-actions bot added the stale label Aug 30, 2022
@github-actions
Copy link
Contributor

There has been no activity on this feature request and it is being closed. If you feel closing this issue is not the right thing to do, please leave a comment.

For more information on how the project manages feature requests, please consult the feature request management document.

@thernstig
Copy link
Contributor Author

I felt this was a very valid request in todays world with increased security observability.

@targos targos moved this from Pending Triage to Stale in Node.js feature requests Apr 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request Issues that request new features to be added to Node.js. stale tls Issues and PRs related to the tls subsystem.
Projects
None yet
Development

No branches or pull requests

2 participants