> > Why should the **connection** provide the key? > > Because looking for a key is not a work for a lock. > And keeping the key under a door mat is also generally a bad idea.
Perhaps you are referring to a different "connection" than I am. Could you/someone please confirm the sequence of events in the accessing an encrypted database. Cus when I read/here "connection", I think of the link between the client session and the server process. For me, the sequence of operations for accessing a database would be: - Client initiates connection to remote server, requesting access to database XYZ.fdb (there is nothing new in the connection string other than what is available now) - engine tries to open database XYZ.fdb and read header page - engine determines that header page reads "I am encrypted and need key with name = ABCD" - engine determines (through server/database config settings) which plug-in to use - engine loads/calls plug-in asking "I have database which needs key with name = ABCD, are you able/ready to work?" - if plug-in says "Yes", then the engine proceeds with database open, and all non-header page operations are channeled through the plug-in - if plug-in says "No", then engine stops the database open, and returns error to client. ------------------------------------------------------------------------------ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel