AB Software Design - Programming, Localization, Testing
Crypt -Technical Data

Crypt is a Visual C++ encryption/decryption application for Windows XP/2000/NT/98/95. Each user has a key pair: a public key and a private key. By distributing your public key, any other user who has installed Crypt on her computer can use it to encrypt a message that only you, the owner of the corresponding private key, can decrypt. Other encryption/decryption applications based on this principle exist, but what makes Crypt different is that it is very easy to use. It neither requires a complex setup, nor third parties have to be called upon for key generation and distribution. Crypt integrates directly with the default mail client application on your computer and a couple of mouse clicks is all that is needed to send encrypted email attachments or to decrypt received email attachments.
Crypt also includes functions to encrypt/decrypt files that will not be necessarily attached to emails.

Installation
Installation merely requires copying the .exe in a Programs directory.

Public keys import/export
A user public key is simply a file that can be emailed to a correspondent. By copying this file in Crypt's installation directory and inputting its name in the Encrypt dialog box when sending the email, the correspondent generates an encrypted file that only the owner of the public key can decrypt.

Localization
Crypt is available for download in three separate versions, English, French and Italian, complete with Help, and can be easily localized in other languages.
All text strings are not hard coded into a resource description, but originate from a single string table in the .rc file. Thus static text strings for user interface components have not been input into the development environment component design dialogs, but are written dynamically by specific function calls at initialization.

Help
Online Help includes a complete user manual and description of all Crypt-specific commands.

Software design
Crypt can operate on two document types: it can decrypt/encrypt its own encrypted format .cyo, and open and save standard .txt files. The operating system will associate Crypt to the .cyo extension.
This application is totally self contained, as it is statically linked. It does not add dynamic link libraries to the operating system, and its foreign language versions also contains the localized os resources (such as print previews, error messages etc.), without relying on the host os to provide the resource of the correct version and language. Although it was originally developed with language specific dlls, static linking was subsequently preferred for ease and simplicity of installation. As size of the executable is small even in the statically linked version, there was no real advantage in a dynamically linked version.
Crypt has its own MAPI processing function: as it does not rely on the ready-made send mail function provided by the Visual C++ development environment, it can also work with mail clients other than Outlook.

Cryptography
Crypt uses the Microsoft Cryptographic Application Programming Interface (CryptoAPI) to create public/private key pairs, and uses the public key of the recipient to encrypt a randomly generated session key for an RC2 block encryption algorithm.
At the recipient side, Crypt decrypts the encrypted session key with the recipient's private key and then uses the decrypted session key to decrypt the blocks of encrypted text.
The trial version features 512 bit public/private RSA keys and 40 bit session keys.
The standard version, EasyCryptEmail, features 2048 bit public/private RSA keys and 128 bit session keys.
As the encryption library (CryptoAPI) is included in the operating system, downloading Crypt does not constitute export/import of a cryptographic product.


Samples Skills Download Links Contact Home

Samples
Skills
Download
Links
Contact
Home