Crypt_Rijndael
[ class tree: Crypt_Rijndael ] [ index: Crypt_Rijndael ] [ all elements ]

Procedural File: Rijndael.php

Source Location: /lib/3rdParty/phpseclib/Crypt/Rijndael.php



Classes:

Crypt_Rijndael
Pure-PHP implementation of Rijndael.


Page Details:

Pure-PHP implementation of Rijndael.

Does not use mcrypt, even when available, for reasons that are explained below.

PHP versions 4 and 5

If setBlockLength() isn't called, it'll be assumed to be 128 bits. If setKeyLength() isn't called, it'll be calculated from setKey(). ie. if the key is 128-bits, the key length will be 128-bits. If it's 136-bits it'll be null-padded to 160-bits and 160 bits will be the key length until setKey() is called, again, at which point, it'll be recalculated.

Not all Rijndael implementations may support 160-bits or 224-bits as the block length / key length. mcrypt, for example, does not. AES, itself, only supports block lengths of 128 and key lengths of 128, 192, and 256. Rijndael-ammended.pdf#page=10 defines the algorithm for block lengths of 192 and 256 but not for block lengths / key lengths of 160 and 224. Indeed, 160 and 224 are first defined as valid key / block lengths in Rijndael-ammended.pdf#page=44: Extensions: Other block and Cipher Key lengths.

Here's a short example of how to use this library:

  1.  <?php
  2.     include('Crypt/Rijndael.php');
  3.  
  4.     $rijndael new Crypt_Rijndael();
  5.  
  6.     $rijndael->setKey('abcdefghijklmnop');
  7.  
  8.     $size 10 1024;
  9.     $plaintext '';
  10.     for ($i 0$i $size$i++{
  11.         $plaintext.= 'a';
  12.     }
  13.  
  14.     echo $rijndael->decrypt($rijndael->encrypt($plaintext));
  15.  ?>

LICENSE: This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA




Tags:

author:  Jim Wigginton <terrafrost@php.net>
version:  $Id: Rijndael.php,v 1.1 2010/05/14 14:06:16 gruberroland Exp $
copyright:  MMVIII Jim Wigginton
link:  http://phpseclib.sourceforge.net
license:  http://www.gnu.org/licenses/lgpl.txt







CRYPT_RIJNDAEL_MODE_CBC [line 95]

CRYPT_RIJNDAEL_MODE_CBC = 2
Encrypt / decrypt using the Code Book Chaining mode.



Tags:


[ Top ]



CRYPT_RIJNDAEL_MODE_CTR [line 83]

CRYPT_RIJNDAEL_MODE_CTR = -1
Encrypt / decrypt using the Counter mode.

Set to -1 since that's what Crypt/Random.php uses to index the CTR mode.




Tags:


[ Top ]



CRYPT_RIJNDAEL_MODE_ECB [line 89]

CRYPT_RIJNDAEL_MODE_ECB = 1
Encrypt / decrypt using the Electronic Code Book mode.



Tags:


[ Top ]




Documentation generated on Sat, 12 Feb 2011 16:36:33 +0100 by phpDocumentor 1.4.1