Incompatible wire encryption levels requested on client and server with Firebird ado.net provider

Marcoscdoni picture Marcoscdoni · May 28, 2016 · Viewed 15k times · Source

I am testing the connection firebird 3 using C #. The version of what I'm used is the latest : Firebird ADO.NET Provider 5.0. But when you make the connection , the error occurs "Incompatible wire encryption levels requested on client and server"."

At "Does Firebird ADO.NET 4.10.0.0 Data provider work with Firebird 3.0?", there are some suggestions for enabling authentication in legacy model or create legacy user.

But my question is if really does not support to new SRP authentication model in version 5.0 Net Provider?

Answer

Mark Rotteveel picture Mark Rotteveel · May 28, 2016

The problem has nothing to do with SRP in itself, but that the Firebird .NET provider version 5.0.0.0 only added SRP support, but does not yet implement the wire protocol encryption. This wire protocol encryption does - by default - depend on SRP for its session key, but the fact SRP is implemented, does not imply that wire protocol encryption is implemented.

Firebird 3 by default requires encryption, but as this is not supported in Firebird .NET provider version 6 and earlier, you get the error "Incompatible wire encryption levels requested on client and server".

To be able to use wire encryption, you need to update to Firebird ADO.net provider version 7. Version 7 added support for wire encryption, see ADO.NET provider 7.0.0.0 for Firebird is ready for more information.

Or, alternatively, you need to configure Firebird 3 to enable but not require encryption by editing firebird.conf:

WireCrypt = Enabled

And then restarting Firebird.