Packages to build a complete secure shell (version 1 and 2) client.

See:
          Description

Main packages
com.mindbright.ssh2 Implements the secure shell version 2 protocol suite.
examples Sample code which shows how to use the MindTerm classes.

 

Helper packages
com.mindbright.application The main classes for the MindTerm applications.
com.mindbright.asn1 Package for reading and writing ASN1 strcutures.
com.mindbright.gui Package containing misc GUI convenience classes.
com.mindbright.net Package containing misc, non ssh, network protocol convenience classes.
com.mindbright.net.ftp Package containing classes for handling FTP.
com.mindbright.net.telnet Package containing classes for handling the telnet protocol.
com.mindbright.sshcommon Package containing common ssh classes which are applicable to both ssh1 and ssh2.
com.mindbright.terminal Package containing the terminal emulator window classes.
com.mindbright.util Package containing misc.

 

Crypto packages
com.mindbright.jca.security This package contains a cryptographic architecture compatible with java.security.
com.mindbright.jca.security.cert This package contains a cryptographic architecture compatible with java.security.cert.
com.mindbright.jca.security.interfaces This package contains a cryptographic architecture compatible with java.security.interfaces.
com.mindbright.jca.security.spec This package contains a cryptographic architecture compatible with java.security.spec.
com.mindbright.jce.crypto This package contains a cryptographic engine compatible with javax.crypto.
com.mindbright.jce.crypto.interfaces This package contains cryptographic interfaces compatible with javax.crypto.interface.
com.mindbright.jce.crypto.spec This package contains cryptographic classses compatible with javax.crypto.spec.
com.mindbright.security The Mindbright JCA/JCE cryptographic provider.
com.mindbright.security.cipher Encryption classes.
com.mindbright.security.digest Digest calculating classes.
com.mindbright.security.keystore Keystore handling classes.
com.mindbright.security.mac Message Authentication Code classes.
com.mindbright.security.pkcs1 PKCS#1 objects handling classes.
com.mindbright.security.pkcs12 Classes which handle PKCS#12 files and objects.
com.mindbright.security.pkcs7 Handles PKCS#7 objects.
com.mindbright.security.pkcs8 Handles private keys stored in PKCS#8 format.
com.mindbright.security.prng Pseudo random number generators.
com.mindbright.security.publickey Public key operation classes.
com.mindbright.security.x509 Classes for handling x509 certificates.

 

SSH1 packages
com.mindbright.ssh Classes for handling the SSH v1.5 protocol.

 

Packages to build a complete secure shell (version 1 and 2) client. The cleanest packages are com.mindbright.security.* and com.mindbright.ssh2.*. Most other packages are somewhat clean and structured. Beware of the package com.mindbright.ssh though since it contains lots of deprecated code which is only needed to build the complete MindTerm client which is in places overly complex and somewhat unstructured. We strongly advice against building ssh1 enabled clients if it at all can be avoided.

People looking for the ssh2 implementation need only look in the com.mindbright.ssh2 package. The only external packages needed are com.mindbright.jce.crypto.*, com.mindbright.jca.security.*, com.mindbright.security.*, and com.mindbright.util. To be able to utilize the terminal the com.mindbright.terminal package have to be added aswell. Finally the packages com.mindbright.net.* and com.mindbright.sshcommon contains useful stuff (like proxy connection classes and scp1 file transfer protocol).

It is possible to build the whole code using another crypto provider and/or javax.crypto.* package (given that all needed algorithms are available). Please note though that since some Java environments doesn't contain a full set of java.security.* and javax.crypto.* packages we have implemented everything that is needed by our implementation and put it into the packages com.mindbright.jca.security.*. and com.mindbright.jce.crypto.*. This is convenient since it makes the code independent from the java.security.* and javax.crypoto.* packages available. However, since java has no good way of doing conditional compilation (like #ifdef in C) changing to another crypto provider and/or changing to the real java.security.* packages means you will have to replace the com.mindbright.jca.security.* with java.security.* and com.mindbright.jce.crypto.* with javax.crypto.* everywhere in the code.