diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-01-09 10:55:03 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-01-09 13:09:38 +0100 |
| commit | 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch) | |
| tree | 5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/vendor/pragmarx/google2fa | |
| parent | 7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff) | |
| download | ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2 ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip | |
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/vendor/pragmarx/google2fa')
28 files changed, 3721 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa/.scrutinizer.yml b/srcs/phpmyadmin/vendor/pragmarx/google2fa/.scrutinizer.yml new file mode 100644 index 0000000..c24935c --- /dev/null +++ b/srcs/phpmyadmin/vendor/pragmarx/google2fa/.scrutinizer.yml @@ -0,0 +1,40 @@ +checks: + php: + remove_extra_empty_lines: true + remove_php_closing_tag: true + remove_trailing_whitespace: true + fix_use_statements: + remove_unused: true + preserve_multiple: false + preserve_blanklines: true + order_alphabetically: true + fix_php_opening_tag: true + fix_linefeed: true + fix_line_ending: true + fix_identation_4spaces: true + fix_doc_comments: true + +filter: + paths: [src/*] + excluded_paths: [tests/*] + +coding_style: + php: { } + +build: + tests: + override: + - + command: 'vendor/bin/phpunit -c phpunit.xml' + coverage: + file: 'coverage/coverage-clover.xml' + format: 'clover' + nodes: + analysis: + tests: + override: + - php-scrutinizer-run + tests: true + +tools: + external_code_coverage: true diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa/.travis.yml b/srcs/phpmyadmin/vendor/pragmarx/google2fa/.travis.yml new file mode 100644 index 0000000..3faa27c --- /dev/null +++ b/srcs/phpmyadmin/vendor/pragmarx/google2fa/.travis.yml @@ -0,0 +1,31 @@ +dist: trusty +language: php + +php: + - 7.1 + - 7.2 + - 7.3 + - 7.4snapshot +# - nightly + +# This triggers builds to run on the new TravisCI infrastructure. +# See: http://docs.travis-ci.com/user/workers/container-based-infrastructure/ +sudo: false + +## Cache composer +cache: + directories: + - $HOME/.composer/cache + +before_script: + - travis_retry composer update ${COMPOSER_FLAGS} --no-interaction --prefer-dist + +script: + - vendor/bin/phpunit --coverage-text --coverage-clover=coverage.clover + +after_script: + - | + if [[ "$TRAVIS_PHP_VERSION" == '7.2' ]]; then + wget https://scrutinizer-ci.com/ocular.phar + php ocular.phar code-coverage:upload --format=php-clover coverage.clover + fi diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa/CHANGELOG.md b/srcs/phpmyadmin/vendor/pragmarx/google2fa/CHANGELOG.md new file mode 100644 index 0000000..80b8a98 --- /dev/null +++ b/srcs/phpmyadmin/vendor/pragmarx/google2fa/CHANGELOG.md @@ -0,0 +1,83 @@ +## Change Log + +## [6.0.0] - 2019-09-11 +### Added +- Base exception class and interfaces +### Removed +- Support for PHP 5.4 to 7.0, will keep supporting PHP 7.1, 7.2, 7.3 & 7.4 + +## [5.0.0] - 2019-05-19 +### Changed +- Remove dead Google Charts API + +## [4.0.0] - 2018-10-06 +### Changed +- Bacon QRCode package removed + +## [3.0.1] - 2018-03-15 +### Changed +- Relicensed to MIT + +## [3.0.0] - 2018-03-07 +### Changed +- It's now mandatory to enable Google Api secret key access by executing `setAllowInsecureCallToGoogleApis(true);` + +## [2.0.4] - 2017-06-22 +### Fixed +- Fix Base32 to keep supporting PHP 5.4 && 5.5. + +## [2.0.3] - 2017-06-22 +## [2.0.2] - 2017-06-21 +## [2.0.1] - 2017-06-20 +### Fixed +- Minor bugs + +## [2.0.0] - 2017-06-20 +### Changed +- Drop the Laravel support in favor of a bridge package (https://github.com/antonioribeiro/google2fa-laravel). +- Using a more secure Base 32 algorithm, to prevent cache-timing attacks. +- Added verifyKeyNewer() method to prevent reuse of keys. +- Refactored to remove complexity, by extracting support methods. +- Created a package playground page (https://pragmarx.com/google2fa) + +## [2.0.0] - 2017-06-20 +### Changed +- Drop the Laravel support in favor of a bridge package (https://github.com/antonioribeiro/google2fa-laravel). +- Using a more secure Base 32 algorithm, to prevent cache-timing attacks. +- Added verifyKeyNewer() method to prevent reuse of keys. +- Refactored to remove complexity, by extracting support methods. +- Created a package playground page (https://pragmarx.com/google2fa) + +## [1.0.1] - 2016-07-18 +### Changed +- Drop support for PHP 5.3.7, require PHP 5.4+. +- Coding style is now PSR-2 automatically enforced by StyleCI. + +## [1.0.0] - 2016-07-17 +### Changed +- Package bacon/bacon-qr-code was moved to "suggest". + +## [0.8.1] - 2016-07-17 +### Fixed +- Allow paragonie/random_compat ~1.4|~2.0. + +## [0.8.0] - 2016-07-17 +### Changed +- Bumped christian-riesen/base32 to ~1.3 +- Use paragonie/random_compat to generate cryptographically secure random secret keys +- Readme improvements +- Drop simple-qrcode in favor of bacon/bacon-qr-code +- Fix tavis setup for phpspec, PHP 7, hhvm and improve cache + +## [0.7.0] - 2015-11-07 +### Changed +- Fixed URL generation for QRCodes +- Avoid time attacks + +## [0.2.0] - 2015-02-19 +### Changed +- Laravel 5 compatibility. + +## [0.1.0] - 2014-07-06 +### Added +- First version. diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa/LICENSE.md b/srcs/phpmyadmin/vendor/pragmarx/google2fa/LICENSE.md new file mode 100644 index 0000000..7300640 --- /dev/null +++ b/srcs/phpmyadmin/vendor/pragmarx/google2fa/LICENSE.md @@ -0,0 +1,7 @@ +Copyright 2014-2018 Phil, Antonio Carlos Ribeiro and All Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa/README.md b/srcs/phpmyadmin/vendor/pragmarx/google2fa/README.md new file mode 100644 index 0000000..5b1abf4 --- /dev/null +++ b/srcs/phpmyadmin/vendor/pragmarx/google2fa/README.md @@ -0,0 +1,353 @@ + + +<p style="font-color: red;"> + Google API for QR generator is turned off. +</p> + +All version of that package prior to 5.0.0 are deprecated. Please upgrade and check documentation regarding [QRCode generation](https://github.com/antonioribeiro/google2fa#generating-qrcodes). + +# Google2FA + +<p align="center"> + <a href="https://packagist.org/packages/pragmarx/google2fa"><img alt="Latest Stable Version" src="https://img.shields.io/packagist/v/pragmarx/google2fa.svg?style=flat-square"></a> + <a href="LICENSE.md"><img alt="License" src="https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square"></a> + <a href="https://scrutinizer-ci.com/g/antonioribeiro/google2fa/?branch=master"><img alt="Code Quality" src="https://img.shields.io/scrutinizer/g/antonioribeiro/google2fa.svg?style=flat-square"></a> + <a href="https://travis-ci.org/antonioribeiro/google2fa"><img alt="Build" src="https://img.shields.io/travis/antonioribeiro/google2fa.svg?style=flat-square"></a> +</p> +<p align="center"> + <a href="https://packagist.org/packages/pragmarx/google2fa"><img alt="Downloads" src="https://img.shields.io/packagist/dt/pragmarx/google2fa.svg?style=flat-square"></a> + <a href="https://scrutinizer-ci.com/g/antonioribeiro/google2fa/?branch=master"><img alt="Coverage" src="https://img.shields.io/scrutinizer/coverage/g/antonioribeiro/google2fa.svg?style=flat-square"></a> + <a href="https://styleci.io/repos/24296182"><img alt="StyleCI" src="https://styleci.io/repos/24296182/shield"></a> + <a href="https://travis-ci.org/antonioribeiro/google2fa"><img alt="PHP" src="https://img.shields.io/badge/PHP-5.4%20--%207.3-brightgreen.svg?style=flat-square"></a> +</p> + +### Google Two-Factor Authentication for PHP Package + +Google2FA is a PHP implementation of the Google Two-Factor Authentication Module, supporting the HMAC-Based One-time Password (HOTP) algorithm specified in [RFC 4226](https://tools.ietf.org/html/rfc4226) and the Time-based One-time Password (TOTP) algorithm specified in [RFC 6238](https://tools.ietf.org/html/rfc6238). + +This package is agnostic, but there's a [Laravel bridge](https://github.com/antonioribeiro/google2fa-laravel). + +### QRCode + +This package does not generate QRCodes for 2FA. + +If you are looking for Google Two-Factor Authentication, but also need to generate QRCode for it, you can use the [Google2FA QRCode package](https://github.com/antonioribeiro/google2fa-qrcode), which integrates this package and also generates QRCodes using the BaconQRCode library, or check options on how to do it yourself [here in the docs](#qr-code-packages). + +## Demos, Example & Playground + +Please check the [Google2FA Package Playground](http://pragmarx.com/playground/google2fa). + + + +Here's an demo app showing how to use Google2FA: [google2fa-example](https://github.com/antonioribeiro/google2fa-example). + +You can scan the QR code on [this (old) demo page](https://antoniocarlosribeiro.com/technology/google2fa) with a Google Authenticator app and view the code changing (almost) in real time. + +## Requirements + +- PHP 5.4+ + +## Installing + +Use Composer to install it: + + composer require pragmarx/google2fa + +To generate inline QRCodes, you'll need to install a QR code generator, e.g. [BaconQrCode](https://github.com/Bacon/BaconQrCode): + + composer require bacon/bacon-qr-code + +## Using It + +### Instantiate it directly + +```php +use PragmaRX\Google2FA\Google2FA; + +$google2fa = new Google2FA(); + +return $google2fa->generateSecretKey(); +``` + +## How To Generate And Use Two Factor Authentication + +Generate a secret key for your user and save it: + +```php +$user->google2fa_secret = $google2fa->generateSecretKey(); +``` + +## Generating QRCodes + +The securer way of creating QRCode is to do it yourself or using a library. First you have to install a QR code generator e.g. BaconQrCode, as stated above, then you just have to generate the QR code url using: + +```php +$qrCodeUrl = $google2fa->getQRCodeUrl( + $companyName, + $companyEmail, + $secretKey +); +``` + +Once you have the QR code url, you can feed it to your preferred QR code generator. + +```php +// Use your own QR Code generator to generate a data URL: +$google2fa_url = custom_generate_qrcode_url($qrCodeUrl); + +/// and in your view: + +<img src="{{ $google2fa_url }}" alt=""> +``` + +And to verify, you just have to: + +```php +$secret = $request->input('secret'); + +$valid = $google2fa->verifyKey($user->google2fa_secret, $secret); +``` + +## QR Code Packages + +This package suggests the use of [Bacon/QRCode](https://github.com/Bacon/BaconQrCode) because +it is known as a good QR Code package, but you can use it with any other package, for +instance [Google2FA QRCode](https://github.com/antonioribeiro/google2fa-qrcode), +[Simple QrCode](https://www.simplesoftware.io/docs/simple-qrcode) +or [Endroid QR Code](https://github.com/endroid/qr-code), all of them use +[Bacon/QRCode](https://github.com/Bacon/BaconQrCode) to produce QR Codes. + +Usually you'll need a 2FA URL, so you just have to use the URL generator: + +```php +$google2fa->getQRCodeUrl($companyName, $companyEmail, $secretKey) +``` + +### Examples of Usage + +#### [Google2FA QRCode](https://github.com/antonioribeiro/google2fa-qrcode) + +Get a QRCode to be used inline: + +```php +$google2fa = (new \PragmaRX\Google2FAQRCode\Google2FA()); + +$inlineUrl = $google2fa->getQRCodeInline( + 'Company Name', + 'company@email.com', + $google2fa->generateSecretKey() +); +``` + +And use in your template: + +```php +<img src="{{ $inlineUrl }}"> +``` + +#### [Simple QrCode](https://www.simplesoftware.io/docs/simple-qrcode) + +```php +<div class="visible-print text-center"> + {!! QrCode::size(100)->generate($google2fa->getQRCodeUrl($companyName, $companyEmail, $secretKey)); !!} + <p>Scan me to return to the original page.</p> +</div> +``` + +#### [Endroid QR Code Generator](https://github.com/endroid/qr-code) + +Generate the data URL + +```php + +$qrCode = new \Endroid\QrCode\QrCode($value); +$qrCode->setSize(100); +$google2fa_url = $qrCode->writeDataUri(); +``` + +And in your view + +```php +<div class="visible-print text-center"> + {!! $google2fa_url !!} + <p>Scan me to return to the original page.</p> +</div> +``` + +#### [Bacon/QRCode](https://github.com/Bacon/BaconQrCode) + +```php +<?php + +use PragmaRX\Google2FA\Google2FA; +use BaconQrCode\Renderer\ImageRenderer; +use BaconQrCode\Renderer\Image\ImagickImageBackEnd; +use BaconQrCode\Renderer\RendererStyle\RendererStyle; +use BaconQrCode\Writer; + +$google2fa = app(Google2FA::class); + +$g2faUrl = $google2fa->getQRCodeUrl( + 'pragmarx', + 'google2fa@pragmarx.com', + $google2fa->generateSecretKey() +); + +$writer = new Writer( + new ImageRenderer( + new RendererStyle(400), + new ImagickImageBackEnd() + ) +); + +$qrcode_image = base64_encode($writer->writeString($g2faUrl)); +``` + +And show it as an image: + +```php +<img src="data:image/png;base64, <?php echo $qrcode_image; ?> "/> +``` + +## Server Time + +It's really important that you keep your server time in sync with some NTP server, on Ubuntu you can add this to the crontab: + +```bash +sudo service ntp stop +sudo ntpd -gq +sudo service ntp start +``` + +## Validation Window + +To avoid problems with clocks that are slightly out of sync, we do not check against the current key only but also consider `$window` keys each from the past and future. You can pass `$window` as optional third parameter to `verifyKey`, it defaults to `4`. A new key is generated every 30 seconds, so this window includes keys from the previous two and next two minutes. + +```php +$secret = $request->input('secret'); + +$window = 8; // 8 keys (respectively 4 minutes) past and future + +$valid = $google2fa->verifyKey($user->google2fa_secret, $secret, $window); +``` + +An attacker might be able to watch the user entering his credentials and one time key. +Without further precautions, the key remains valid until it is no longer within the window of the server time. In order to prevent usage of a one time key that has already been used, you can utilize the `verifyKeyNewer` function. + +```php +$secret = $request->input('secret'); + +$timestamp = $google2fa->verifyKeyNewer($user->google2fa_secret, $secret, $user->google2fa_ts); + +if ($timestamp !== false) { + $user->update(['google2fa_ts' => $timestamp]); + // successful +} else { + // failed +} +``` + +Note that `$timestamp` either `false` (if the key is invalid or has been used before) or the provided key's unix timestamp divided by the key regeneration period of 30 seconds. + +## Using a Bigger and Prefixing the Secret Key + +Although the probability of collision of a 16 bytes (128 bits) random string is very low, you can harden it by: + +#### Use a bigger key + +```php +$secretKey = $google2fa->generateSecretKey(32); // defaults to 16 bytes +``` + +#### You can prefix your secret keys + +You may prefix your secret keys, but you have to understand that, as your secret key must have length in power of 2, your prefix will have to have a complementary size. So if your key is 16 bytes long, if you add a prefix it must be also 16 bytes long, but as your prefixes will be converted to base 32, the max length of your prefix is 10 bytes. So, those are the sizes you can use in your prefixes: + +``` +1, 2, 5, 10, 20, 40, 80... +``` + +And it can be used like so: + +```php +$prefix = strpad($userId, 10, 'X'); + +$secretKey = $google2fa->generateSecretKey(16, $prefix); +``` + +#### Window + +The Window property defines how long a OTP will work, or how many cycles it will last. A key has a 30 seconds cycle, setting the window to 0 will make the key lasts for those 30 seconds, setting it to 2 will make it last for 120 seconds. This is how you set the window: + +```php +$secretKey = $google2fa->setWindow(4); +``` + +But you can also set the window while checking the key. If you need to set a window of 4 during key verification, this is how you do: + +```php +$isValid = $google2fa->verifyKey($seed, $key, 4); +``` + +#### Key Regeneration Interval + +You can change key regeneration interval, which defaults to 30 seconds, but remember that this is a default value on most authentication apps, like Google Authenticator, which will, basically, make your app out of sync with them. + +```php +$google2fa->setKeyRegeneration(40); +``` + +## Google Authenticator secret key compatibility + +To be compatible with Google Authenticator, your (converted to base 32) secret key length must be at least 8 chars and be a power of 2: 8, 16, 32, 64... + +So, to prevent errors, you can do something like this while generating it: + +```php +$secretKey = '123456789'; + +$secretKey = str_pad($secretKey, pow(2,ceil(log(strlen($secretKey),2))), 'X'); +``` + +And it will generate + +``` +123456789XXXXXXX +``` + +By default, this package will enforce compatibility, but, if Google Authenticator is not a target, you can disable it by doing + +```php +$google2fa->setEnforceGoogleAuthenticatorCompatibility(false); +``` + +## Google Authenticator Apps: + +To use the two factor authentication, your user will have to install a Google Authenticator compatible app, those are some of the currently available: + +* [Authy for iOS, Android, Chrome, OS X](https://www.authy.com/) +* [FreeOTP for iOS, Android and Pebble](https://apps.getpebble.com/en_US/application/52f1a4c3c4117252f9000bb8) +* [Google Authenticator for iOS](https://itunes.apple.com/us/app/google-authenticator/id388497605?mt=8) +* [Google Authenticator for Android](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) +* [Google Authenticator (port) on Windows Store](https://www.microsoft.com/en-us/store/p/google-authenticator/9wzdncrdnkrf) +* [Microsoft Authenticator for Windows Phone](https://www.microsoft.com/en-us/store/apps/authenticator/9wzdncrfj3rj) +* [LastPass Authenticator for iOS, Android, OS X, Windows](https://lastpass.com/auth/) +* [1Password for iOS, Android, OS X, Windows](https://1password.com) + +## Tests + +The package tests were written with [PHPUnit](https://phpunit.de/). + +## Authors + +- [Antonio Carlos Ribeiro](http://twitter.com/iantonioribeiro) +- [Phil (Orginal author of this class)](https://www.idontplaydarts.com/static/ga.php_.txt) +- [All Contributors](https://github.com/antonioribeiro/google2fa/graphs/contributors) + +## License + +Google2FA is licensed under the MIT License - see the [LICENSE](LICENSE.md) file for details. + +## Contributing + +Pull requests and issues are more than welcome. diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa/RELICENSED.md b/srcs/phpmyadmin/vendor/pragmarx/google2fa/RELICENSED.md new file mode 100644 index 0000000..28e582d --- /dev/null +++ b/srcs/phpmyadmin/vendor/pragmarx/google2fa/RELICENSED.md @@ -0,0 +1,29 @@ +# Package Relicensed + +As per [Issue #100](https://github.com/antonioribeiro/google2fa/issues/100) the relicensing of this package from GPLv3 to MIT was approved by the original developer of the Google2FA class (Phil) and the majority of the contributors, by contributions, of this package. + +# Original License + +``` php +/** + * 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/>. + * + * PHP Google two-factor authentication module. + * + * See https://www.idontplaydarts.com/2011/07/google-totp-two-factor-authentication-for-php/ + * for more details + * + * @author Phil + **/ +``` diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa/composer.json b/srcs/phpmyadmin/vendor/pragmarx/google2fa/composer.json new file mode 100644 index 0000000..3e39337 --- /dev/null +++ b/srcs/phpmyadmin/vendor/pragmarx/google2fa/composer.json @@ -0,0 +1,41 @@ +{ + "name": "pragmarx/google2fa", + "description": "A One Time Password Authentication package, compatible with Google Authenticator.", + "keywords": [ + "authentication", + "two factor authentication", + "google2fa", + "2fa" + ], + "license": "MIT", + "authors": [ + { + "name": "Antonio Carlos Ribeiro", + "email": "acr@antoniocarlosribeiro.com", + "role": "Creator & Designer" + } + ], + "require": { + "php": ">=5.4", + "paragonie/constant_time_encoding": "~1.0|~2.0", + "paragonie/random_compat": ">=1", + "symfony/polyfill-php56": "~1.2" + }, + "require-dev": { + "phpunit/phpunit": "~4|~5|~6|~7|~8" + }, + "autoload": { + "psr-4": { + "PragmaRX\\Google2FA\\": "src/", + "PragmaRX\\Google2FA\\Tests\\": "tests/" + } + }, + "extra": { + "component": "package", + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "minimum-stability": "dev", + "prefer-stable": true +} diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa/composer.lock b/srcs/phpmyadmin/vendor/pragmarx/google2fa/composer.lock new file mode 100644 index 0000000..47dc98c --- /dev/null +++ b/srcs/phpmyadmin/vendor/pragmarx/google2fa/composer.lock @@ -0,0 +1,1755 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "10981c3ff06d22f2c3baee01bee773d0", + "packages": [ + { + "name": "paragonie/constant_time_encoding", + "version": "v2.2.3", + "source": { + "type": "git", + "url": "https://github.com/paragonie/constant_time_encoding.git", + "reference": "55af0dc01992b4d0da7f6372e2eac097bbbaffdb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/55af0dc01992b4d0da7f6372e2eac097bbbaffdb", + "reference": "55af0dc01992b4d0da7f6372e2eac097bbbaffdb", + "shasum": "" + }, + "require": { + "php": "^7" + }, + "require-dev": { + "phpunit/phpunit": "^6|^7", + "vimeo/psalm": "^1|^2" + }, + "type": "library", + "autoload": { + "psr-4": { + "ParagonIE\\ConstantTime\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com", + "role": "Maintainer" + }, + { + "name": "Steve 'Sc00bz' Thomas", + "email": "steve@tobtu.com", + "homepage": "https://www.tobtu.com", + "role": "Original Developer" + } + ], + "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", + "keywords": [ + "base16", + "base32", + "base32_decode", + "base32_encode", + "base64", + "base64_decode", + "base64_encode", + "bin2hex", + "encoding", + "hex", + "hex2bin", + "rfc4648" + ], + "time": "2019-01-03T20:26:31+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v9.99.99", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", + "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", + "shasum": "" + }, + "require": { + "php": "^7" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ], + "time": "2018-07-02T15:55:56+00:00" + }, + { + "name": "symfony/polyfill-php56", + "version": "v1.12.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php56.git", + "reference": "0e3b212e96a51338639d8ce175c046d7729c3403" + }, + " |
