CryptoSys KeyExchange Linux Version (unsupported) $Revision: 1.0.0 $ $Date: 2007-02-20 16:11:00 $ INTRODUCTION The Linux version of CryptoSys KeyExchange is a static library file `diCrKX.a'. Include `diCrKX.h' in your source code and link to this library. Please read the `Copyright Notice and Terms' below before using. TEST PROGRAMS There are two test programs included, `kx_min.c' and `diCrKX_Example.c'. The former is a minimal program; the latter is a the same set of detailed tests supplied with the Windows version. The separate program to generate a seed file `MkRngSeed.c' is also included. * GENERAL COMPILATION gcc MYPROG.c -L: diCrKX.a -o MYPROG * EXAMPLE 1: gcc kx_min.c -L: diCrKX.a -o kx_min ./kx_min This should display the one-line output: "Version=100" (or similar, depending on the version you have). * EXAMPLE 2: gcc diCrKX_Example.c -L: diCrKX.a -o diCrKX_Example ./diCrKX_Example This should display a long series of Diffie-Hellman and other tests starting with "DLL module details..." and finishing with "...tested OK." As part of the tests it will ask you to "Please hit random keys until you reach 100%", which it uses to generate a high-security random number. If there is an unexpected result in the tests, the program will abort with an assert error. COMPILATION The static library file diCrKX.a has been created by compiling the source code using gcc -c -fPIC and combined into a library using ar rcs diCrKX.a $(OBJECTS) The static library was created on a Pentium 4 system with Fedora Core 1 Kernel 2.4.22 using gcc version 3.3.2 (Red Hat Linux 3.3.2-1). It should work on all compatible 32-bit Intel-based Linux systems. If it works for you, please use it. If you have any suggestions, please forward them to us at . DOCUMENTATION See the manual available at . DIFFERENCES BETWEEN LINUX VERSION AND WINDOWS * KX_LicenceType will return 'U'. * KX_ModuleName has no relevance (it returns the source file name). * No automatic checks on first run (because, unlike a DLL, it's not `loaded'). Call KX_PowerUpTests yourself. * No software integrity check (which relies on presence of a DLL file, which doesn't exist here). * Console display of dots to indicate progress while generating a key with the `ShowProgress' option only displays when finished, so isn't much use. COPYRIGHT NOTICE AND TERMS The code and static library for CryptoSys KeyExchange ("the Software") is copyright (C) 2006-7 D.I. Management Services Pty Ltd, all rights reserved. You are welcome to use the Software as part of your own applications provided due credit is given. Use at your own risk. This is an unsupported version and you must make your own checks as to its suitability and accuracy for your purposes. You may not distribute the Software separately except as part of your own value-added application. David Ireland and DI Management Services Pty Limited ("the Author") make no representations concerning either the merchantability of the Software or the suitability of the Software for any particular purpose. It is provided "as is" without express or implied warranty of any kind. In no event shall the Author be liable for any damages in connection with or arising out of the use of the Software by any person whatsoever, including incidental, indirect, special or consequential damages, or any damages related to loss of use, revenue or profits, even if the Author has been advised of the possibility of such damages. By using the Software you expressly agree to such a waiver. If you do not agree to these terms, do not use the Software. David Ireland DI Management Services Pty Ltd www.di-mgt.com.au www.cryptosys.net