Crypt_AES

# Procedural File: AES.php

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

## Classes:

Crypt_AES
  Pure-PHP implementation of AES.

## Page Details:

Pure-PHP implementation of AES.

Uses mcrypt, if available, and an internal implementation, otherwise.

PHP versions 4 and 5

If Crypt_AES::setKeyLength() isn't called, it'll be calculated from Crypt_AES::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.

Since Crypt_AES extends Crypt_Rijndael, some functions are available to be called that, in the context of AES, don't make a whole lot of sense. setBlockLength(), for instance. Calling that function, however possible, won't do anything (AES has a fixed block length whereas Rijndael has a variable one).

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

1. <?php
2. include('Crypt/AES.php');
4. $aes = new Crypt_AES ();
6. $aes->setKey('abcdefghijklmnop');
8. $size = 10 * 1024;
9. $plaintext = '';
10. for ($i = 0; $i < $size; $i++) {
11. $plaintext.= 'a';
12. }
14. echo $aes->decrypt($aes->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: AES.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

#### Includes:

require_once('Rijndael.php') [line 66]
Include Crypt_Rijndael

### CRYPT_AES_MODE_CBC [line 92]

`CRYPT_AES_MODE_CBC = 2`

Encrypt / decrypt using the Code Book Chaining mode.

#### Tags:

see: | Crypt_AES::decrypt()
see: | Crypt_AES::encrypt()
link: | http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29
access: | public

[ Top ]

### CRYPT_AES_MODE_CTR [line 80]

`CRYPT_AES_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:

see: | Crypt_AES::decrypt()
see: | Crypt_AES::encrypt()
link: | http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29
access: | public

[ Top ]

### CRYPT_AES_MODE_ECB [line 86]

`CRYPT_AES_MODE_ECB = 1`

Encrypt / decrypt using the Electronic Code Book mode.

#### Tags:

see: | Crypt_AES::decrypt()
see: | Crypt_AES::encrypt()
link: | http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29
access: | public

[ Top ]

Documentation generated on Thu, 28 Oct 2010 21:00:04 +0200 by phpDocumentor 1.4.1