Michael W. Bombardieri


Crypt::Elijah - cipher module


    use Crypt::Elijah;

    $text = 'secretive';
    $key = '0123456789abcdef'; 
    $keyref = Crypt::Elijah::init($key);
    Crypt::Elijah::enc($text, $keyref);
    Crypt::Elijah::dec($text, $keyref);


This module provides a pure Perl implementation of the Elijah cipher.

Call init() to prepare the encryption key. This function takes a single argument: a packed string containing your key. The key must be at least 12 bytes long. Keys longer than 16 bytes are truncated. This function returns a reference to the prepared key.

Call enc() and dec() to process your data. These functions take the same parameters. The first argument is a string containing your data. The second argument is a reference returned by init(). Salt is added to your data; ciphertext will always be larger than the corresponding plaintext.


This module is not intended for bulk encryption. It would be more sensible to use an XS encryption module for processing large amounts of data.

It is a good idea to remove redundancy from your data prior to encryption (e.g. using compression); this module has no built-in mechanism for achieving this. Redundancy in your data may allow information to be discovered from the ciphertext.

This module is experimental software and should be used with caution. Please report any bugs to the author.


Michael W. Bombardieri <bombardierix@gmail.com>


Copyright 2007, 2008 Michael W. Bombardieri.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


This software is dedicated to Elijah DePiazza.