JDxpc DXPC in pure JavaTM by ymnk, JCraft, Inc. http://www.jcraft.com/jdxpc/ Last modified: Tue Nov 14 15:37:28 UTC 2000 Description =========== JDxpc is an re-implementation of dxpc(Differential X Protocol Compressor) in pure Java. dxpc is an X protocol compressor designed to improve the speed of X11 applications run over low-bandwidth links (such as dialup PPP connections). More detailed descriptions about dxpc are available at its home page, http://www.vigor.nu/dxpc/index.html Features ======== * JDxpc is under LGPL. * JDxpc is compatible to dxpc-3.7.0. * JDxpc encrypts the data stream in SSL/STL. * JDxpc supports MultiClientProxy. How To Try ========== Suppose that you are in front of a machine, named 'local', on which the X server is running and you want to run x clients on a machine, named 'remote'. Try, * on remote: java com.jcraft.jdxpc.ClientProxy * on local: xhost +localhost * on local: java com.jcraft.jdxpc.ServerProxy remote * on remote: export DISPLAY=localhost:8.0 * on remote: xterm If "remote" is a big endian machine, JDxpc may not work correctly. Encrypting The Compressed Data Stream ======================================== In JDxpc, the data stream between ClientProxy and ServerProxy can be encrypted in SSL/STL. To use this functionality, Java2 and JSSE(JavaTM Secure Socket Extension) are required. JSSE is available at http://java.sun.com/products/jsse/ . The JSSE is distributed as a zip file. It includes 'doc' and 'lib' directory. To install the JSSE, copy the jar files from 'lib' directory to the 'jre/lib/ext' directory underneath your java SDK main directory. For example, on my system, I copied the jar files to '/jdk1.3/jre/lib/ext'. You will also need to register the SSL cryptographic provider with the Java runtime system. To do this, add next line to '/jre/lib/ext/security/java.security', security.provider.2=com.sun.net.ssl.internal.ssl.Provider How To Encrypt The Compressed Data Stream ========================================= Suppose that you are in front of a machine, named "local", on which the X server is running and you want to run x clients on a machine, named "remote". Try, * on remote: cd ./jdxpc-0.0.4 * on remote: java com.jcraft.jdxpc.SSLClientProxy Wait for a while until 'SSLClinetProxy starts' is printed out. * on local: cd ./jdxpc-0.0.4 * on local: xhost +localhost * on local: java com.jcraft.jdxpc.SSLServerProxy remote Wait for a while until 'SSLServerProxy starts' is printed out. * on remote: export DISPLAY=localhost:8.0 * on remote: xterm On this session, keystores in 'misc' directory are used. They are just for demonstrations and don't use them for your work You should substitute them with your own certificates. Credits ======= Needless to say, JDxpc has been based on the awesome works of dxpc authors. * Brian Pane(brianp@cnet.com) is an original author of dxpc. * Zachary Vonler(lightborn@mail.utexas.edu) is a current maintainer. Many thanks to them and many contributes of dxpc. Specially, we would thank to Brain Pane, who kindly allow us to distribute JDxpc under LGPL. Documentation ============= Read before asking. * README files all over the source tree have info related to the stuff in the directories. * ChangeLog: what changed from the previous version? Directories & Files in the Source Tree ====================================== * com/ has source trees of JDxpc. * misc/ has keystores for demonstrations of the encryption. Copyrights & Disclaimers ======================== JDxpc is copyrighted by ymnk, JCraft Inc. and is licensed through the GNU Library General Public License. Read the COPYING file for the complete license. If you have any comments, suggestions and questions, write us at jdxpc@jcraft.com