31 lines
996 B
PHP
31 lines
996 B
PHP
<?php
|
|
|
|
// Router de compatibilidad del paquete crypto.
|
|
|
|
use Libs\Crypto;
|
|
use Libs\Nonce;
|
|
use Libs\Router;
|
|
use Libs\TwoFactorAuthenticator;
|
|
|
|
Router::get('/compat/crypto/roundtrip', function () {
|
|
$plain = 'secreto: 42 ✓';
|
|
$hex = Crypto::encryptHex($plain);
|
|
$b64 = Crypto::encrypt64($plain);
|
|
$ok = Crypto::decryptHex($hex) === $plain
|
|
&& Crypto::decrypt64($b64) === $plain
|
|
&& Crypto::decrypt(Crypto::encrypt($plain)) === $plain;
|
|
echo $ok ? 'CRYPTO_OK' : 'CRYPTO_MISMATCH';
|
|
});
|
|
|
|
Router::get('/compat/crypto/nonce', function () {
|
|
$n = Nonce::get('compat');
|
|
echo (Nonce::check($n, 'compat') && !Nonce::check($n . 'x', 'compat')) ? 'NONCE_OK' : 'NONCE_FAIL';
|
|
});
|
|
|
|
Router::get('/compat/crypto/2fa', function () {
|
|
$tfa = new TwoFactorAuthenticator();
|
|
$secret = $tfa->createSecret(16);
|
|
$code = $tfa->getCode($secret);
|
|
echo ($tfa->verifyCode($secret, $code, 0) && !$tfa->verifyCode($secret, '000000', 0)) ? 'TFA_OK' : 'TFA_FAIL';
|
|
});
|