public function isSupported(FOFUtilsPhpfunc $phpfunc = null)
 {
     if (!is_object($phpfunc) || !$phpfunc instanceof $phpfunc) {
         $phpfunc = new FOFUtilsPhpfunc();
     }
     if (!$phpfunc->function_exists('mcrypt_get_key_size')) {
         return false;
     }
     if (!$phpfunc->function_exists('mcrypt_get_iv_size')) {
         return false;
     }
     if (!$phpfunc->function_exists('mcrypt_create_iv')) {
         return false;
     }
     if (!$phpfunc->function_exists('mcrypt_encrypt')) {
         return false;
     }
     if (!$phpfunc->function_exists('mcrypt_decrypt')) {
         return false;
     }
     if (!$phpfunc->function_exists('mcrypt_list_algorithms')) {
         return false;
     }
     if (!$phpfunc->function_exists('hash')) {
         return false;
     }
     if (!$phpfunc->function_exists('hash_algos')) {
         return false;
     }
     $algorightms = $phpfunc->mcrypt_list_algorithms();
     if (!in_array('rijndael-128', $algorightms)) {
         return false;
     }
     if (!in_array('rijndael-192', $algorightms)) {
         return false;
     }
     if (!in_array('rijndael-256', $algorightms)) {
         return false;
     }
     $algorightms = $phpfunc->hash_algos();
     if (!in_array('sha256', $algorightms)) {
         return false;
     }
     return true;
 }