hgourvest / node-firebird

Pure javascript and asynchronous Firebird client for Node.js.
Mozilla Public License 2.0
252 stars 124 forks source link

Firebird 3 wire protocol implementation #42

Open mariuz opened 9 years ago

mariuz commented 9 years ago

For Firebird 3 we need Protocol 13 (SRP) like is implemented in the pyfirebird driver

https://github.com/nakagami/pyfirebirdsql/blob/master/firebirdsql/wireprotocol.py

mreis1 commented 7 years ago

Is this task still pending?

lucasvrocha commented 3 years ago

@mariuz do you know if this feature will be implemented soon?

mariuz commented 3 years ago

Some old related blog posts and pull requests for dotnet/java

https://nakagami.blog.ss-blog.jp/2016-12-16

and https://nakagami.blog.ss-blog.jp/2016-12-15

mariuz commented 3 years ago

Related release for jaybird with wire encryption support

https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.9/release_notes.html#notes-on-firebird-3-support

mariuz commented 3 years ago

For dotnet https://www.tabsoverspaces.com/233561-ado-net-provider-5-0-0-0-for-firebird-is-ready

mariuz commented 3 years ago

For rust https://github.com/fernandobatels/rsfbclient/pull/22

mariuz commented 3 years ago

related blog post https://nakagami.blog.ss-blog.jp/2014-12-20

mariuz commented 3 years ago

Firebird server side implementation https://github.com/FirebirdSQL/firebird/blob/B3_0_Release/src/auth/SecureRemotePassword/srp.cpp

Debug facility https://sourceforge.net/p/firebird/mailman/message/37168911/

In Srp plugin we have debugging facility:

define SRP_DEBUG 0 // 1 - prints some debug info

                     // 2 - uses consts instead randoms

Using it at level 1 (special FB build on lnux needed) you can at once see what happens on server (and compare with use of fbclient). If it's not enough - use of level 2 required changes at client side (random numbers should be replaced with predefined constants thus making process of authentication exactly reproducible). With it and some debugging printout on client all SRP behavior becomes abs clear.

maratth commented 3 years ago

Work in progress 😄