Provides a default implementation of the RV commands used in initializing and communicating over an encrypted IM session via the SecureIM protocol created by the developers of Trillian, an IM client for Windows.

Trillian SecureIM consists of Blowfish encryption with a symmetric 128-bit key negotiated using a Diffie-Hellman key exchange protocol.

About the protocol

Not enough arguments are passed between two clients to satisfy a true Diffie-Hellman key exchange. In Diffie-Hellman, there are three variables normally transmitted by one client, and one sent back by the other. The Trillian Encryption protocol only transmits two from the client and one from the other.

It appears that the missing variable is g, the "generator" or "exponent base," as it is called. This value appears to always be 5.

Normally, a Diffie-Hellman key exchange is 512 or 1024 bits. Trillian SecureIM keys contain only 128 bits.

The normal sequence of commands in a Trillian Secure IM connection is as follows:

For a working sample implementation of Trillian SecureIM using joscar, see the TrillianEncSession class in the joscar demo source distribution. As of this writing, this file is located in demo/src/net/kano/joscardemo/rv/TrillianEncSession.java in the joscar source distribution.

For more details on the protocol, see @see net.kano.joscar.snaccmd.CapabilityBlock#BLOCK_TRILLIANCRYPT