On 27-7-2015 14:28, Alex Peshkoff wrote: > On 07/25/2015 12:12 PM, Mark Rotteveel wrote: >> I am getting to a point where I want to implement the protocol 13 and >> new authentication and encryption of Firebird 3 in Jaybird. I'd like to >> know what was changed for protocol 13, and details on how authentication >> and encryption work, and how I can implement it. >> >> I'd prefer a formal description without having to dig and interpret the >> sources, but I assume that is a pipe dream. So if nor formal >> documentation is available, then pointers to specific source >> code/methods would be appreciated. >> > > Mark, I'll be happy to provide you any possible help after return from > vacations (10-Aug).
Thanks. Fortunately Hajime Nakagami has already done a partial protocol 13 implementation (without Srp and wire encryption) as a pull request, so we have a starting point. > In brief handshake in p.13 looks as follows - client sends CONNECT > packet, containing information about login, database client wants to > talk to (required for correct choice of security database on server), > list of known plugins, requirements for line encryption and compression > and some plugin's data (created by the first plugin in that list) for > earlier authentication start. (That data may be ignored by server if > that plugin is not supported by it). Server builds list of common for > client and server plugins and returns it to the client together with > server's line encryption requirements and (may be) handshake data from > plugin. The process of plugin's data exchange between client and server > continues until server agrees to accept connection. At each step server > may break connection for various reasons (failure return from plugin, > different client/server line encryption settings (required vs. > disabled), etc.) > > Details of protocol are as always in src/remote directory, pluguns' code > is in src/auth. Thanks. Mark -- Mark Rotteveel ------------------------------------------------------------------------------ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel