Table of Contents
Enabling SSH/SSL Servers
Mystic BBS uses Cryptlib in order to perform the encryption for SSH and SSL-based servers and clients. This library will be automatically detected on server startup, or whenever an outbound SSH menu action is executed from the BBS itself.
The following sections outline how to install Cryptlib for each particular operating system. Find your operating system in the headings below and follow the instructions (if any) to install Cryptlib. Some versions and OS combinations (for example 1.12 A48 for Windows) should simply work out of the box with no additional steps, others will require compilation and installation of Cryptlib.
Once Cryptlib is installed, most servers will have an SSL setting inside the System Configuration > Servers > Configure Servers editor. You can create new servers or enable/disable servers already created within the editor.
Downloading Cryptlib
If you are running an OS/version that needs to compile/install Cryptlib you can find it at the following links below.
There have been some reported mixed experiences lately interchanging different versions with different operating systems and Mystic. For 64-bit Unix-based systems like Ubuntu the latest 3.4.5 release seems to be working well as reported by users. For 32-bit Unix-based systems, at least one person has said that 3.4.5 did not work and they had to use 3.4.3.1. For these reasons, several releases will be linked to below.
The latest stable version is 3.4.5 at the time of this writing and has been tested in Linux (64-bit) and ships with Windows automatically as of 1.12 A48 (SSL should work out of the box for Windows). Future version compatibility is unknown, but a link is provided to the home page for Cryptlib that could have a newer version. As it stands 3.4.5 is the latest tested version that is compatible with Mystic, newer versions may or may not work.
Download the versions of Cryptlib from the following links below:
Website: https://www.cs.auckland.ac.nz/~pgut001/cryptlib/download.html
Mirror of 3.4.3.1: http://www.mysticbbs.com/downloads/cl3431.zip
Mirror of 3.4.4.1: http://www.mysticbbs.com/downloads/cl3441.zip
Mirror of 3.4.5.0: http://www.mysticbbs.com/downloads/cl345.zip
Windows
In Windows, Mystic looks for the file “cl32.dll” or “cl64.dll” depending on if the 32-bit or 64-bit version of Mystic is being used. As of the 1.12 A48 release Mystic will come with these files included so you do not have to download them. However, if issues should arise you can also find these files in the links within the downloads section.
In addition to the .DLL file, Cryptlib may have a dependency on the Visual C++ runtime which may or may not need to be installed on your particular system. This depends on how the .DLL files themselves were compiled. If you have the appropriate .DLL file in the root Mystic BBS directory but you still get a message on server startup that says Cryptlib is not installed, then you likely need to install a Microsoft runtime that is required by Cryptlib (for example):
https://www.microsoft.com/en-us/download/details.aspx?id=48145
Linux
In Linux, Mystic looks for Cryptlib in the “libcl.so” file, which is created by compiling the source code.
Installing GCC
For many installs of Linux the compiler setup is not included by default, check by typing in a terminal:
gcc -v
If GCC is installed you should see a bunch of stuff printed to the screen, including a version number such as “gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04)”.
If you get no output from gcc then you need to install it. Using a terminal do:
sudo apt-get update sudo apt-get install build-essential
Compiling CryptLib v3.4.5 Notes
CryptLib 3.4.5 requires GCC version 9.x or less because of changes to the Makefile system in newer versions which caused the compilation to fail. Use the following sections to compile CryptLib based on the version you see when typing “gcc -v”.
Compiling for Linux using GCC 9.x and lower
The source is contained in the above download section. Once the file has been downloaded, it must be extracted into its own directory on the Linux machine. The archive has source files that are stored in the Windows format, so it must be extracted and converted to Linux format. This can be done by using the “-a” option of unzip. If this step is skipped, the source code will not properly compile.
The following steps can be executed to compile and install Cryptlib for installations using GCC 9.x and below:
- Download the source code .zip into its own directory (lets say /cryptlib and cl345.zip for this example)
- Switch to the /cryptlib directory where the cl345.zip is located
- Type “unzip -a cl345.zip” to extract the source code ZIP into the /cryptlib directory
- Type “sudo make shared”
- Type “ls libcl*.so*” to see the name of the generated library. For example: libcl.so.3.4.5
- Move the library into the library path and rename it so that Mystic will find it. Execute the following:
- “sudo mv libcl.so.3.4.5 /usr/lib/libcl.so”
You can now delete the /cryptlib directory if you wish. The library is installed and read to be used by Mystic!
Compiling for Linux using GCC 10.x and higher
Newer Linux distributions are now shipping with GCC 11 which has depreciated some functions used in the Makefile for Cryptlib 3.4.5 causing the compile to fail. To work around this, either the source code needs to be updated, or a copy of GCC 9 must be installed in order to compile Cryptlib.
These steps outline the instructions for compiling by installing an older gcc rather than making any changes to the actual source code. Thanks to Alisha Stutz of swissIRC BBS for the steps below used to compile Cryptlib 3.4.5 on Ubuntu 22.04 LTS:
sudo apt-get update sudo apt-get install build-essential sudo apt-get install gcc-9 g++-9 sudo apt-get install zip unzip sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 9 wget http://www.mysticbbs.com/downloads/cl345.zip mkdir cl345 cd cl345 unzip -ax ../cl345.zip sudo make shared sudo mv libcl.so.3.4.5 /usr/lib/libcl.so sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 11
If at this point you still have MIS running you must stop and restart it. If you previously had attempted to install Cryptlib you may need to delete your ssl.cert when MIS is shutdown:
sudo rm /mystic/data/ssl.cert
Apple macOS (Intel)
In macOS, Mystic looks for Cryptlib in the “libcl.dylib” file, which must be created by compiling the source code.
The source is contained in the above download section. Once the file has been downloaded, it must be extracted into its own directory on the OS X machine. The archive has source files that are stored in the Windows format, so it must be extracted and converted to Unix format. This can be done by using the “-a” option of unzip. If this step is skipped, the source code will not properly compile.
The following steps can be executed to compile and install Cryptlib:
- Download the source code .zip into its own directory (lets say /cryptlib and cl3441.zip for this example)
- Switch to the /cryptlib directory where the cl3441.zip is located
- Type “unzip -a cl3441.zip” to extract the source code ZIP into the /cryptlib directory
- Type “sudo make shared”
- Type “ls libcl*.dylib*” to see the name of the generated library. For example: libcl.3.4.4.dylib
- Move the library into the library path and rename it so that Mystic will find it. Execute the following:
- “sudo mv libcl.3.4.4.dylib /usr/lib/libcl.dylib”
You can now delete the /cryptlib directory if you wish. The library is installed and read to be used by Mystic!