OpenCDK - Open Crypto Development Kit v0.6 ------------------------------------------ This library provides basic parts of the OpenPGP message format. For reference, please read the RFC 2440 document. Due to some possible security problems, the library also implements parts of the new RFC 4480. Until the complete migration and the test suite has been finished, the status of the project is still *BETA*. !!! In the current state the library is not thread-safe and thus extra care must be taken in a MT environment !!!! Primary site for this library ============================= The library is no real website yet, but it has a development environment which provides mailing lists, a bug tracker, forums and other useful facilities. URL: http://developer.berlios.de/projects/opencdk/ To download the source or other possible related files use this URL: http://developer.berlios.de/project/showfiles.php?group_id=8366 An alternative, this site should be preferred, is: http://josefsson.org/gnutls/releases/opencdk/ Possible applications for the library ===================================== For example GnuTLS uses this library to convert the OpenPGP keys into a generic or better TLS specifc format to use them for authentication. In general, this lib can be used to convert OpenPGP keys into a native format which can be used in any program that supports public key encryption in any way. Even so the lib is not powerful as a full fledged openPGP application, it still can be used for encrypting and decrypting data. With the cdk_data_transform() function this can be done directcly on buffers. For example in web applications to secure form data or any other user data. Or for Instant Messangers to secure the typed message and to make sure the text can be only read by the receiver. It might be also useful for authentication of data or user sessions. How to correctly start the library ================================== There is not much to do before you can use the library, but to make sure that all internal structures are completely initialized, the application should always use cdk_lib_startup (); and in the exit routine of the program cdk_lib_shutdown (); to make sure that all global resources and structures are properly freed. WARNING: If opencdk is used in an application which also uses libgcrypt function and especially call some initialisation function at the begin, extra care must be taken. mingw32 build support ===================== The library can be build for the mingw32 system. The autogen script can be used for the convience. $ ./autogen --build-w32 But you need import libs of libgpg-error and libgcrypt. It is also possible to use static libs, but it is not suggested. By default libz support is not available on mingw32 systems and thus the library cannot compress or decompress any data. All modern openpgp systems use compression and thus the library is pretty useless without libz support, at least for data encryption. mingw32 and WINE ================ Currently it is not possible to use the mingw32 build for automated build & check procedures. The current code has some problems with the W32->Posix mapping that is done in WINE. API documentation ================= In the doc/ directory, you can find a HTML-API overview. In the tests/ directory, you can find some regression tests. Libraries you'll also need for using all parts: libzlib - ftp.uu.net/pub/archiving/zip/zlib/ (optinal!) libgcrypt - ftp.gnupg.org/gcrypt/libgcrypt Contributions ============= This library is free software under the terms of the GNU General Public License. Anyone is free to redistribute it under the terms of COPYING and/or modify it. If you are interested in contributing code under the terms above, you are welcome. Check the TODO list for items to do. But before please send me a mail to make sure that I or any other is working on this item.