Skip to content

Alternative TLS implementation using WinAPI Schannel #646

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

Open
Kazmirchuk opened this issue Apr 3, 2023 · 3 comments
Open

Alternative TLS implementation using WinAPI Schannel #646

Kazmirchuk opened this issue Apr 3, 2023 · 3 comments

Comments

@Kazmirchuk
Copy link

Kazmirchuk commented Apr 3, 2023

Hello,
The current support TLS in nats.c based exclusively on OpenSSL has certain concerns on Windows, such as:

  • no integration with the Windows certificate store out-of-the-box (I can workaround it by loading all certificates myself into natsOptions_SetCATrustedCertificates but I'm still not sure about reliability of this approach)
  • OpenSSL is not available on Windows, so we need to ship our own build of OpenSSL in our product's installer, which might complicate (or even make impossible) the audit for STIG or FIPS 140-2 etc

These drawbacks can be avoided if nats.c includes an alternative TLS implementation using Windows Schannel Security Service Provider - something like this example, I suppose. Git is a notable example of an application that supports both OpenSSL and Schannel backends.

I realize that this work might be far beyond your commitment, so I'm raising this enhancement issue to ask, whether you would accept a PR with this implementation.

@Kazmirchuk
Copy link
Author

Kazmirchuk commented Aug 7, 2023

any opinion on this?
btw I noticed support for Windows certificate store in the NATS roadmap as well

@Kazmirchuk
Copy link
Author

Hello,

this is still relevant for us. Would a PR be welcome or this does not fit in your roadmap? do other NATS clients allow to choose a TLS backend?

@levb
Copy link
Collaborator

levb commented Mar 14, 2025

@Kazmirchuk I don't really see why we would not (gratefully) accept a PR that provided an optional, Windows-native implementation. Elsewhere we rely on OpenSSL, and do not have other optional implementations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants