Esempio n. 1
0
 /**
  * Creates the key schedule
  *
  * @see DES::_setupKey()
  * @see Base::_setupKey()
  * @access private
  */
 function _setupKey()
 {
     switch (true) {
         // if $key <= 64bits we configure our internal pure-php cipher engine
         // to act as regular [1]DES, not as 3DES. mcrypt.so::tripledes does the same.
         case strlen($this->key) <= 8:
             $this->des_rounds = 1;
             break;
             // otherwise, if $key > 64bits, we configure our engine to work as 3DES.
         // otherwise, if $key > 64bits, we configure our engine to work as 3DES.
         default:
             $this->des_rounds = 3;
             // (only) if 3CBC is used we have, of course, to setup the $des[0-2] keys also separately.
             if ($this->mode_3cbc) {
                 $this->des[0]->_setupKey();
                 $this->des[1]->_setupKey();
                 $this->des[2]->_setupKey();
                 // because $des[0-2] will, now, do all the work we can return here
                 // not need unnecessary stress parent::_setupKey() with our, now unused, $key.
                 return;
             }
     }
     // setup our key
     parent::_setupKey();
 }