Wizard's Toolkit

The Wizard's Toolkit provides command-line utilities to convert plaintext to ciphertext, convert ciphertext to plaintext, report properties associated with ciphertext, compute the message digest of a file, and read message digests from a file and authenticate them. In addition, the Wizard's Toolkit includes a cross-platform C API that includes a number of encryption and hash methods many developers should find useful in their projects.

Wizard's Toolkit is free software delivered as a ready-to-run binary distribution or as source code that you may use, copy, modify, and distribute in both open and proprietary applications. It is distributed under a derived Apache 2.0 license.

The current release is Wizard's Toolkit 1.0.9-4. It runs on Linux, Windows, Mac Os X, iOS, Android OS, and others.

The authoritative Wizard's Toolkit web site is http://urban-warrior.org/. The authoritative source code repository is https://github.com/ImageMagick/WizardsToolkit.

Features and Capabilities

Here are just a few examples of what the Wizard's Toolkit command line utilities can do:

  • Convert plaintext to ciphertext
  • Convert ciphertext to plaintext
  • Report properties associated with ciphertext
  • Import, export, or list properties of private keys on your keyring
  • Compute the message digest of a file
  • Read message digests from a file and authenticate them

Here are just a few examples of what the Wizard's Toolkit Application Programming Interface can do:

  • Return files as Binary Large OBjectS
  • Write/read characters, shorts, words, and long words to/from a file
  • Compute a cyclic redundancy checksum
  • Handle C exceptions
  • Generate a secure hash (includes MD5, SHA-1, SHA 2, and SHA 3)
  • Generate a keyed-hash for message authentication
  • Encrypt/decrypt messages (includes AES, Serpent, and Twofish)
  • Authenticate a user (only secret-key supported at this time)
  • Map content with its associated mime type and file extension
  • Log events to the console or XML-style file
  • Anonymous memory-mapped memory allocation/deallocation
  • Increase entropy with message compression
  • Generate cryptographically-strong random numbers
  • Acquire/relinquish resources
  • Acquire/relinquish semaphores
  • Store/retrieve key-value pairs to/from a hashmap or linked-list
  • Store/retrieve key-value pairs to/from a self-adjusting binary tree
  • Parse or generate a XML document
  • Convenience methods for dealing with strings