/**
  * Default Constructor.
  *
  * Determines whether or not the mcrypt extension should be used.
  *
  * $mode could be:
  *
  * - CRYPT_DES_MODE_ECB
  *
  * - CRYPT_DES_MODE_CBC
  *
  * - CRYPT_DES_MODE_CTR
  *
  * - CRYPT_DES_MODE_CFB
  *
  * - CRYPT_DES_MODE_OFB
  *
  * - CRYPT_DES_MODE_3CBC
  *
  * If not explicitly set, CRYPT_DES_MODE_CBC will be used.
  *
  * @see Crypt_DES::Crypt_DES()
  * @see Crypt_Base::Crypt_Base()
  * @param optional Integer $mode
  * @access public
  */
 function Crypt_TripleDES($mode = CRYPT_MODE_CBC)
 {
     switch ($mode) {
         // In case of CRYPT_DES_MODE_3CBC, we init as CRYPT_DES_MODE_CBC
         // and additional flag us internally as 3CBC
         case CRYPT_DES_MODE_3CBC:
             parent::__construct(CRYPT_MODE_CBC);
             // Was:  parent::Crypt_Base(CRYPT_MODE_CBC);
             $this->mode_3cbc = true;
             // This three $des'es will do the 3CBC work (if $key > 64bits)
             $this->des = array(new Crypt_DES(CRYPT_MODE_CBC), new Crypt_DES(CRYPT_MODE_CBC), new Crypt_DES(CRYPT_MODE_CBC));
             // we're going to be doing the padding, ourselves, so disable it in the Crypt_DES objects
             $this->des[0]->disablePadding();
             $this->des[1]->disablePadding();
             $this->des[2]->disablePadding();
             break;
             // If not 3CBC, we init as usual
         // If not 3CBC, we init as usual
         default:
             parent::__construct($mode);
             // Was:  parent::Crypt_Base($mode);
     }
 }