+++ /dev/null
-<?php
-/**
- * A HubcoinReward Feature class
- *
- * @author Roland Haeder <webmaster@ship-simu.org>
- * @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Hub Developer Team
- * @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-class HubcoinRewardFeature extends BaseFeature implements Feature {
- /**
- * Protected constructor
- *
- * @return void
- */
- protected function __construct () {
- // Call parent constructor
- parent::__construct(__CLASS__);
- }
-
- /**
- * Creates an instance of this Feature class and prepares it for usage
- *
- * @return $featureInstance An instance of this Feature class
- */
- public final static function createHubcoinRewardFeature () {
- // Get a new instance
- $featureInstance = new HubcoinRewardFeature();
-
- // Return the prepared instance
- return $featureInstance;
- }
-
- /**
- * Checks whether this feature can be made available to other classes.
- *
- * @return $isAvailable Whether this feature is available
- */
- public function isFeatureAvailable () {
- // Debug message
- //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d]: CALLED!', __METHOD__, __LINE__));
-
- // Testing this feature is pretty simple:
- $isAvailable = (($this->getConfigInstance()->getConfigEntry('extension_scrypt_loaded') === TRUE) && (extension_loaded('scrypt')) && (is_callable('scrypt')));
-
- // Debug message
- //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d]: isAvailable=%d - EXIT!', __METHOD__, __LINE__, intval($isAvailable)));
-
- // Return status
- return $isAvailable;
- }
-
- /**
- * Feature method 'generateHash'
- *
- * @param $data Data to hash
- * @return $hash Finished hash
- */
- public function featureMethodGenerateHash ($data) {
- // Debug message
- //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d]: data()=%d - CALLED!', __METHOD__, __LINE__, strlen($data)));
-
- // Make sure the feature is available
- assert(FrameworkFeature::isFeatureAvailable('hubcoin_reward'));
-
- // Call inner class
- $hash = Scrypt::hashScrypt($data);
-
- // Debug message
- //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d]: hash=%s - EXIT!', __METHOD__, __LINE__, $hash));
-
- // Return generated hash
- return $hash;
- }
-
- /**
- * Feature method 'checkHash'
- *
- * @param $data Data to check hash for
- * @param $hash Previously generated hash for valdiation
- * @return $isValid Whether the given hash matches a new one from given data
- */
- public function featureMethodCheckHash ($data, $hash) {
- // Debug message
- //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d]: data()=%d,hash=%s - CALLED!', __METHOD__, __LINE__, strlen($data), $hash));
-
- // Make sure the feature is available
- assert(FrameworkFeature::isFeatureAvailable('hubcoin_reward'));
-
- // Determine it
- $isValid = Scrypt::checkScrypt($data, $hash);
-
- // Debug message
- //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(sprintf('[%s:%d]: isValid=%d - EXIT!', __METHOD__, __LINE__, intval($isValid)));
-
- // Return status
- return $isValid;
- }
-}
-
-// [EOF]
-?>