├── .github └── workflows │ └── php.yml ├── .gitignore ├── LICENSE ├── README.md ├── composer.json ├── phpunit.xml ├── psalm.xml ├── src ├── MultiFactorInterface.php ├── OTP │ ├── HOTP.php │ ├── OTPInterface.php │ └── TOTP.php ├── OneTime.php └── Vendor │ └── GoogleAuth.php └── test ├── GoogleAuthTest.php ├── HOTPTest.php ├── TOTPTest.php └── fixtures ├── 01af3168cf7dbe47c7da88e595f2c34357f9bc2b54314d7e3f65572daa7e30e97ca2ef7716edc7c30b1792b53e35a68834094e9da3c3d815058d54e26545389a.qrcode.txt ├── 3532ed4f5457b06c9eb3b0c0d9bc2b7c4a5d0576519dc5abf4cfce1af2d216b70a6ffd7a0a12558897cb778973e8711cb16955c2a455ea111ad5d0b9d9f22bce.qrcode.txt ├── 68aa8b264cdc6ddc8a667802dc5169c8ba56f2932452b41869739c57a086c57812c4d6eea5ad0dda8aaa06795c62c5b03773be106668c39953b8ae3e4ca87a06.qrcode.txt └── 9efd625902fbeedfda8c7f37d84b9e27eec0db1577363348a2d333bf3cc422444f644568c10c91c845675552b2b74cb865e0fb2fa1fcdbdd02e5a707af65cae5.qrcode.txt /.github/workflows/php.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/.github/workflows/php.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor/ 2 | /composer.lock 3 | .phpunit.result.cache 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/README.md -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/composer.json -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/phpunit.xml -------------------------------------------------------------------------------- /psalm.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/psalm.xml -------------------------------------------------------------------------------- /src/MultiFactorInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/src/MultiFactorInterface.php -------------------------------------------------------------------------------- /src/OTP/HOTP.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/src/OTP/HOTP.php -------------------------------------------------------------------------------- /src/OTP/OTPInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/src/OTP/OTPInterface.php -------------------------------------------------------------------------------- /src/OTP/TOTP.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/src/OTP/TOTP.php -------------------------------------------------------------------------------- /src/OneTime.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/src/OneTime.php -------------------------------------------------------------------------------- /src/Vendor/GoogleAuth.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/src/Vendor/GoogleAuth.php -------------------------------------------------------------------------------- /test/GoogleAuthTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/test/GoogleAuthTest.php -------------------------------------------------------------------------------- /test/HOTPTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/test/HOTPTest.php -------------------------------------------------------------------------------- /test/TOTPTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/test/TOTPTest.php -------------------------------------------------------------------------------- /test/fixtures/01af3168cf7dbe47c7da88e595f2c34357f9bc2b54314d7e3f65572daa7e30e97ca2ef7716edc7c30b1792b53e35a68834094e9da3c3d815058d54e26545389a.qrcode.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/test/fixtures/01af3168cf7dbe47c7da88e595f2c34357f9bc2b54314d7e3f65572daa7e30e97ca2ef7716edc7c30b1792b53e35a68834094e9da3c3d815058d54e26545389a.qrcode.txt -------------------------------------------------------------------------------- /test/fixtures/3532ed4f5457b06c9eb3b0c0d9bc2b7c4a5d0576519dc5abf4cfce1af2d216b70a6ffd7a0a12558897cb778973e8711cb16955c2a455ea111ad5d0b9d9f22bce.qrcode.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/test/fixtures/3532ed4f5457b06c9eb3b0c0d9bc2b7c4a5d0576519dc5abf4cfce1af2d216b70a6ffd7a0a12558897cb778973e8711cb16955c2a455ea111ad5d0b9d9f22bce.qrcode.txt -------------------------------------------------------------------------------- /test/fixtures/68aa8b264cdc6ddc8a667802dc5169c8ba56f2932452b41869739c57a086c57812c4d6eea5ad0dda8aaa06795c62c5b03773be106668c39953b8ae3e4ca87a06.qrcode.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/test/fixtures/68aa8b264cdc6ddc8a667802dc5169c8ba56f2932452b41869739c57a086c57812c4d6eea5ad0dda8aaa06795c62c5b03773be106668c39953b8ae3e4ca87a06.qrcode.txt -------------------------------------------------------------------------------- /test/fixtures/9efd625902fbeedfda8c7f37d84b9e27eec0db1577363348a2d333bf3cc422444f644568c10c91c845675552b2b74cb865e0fb2fa1fcdbdd02e5a707af65cae5.qrcode.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paragonie/multi_factor/HEAD/test/fixtures/9efd625902fbeedfda8c7f37d84b9e27eec0db1577363348a2d333bf3cc422444f644568c10c91c845675552b2b74cb865e0fb2fa1fcdbdd02e5a707af65cae5.qrcode.txt --------------------------------------------------------------------------------