Unix
Mac OS X
Windows
Options
Unix
Windows

# Convert Plaintext to Ciphertext and Back with the Wizard's Toolkit API

The Wizard's Toolkit API is a low-level interface between the C programming language and the Toolkit's libraries. A description of the public methods are found here:

- American Encryption Standard Methods
- Authentication Methods
- Binary Large OBjectS Methods
- Bzip Entropy Methods
- Client Methods
- Cyclic Redunancy Checksum Methods
- Secure Cipher Methods
- Entropy Methods
- Exception Methods
- File Methods
- Secure Hash Algorithm Methods
- Hash-map and Linked-list Methods
- Keyed-Hashing for Message Authentication
- Key Methods
- Keyring Methods
- LZMA Entropy Methods
- Log Events
- Wizard Methods
- Message Digest Algorithm Methods
- Memory Allocation Methods
- Mime Methods
- Option Methods
- Passphrase Methods
- Random Numbers Methods
- Get/Set Resources
- Environment Sanitazion Methods
- Secret Authentication Methods
- Semaphore Methods
- Secure Hash Algorithm-256 Methods
- Secure Hash Algorithm-224 Methods
- Secure Hash Algorithm-256 Methods
- Secure Hash Algorithm-384 Methods
- Secure Hash Algorithm-512 Methods
- Self-adjusting Binary Tree Methods
- Serpent Cipher Methods
- String Methods
- Timing Methods
- Token Methods
- TwoFish Cipher Methods
- Version Methods
- XML Parser Methods
- Zip Entropy Methods

After you write your Toolkit program, compile it like this:

      cc `WizardsToolkit-config --cflags --cppflags` -o wizard wizard.c `WizardsToolkit-config --ldflags --libs`

Here is a example program that utilizes the Wizard's Toolkit API to get you started, wizard.c. It simply computes and prints the Secure Hash Algorithm 512-bit digest of a string.

      #include <stdio.h>
      #include <wizard/WizardsToolkit.h>

      int main(int argc,char **argv)
      {
        HashInfo
          *hash_info;

        StringInfo
          *content;

        WizardsToolkitGenesis(*argv);
        hash_info=AcquireHashInfo(SHA512Hash);
        InitializeHash(hash_info);
        content=StringToStringInfo("The Wizard's Toolkit");
        UpdateHash(hash_info,content);
        FinalizeHash(hash_info);
        PrintStringInfo("Content",content);
        PrintStringInfo("Digest",GetHashDigest(hash_info));
        DestroyHashInfo(hash_info);
        DestroyStringInfo(content);
        WizardsToolkitTerminus();
        return(0);
      }

Discourse Server