/** * Generate a set of mOTP shared parameters. * * @param MotpConfigurationInterface $configuration The configuration to generate shared parameters for. * * @return MotpSharedParametersInterface The generated shared parameters. */ public function generateMotp(MotpConfigurationInterface $configuration) { return new MotpSharedParameters($this->isolator()->mcrypt_create_iv($configuration->secretLength()), str_pad($this->isolator()->mt_rand(0, 9999), 4, '0', STR_PAD_LEFT), $this->isolator()->time(), $this->isolator()); }
/** * Generate an mOTP value. * * @link http://motp.sourceforge.net/#1.1 * * @param MotpConfigurationInterface $configuration The configuration to use for generation. * @param MotpSharedParametersInterface $shared The shared parameters to use for generation. * * @return OtpValueInterface The generated mOTP value. */ public function generateMotp(MotpConfigurationInterface $configuration, MotpSharedParametersInterface $shared) { return new MotpValue(md5(strval(intval($shared->time() / $configuration->window())) . bin2hex($shared->secret()) . $shared->pin())); }