Convert Plaintext to Ciphertext and Back From the Command-line
The Wizard's Toolkit includes a number of command-line utilities for encrypting, identifying, or decrypting files.
The The Wizard's Toolkit command-line tools exit with a status of 0 if the command line arguments have a proper syntax and no problems are encountered. Expect a descriptive message and an exit status of 1 if any exception occurs such as improper syntax, a problem reading or writing an file, or any other problem that prevents the command from completing successfully.
In the paragraphs below, find a short description for each command-line tool. Click on the program name to get details about the program usage and a list of command-line options that alters how the program behaves. If you are just getting acquainted with The Wizard's Toolkit, start with the encipher program.
- encipher
- convert plaintext to ciphertext.
- decipher
- convert ciphertext to plaintext.
- cipher-info
- describe the format and characteristics of one or more encrypted files.
- keyring
- import, export, or list properties of keys on your keyring.
- digest
- return a message digest for one or more files or read message digests from a file and authenticate them.
To get you started, here is a brief example of how you might use these utilities:
$ encipher -keyring keyring.xdm secret-message.txt secret-message.cip
Enter the passphrase (maximum of 4096 characters)
Enter passphrase:
Enter same passphrase again:
$ cipher-info secret-message.cip
Filename: secret-message.cip
Cipher:
type: AES
mode: CTR
nonce: 61ae70a6a47793b40000000000000000
Authenticate:
method: Secret
Key:
hash: SHA256
length: 512
id: d596e432a92b2e60c76c104958d16dbe8a67519001249b69b46bfade54e6ac8c
Entropy Generator:
type: BZip
level: 6
Keyed-Hashed Message Authentication Code:
hash: SHA256
Random Generator:
hash: SHA256
Chunksize: 256kb
Dates:
modify: 2009-02-29T10:39:18-05:00
create: 2009-02-29T10:39:18-05:00
timestamp: 2009-02-29T10:41:48-05:00
Protocol: 1.0
Version: WizardsToolkit 1.0.5 02/29/08 http://urban-warrior.org
$ keyring keyring.xdm -
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:keyring="http://urban-warrior.org/WizardsToolkit/keyring/1.0/">
<keyring:Keyring rdf:about="keyring.xdm">
<keyring:modify-date>2009-02-29T10:41:48-05:00</keyring:modify-date>
<keyring:create-date>2009-02-29T10:41:48-05:00</keyring:create-date>
<keyring:timestamp>2009-02-29T10:41:48-05:00</keyring:timestamp>
</keyring:Keyring>
<keyring:Key rdf:about="d596e432a92b2e60c76c104958d16dbe8a67519001249b69b46bfade54e6ac8c">
<keyring:memberOf rdf:resource="keyring.xdm"/>
<keyring:nonce>1d443b7e02ae82040000000000000000</keyring:nonce>
<keyring:timestamp>2009-02-29T10:41:48-05:00</keyring:timestamp>
<keyring:protocol>1.1</keyring:protocol>
</keyring:Key>
</rdf:RDF>
$ decipher -keyring keyring.xdm secret-message.cip public-message.txt
Enter the passphrase (maximum of 4096 characters)
Enter passphrase:
Enter same passphrase again:
$ digest secret-message.txt public-message.txt -
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:digest="http://urban-warrior.org/WizardsToolkit/digest/1.0/">
<digest:Content rdf:about="secret-message.txt">
<digest:timestamp>2009-02-29T10:42:03-05:00</digest:timestamp>
<digest:modify-date>2009-02-29T10:39:18-05:00</digest:modify-date>
<digest:create-date>2009-02-29T10:39:18-05:00</digest:create-date>
<digest:extent>9113</digest:extent>
<digest:sha256>90ca62d8a67e43f86b67162e6a5804612e2c45d44a014760c49e1999b9fb344e</digest:sha256>
</digest:Content>
<digest:Content rdf:about="public-message.txt">
<digest:timestamp>2009-02-29T10:42:03-05:00</digest:timestamp>
<digest:modify-date>2009-02-29T10:39:18-05:00</digest:modify-date>
<digest:create-date>2009-02-29T10:39:18-05:00</digest:create-date>
<digest:extent>8196</digest:extent>
<digest:sha256>90ca62d8a67e43f86b67162e6a5804612e2c45d44a014760c49e1999b9fb344e</digest:sha256>
</digest:Content>
</rdf:RDF>
To decrypt cyphertext, you'll need the cypertext and the keyring. Without the keyring, there is no hope of recovering the original plaintext.