WizardsToolkit
WizardsToolkit is a secure C library offering cross-platform cryptography, hashing, authentication, and data integrity tools. It supports AES, Serpent, SHA-512, and others, enabling developers to build secure applications with features like file digests, MIME type mapping, and random number generation.
Install / Use
/learn @ImageMagick/WizardsToolkitREADME
Introduction to the 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 https://magick.imagemagick.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.
* Compute the message digest of a file.
* Read message digests from a file and verify 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 redunancy checksum
* Handle C exceptions
* Generate a secure hash (includes MD5, SHA-1, SHA-224, SHA-256, SHA-384,
* and SHA-512)
* Generate a keyed-hash for message authentication
* Encipher/decipher 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
