AxCrypt2Go Design Goals and Decisions

This details the ongoing progress of defining the design goals of AxCrypt2Go, as well as the decisions taken to realize these goals.

Main Goals

The primary design goals of AxCrypt2Go is to provide the same basic feature-set as AxCrypt 1.x, with some differences.

Please comment! Go to the feature request forum hosted by SourceForge - use the "Submit New" menu choice, select AxCrypt2Go as the category. (You do not need to register, although it does enable you to monitor responses via e-mail).

1. User Visible Major Functions
  1. Decryption - Encrypted files may be decrypted.
  2. Encryption - Plain files may be encrypted.
  3. Double-click style Decrypt-Application Launch-Re-Encrypt à la AxCrypt, or functionally similar mechanism.
  4. Explorer style interface.
  5. Drag and drop.
  6. Minimize to tray.
  7. Keys can optionally be cached for encrypt and/or decryption.
  8. Directory-local persistent options.
  9. Single executable file with no dependencies and no installation required for basic operation.
  10. Optionally installable for extended operation such as for double-click decryption, and shell extension right-click à la AxCrypt 1.x.
  11. Integrated preference notification, and version update availability check.
  12. Huge file support for Win98/ME too.
2. Globalization
  1. Fully Unicode-aware, including file names, passphrases etc.
  2. Optional language packs for any language that works with Unicode in the operating environment.
  3. User-contributed translations that does not require any static linking to the application.
3. Operating Environment
  1. Compatible with Windows 98 with Unicode support or later. Later versions may provide better security/functionality.
  2. Persistent configuration information stored in XML-files on a per-directory basis - no more registry keys.
  3. Prepared for cross platform porting, e.g. Macintosh, Linux, Unix etc.
4. Security
  1. Compatible with AxCrypt 1.x, but stronger cryptographic primitives for encryption.
  2. Careful memory usage to reduce risk of passphrases and plain text in swap file or other places in the system.
5. Programmatic Access
  1. Command Line compatible with AxCrypt (within reason).
  2. Direct but malware resistant access to keys in GUI-free key cache server.
  3. Optional static library/dynamic library.
  4. Optional .NET managed code wrapper for library.
6. Axantum Internal
  1. No more NSIS!
  2. Small bloat-factor. Less is More (within reason).
  3. Resident fully GUI-free in-memory user mode key cache server.
  4. Fully streamable file format - one pass encryption/decryption/authentication.
  5. Available as open source under GNU GPL.
  6. Available to OEMs and corporations via different licenses than GNU GPL.
  7. Customizable from a single source code base for OEMs and corporations.
  8. No more memory mapping - all file I/O via regular API.
  9. Built-in licensing technology.
  10. Smarter update notifications via web service and automatic e-mail confirmation.
7. Various Lesser Features
  1. Automatic anonymous rename when encrypting.
  2. Display real name and other info in tool-tip style info when hover over encrypted file with key in cache.
  3. Remember location of key-file per-directory if enabled.
  4. Optionally display entered passphrase in dialog.
  5. Support key-file from command line.
  6. Re-encrypt all files in a directory when closing.
  7. Warn when decrypting to a network device.
  8. Change GUI language at any time.
  9. Keyboard shortcuts and accelerators implemented wherever appropriate.
  10. Integrated md5/sha-1/sha-512 etc checksum via property sheets or other way.
  11. Support paranoid mode wiping, i.e. Gutmann multi-pass etc.
  12. Recycle Bin wiping.
  13. Virtual keyboard and/or other modes of passphrase entry for Windows Mobile etc.
  14. Encrypt and send as mail attachment. Send-to aware?
  15. Support for WebDAV download launch of decrypt-open - if possible.