The J-Lan Communicator 1.2 Protocol ----------------------------------- The first objective of the protocol is to fit in the KISS concept: Keep It Simple, Stupid. jlanc uses UDP packets with little headers of 4 or 5 ASCII characters followed of command data (if applicable), altogether bound in a String. jlanc protocol relies in UDP broadcasting and doesn't need a central server, and new clients can join/part easily. This document is provided in order to allow the development of third party clients. Notice this information is provided "AS IS" and the protocol eventually may change in next releases of the program. You may send comments and/or ideas to: Juan J. Martinez History ------- 2003/10/29 version 1.2 2003/07/27 version 1.1 2003/07/13 version 1.0 Command list ------------ /HLO name name: local user name from 1 to 16 of any character but '@', spaces at the begining are removed dst: bcast address desc: this cmd is sent every time a new client joins an ACK reply is spected /BYE dst: bcast address desc: this cmd is sent when a client leaves /ACK name name: local user name from 1 to 16 of any character but '@', spaces at the begining are removed dst: ip address of HLO origin desc: this is the reply to a HLO cmd it's like a HLO cmd, but no reply is spected /MSG data data: message dst: bcast address desc: this is a text message sent to all the users /PRV data data: message dst: ip address of certain user desc: this allows to send a 'private' message to just one user it's like MSG cmd, but using an ip addr instead a bcast addr /AKA name name: nick alias for this user from 1 to 16 of any character but '@', spaces at the begining are removed dst: bcast address desc: this cmd changes the name of this user in the network (aka: also known as), no reply is spected Encryption in J-Lan Communicator -------------------------------- /BLF data data: blowfish ciphered message dst: ip address of certain user desc: sends a private message ciphered with blowfish algorithm it's just like PRV cmd, but data is sent ciphered in base64 form (check RFC 2045). The transformation is: Blowfish/CBC/PKCS5Padding The init vector is: { -45, 66, -121, -4, 91, 71, 88, 118 } About keys in jlanc The key to use in BLF cmd is the byte array of the MD5 of a string provided by the user. The string must be the same in both clients in order to decrypt the message. Notice there's no method to see if the message is deciphered in the right way, so a wrong key should make jlanc print garbage in the output text area in case the data can be decrypted. $Id: jlanc-protocol.txt,v 1.5 2003/10/29 10:16:57 reidrac Exp reidrac $ ** EOF **