nats.c icon indicating copy to clipboard operation
nats.c copied to clipboard

Alternative TLS implementation using WinAPI Schannel

Open Kazmirchuk opened this issue 2 years ago • 3 comments
trafficstars

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 avatar Apr 03 '23 08:04 Kazmirchuk

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

Kazmirchuk avatar Aug 07 '23 12:08 Kazmirchuk