phpseclib\Crypt\Rijndael::setKeyLength PHP Method

setKeyLength() public method

Valid key lengths are 128, 160, 192, 224, and 256. Note: phpseclib extends Rijndael (and AES) for using 160- and 224-bit keys but they are officially not defined and the most (if not all) implementations are not able using 160/224-bit keys but round/pad them up to 192/256 bits as, for example, mcrypt will do. That said, if you want be compatible with other Rijndael and AES implementations, you should not setKeyLength(160) or setKeyLength(224). Additional: In case of 160- and 224-bit keys, phpseclib will/can, for that reason, not use the mcrypt php extension, even if available. This results then in slower encryption.
public setKeyLength ( integer $length )
$length integer
    function setKeyLength($length)
    {
        switch ($length) {
            case 128:
            case 160:
            case 192:
            case 224:
            case 256:
                $this->key_length = $length >> 3;
                break;
            default:
                throw new \LengthException('Key size of ' . $length . ' bits is not supported by this algorithm. Only keys of sizes 128, 160, 192, 224 or 256 bits are supported');
        }
        parent::setKeyLength($length);
    }

Usage Example

Example #1
0
 /**
  * Sets the key length
  *
  * Valid key lengths are 128, 192, and 256.  If the length is less than 128, it will be rounded up to
  * 128.  If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount.
  *
  * @see \phpseclib\Crypt\Rijndael:setKeyLength()
  * @access public
  * @param Integer $length
  */
 function setKeyLength($length)
 {
     switch ($length) {
         case 160:
             $length = 192;
             break;
         case 224:
             $length = 256;
     }
     parent::setKeyLength($length);
 }