Microsoft.SqlServer.TDS.TDSUtilities.GetEncryptionResponse C# (CSharp) Method

GetEncryptionResponse() public static method

Generate an encryption response based on the client request and server setting
public static GetEncryptionResponse ( TDSPreLoginTokenEncryptionType client, TDSPreLoginTokenEncryptionType server ) : TDSPreLoginTokenEncryptionType
client TDSPreLoginTokenEncryptionType A value received from the client
server TDSPreLoginTokenEncryptionType Configuration of the server
return TDSPreLoginTokenEncryptionType
        public static TDSPreLoginTokenEncryptionType GetEncryptionResponse(TDSPreLoginTokenEncryptionType client, TDSPreLoginTokenEncryptionType server)
        {
            // Check each equivalence class
            if (client == TDSPreLoginTokenEncryptionType.NotSupported)
            {
                // Check server response
                if (server == TDSPreLoginTokenEncryptionType.Off || server == TDSPreLoginTokenEncryptionType.NotSupported)
                {
                    return TDSPreLoginTokenEncryptionType.NotSupported;
                }
                else
                {
                    return TDSPreLoginTokenEncryptionType.Required;
                }
            }
            else if (client == TDSPreLoginTokenEncryptionType.Off)
            {
                // Check corresponding server
                if (server == TDSPreLoginTokenEncryptionType.NotSupported)
                {
                    return TDSPreLoginTokenEncryptionType.NotSupported;
                }
                else if (server == TDSPreLoginTokenEncryptionType.Off)
                {
                    return TDSPreLoginTokenEncryptionType.Off;
                }
                else
                {
                    return TDSPreLoginTokenEncryptionType.Required;
                }
            }
            else if (client == TDSPreLoginTokenEncryptionType.On)
            {
                // Check server
                if (server == TDSPreLoginTokenEncryptionType.Off || server == TDSPreLoginTokenEncryptionType.On || server == TDSPreLoginTokenEncryptionType.Required)
                {
                    return TDSPreLoginTokenEncryptionType.On;
                }
                else
                {
                    throw new ArgumentException("Server is configured to not support encryption", "server");
                }
            }

            // This case is not documented so pick a default
            return TDSPreLoginTokenEncryptionType.Off;
        }