Is it possible for a client to establish a SSL connection to a server using the server's certificate already exchanged through other means?
The point would be to encrypt the connection using the certificate already with the client and not have to rely on the server to provide it. The server would still have the private key for the certificate the client uses.
This question isn't language specific, but answers specific to python and twisted are appreciated.
In TLS, the server (the side which listen's for connections) always needs a certificate. Client-side certificates may be used only for peer authentication, but not for the channel encryption.
Keep in mind also, that you can't simply "encrypt" a connection without some infrastructure to verify the certificates in some way (using certification authorities, or trust databases for example). Encryption without certificate validity verification does not hold against an active adversary (google for 'man in the middle attack' for more details on this).
SSL connection with client-side certificate