Crypt-Skip32

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

      bytes (for 32 bits).

    keysize

        my $keysize = $cipher->keysize;
        my $keysize = Crypt::Skip32->keysize;

      Returns the size (in bytes) of the key. This is always 10 bytes (for
      80 bits).

NOTES

    If Crypt::Skip32::XS is installed, this module will use it and the
    constructor will return an object of that type, though the interface is
    identical. You can stick with the pure Perl version by setting the
    CRYPT_SKIP32_PP environment variable before using this module.

    If reporting a bug, please try to determine (if possible) if it is this
    module or the XS one, and report it to the corresponding maintainer.

EXAMPLE

    This sample code demonstrates how Crypt::Skip32 can be used to encrypt
    unsigned integers and encode them for use in web URLs, form values, and
    other places where short encrypted text might be useful.

      use Crypt::Skip32;
    
      # Create a cipher. Change the long hex string to your secret key.
      my $key         = pack("H20", "112233445566778899AA");
      my $cipher      = new Crypt::Skip32 $key; # Always 10 bytes!
    
      # Encrypt an unsigned integer (under 2^32) into an 8-digit hex string.
      my $number      = 3493209676;
      my $plaintext   = pack("N", $number);
      my $ciphertext  = $cipher->encrypt($plaintext); # Always 4 bytes!
      my $cipherhex   = unpack("H8", $ciphertext);
      print "$number encrypted and converted to hex: $cipherhex\n";
    
      # Decrypt an encrypted, hexified unsigned integer.
      my $ciphertext2 = pack("H8", $cipherhex);
      my $plaintext2  = $cipher->decrypt($ciphertext2); # Always 4 bytes!
      my $number2     = unpack("N", $plaintext2);
      print "$cipherhex converted back and decrypted: $number2\n";

    The above code generates the output:

      3493209676 encrypted and converted to hex: 6da27100
      6da27100 converted back and decrypted: 3493209676

CAVEATS

    This initial alpha Perl implementation of Crypt::Skip32 has not been
    extentively reviewed by cryptographic experts, nor has it been tested
    extensively on many different platforms. It is recommended that this
    code not be used for applications which require a high level of
    security.

    Reviewers and testers welcomed.

    Though this module has been coded to follow a Crypt::CBC usable
    interface, it is not intended for use in encrypting long chunks of
    text. For those purposes, it is suggested you use another high quality,
    proven cipher with a longer block size.

INSTALLATION

    If your Linux distro does not have a prepared package for this module,
    then the preferred method for installation is directly from the CPAN
    using a command like:

        sudo cpan Crypt::Skip32

SOURCE

    The source for this module is being maintained on github:

        https://github.com/alestic/Crypt-Skip32

    Forks and patches will be reviewed, but please be aware that the
    targeted functionality of this particular module is very narrow.

    Feel free to build other abstractions on top of this module if you want
    to make it easier to use or to create a particular application for its
    use.

BUGS

    Problems and feature requests can be submitted through the github
    "issues" link:

        https://github.com/alestic/Crypt-Skip32/issues

    A gentle reminder sent directly to the author (below) may also help
    increase awareness and attention.

SEE ALSO

    The original SKIP32 implementation in C by Greg Rose:
    http://www.qualcomm.com.au/PublicationsDocs/skip32.c

    The 80-bit key, 64-bit block Skipjack cipher created by the NSA (Perl
    code maintained by Julius C. Duque): Crypt::Skipjack

    Crypt::Skip32::XS

AUTHOR

    Perl code maintained by Eric Hammond <eric-cpan-2@thinksome.com>
    http://www.anvilon.com

    Original SKIP32 C code written 1999-04-27 by Greg Rose, based on an
    implementation of the Skipjack algorithm written by Panu Rissanen.

CREDITS

    The following have contributed to the Perl version:

        John Laur
        Joe Edmonds
        gray



( run in 0.546 second using v1.01-cache-2.11-cpan-e1769b4cff6 )