Description
I'm writing a C# client for Apache Kudu, and using NegotiateStream for kerberos authentication. I have it working, but there's an odd difference between running the client on Windows vs Linux. After AuthenticateAsClient succeeds, I need to exchange some kerberos protected messages.
On Linux, only ProtectionOptions.EncryptAndSign
works, and on Windows only ProtectionOptions.Sign
works.
On Windows, specifying ProtectionOptions.EncryptAndSign
gives this error:
Protocol error: A received message contains a valid signature but it was not encrypted as required by the effective Protection Level
On Linux, specifying ProtectionOptions.Sign
gives this error:
System.PlatformNotSupportedException: Requested protection level is not supported with the GSSAPI implementation currently installed
Is this expected, and I should just do a runtime check to select the one that works, or is something misconfigured somewhere?