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 WizardLibVersionTextWizardLibSubversion. It runs on Linux, Windows, Mac Os X, iOS, Android OS, and others.

The authoritative Wizard's Toolkit web site is https://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