diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index b3d49d53a..75ad76641 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -6,6 +6,7 @@ use Illuminate\Foundation\Auth\AuthenticatesUsers; use Illuminate\Http\Request; use Illuminate\Validation\ValidationException; +use LangleyFoxall\LaravelNISTPasswordRules\PasswordRules; class LoginController extends Controller { @@ -80,23 +81,17 @@ public function username() // } /** - * Validate the user login. + * Validate the user login request. * - * @param Request $request + * @param \Illuminate\Http\Request $request + * @return void */ protected function validateLogin(Request $request) { - $this->validate( - $request, - [ - 'identity' => 'required|string', - 'password' => 'required|string', - ], - [ - 'identity.required' => 'Username or email is required', - 'password.required' => 'Password is required', - ] - ); + $request->validate([ + 'identity' => 'required|string', + 'password' => PasswordRules::login(), + ]); } /** diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index 629a1698d..4bd909ed0 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -7,6 +7,7 @@ use Illuminate\Foundation\Auth\RegistersUsers; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Validator; +use LangleyFoxall\LaravelNISTPasswordRules\PasswordRules; class RegisterController extends Controller { @@ -62,7 +63,7 @@ protected function validator(array $data) return Validator::make($data, [ 'name' => ['required', 'string', 'max:50'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], - 'password' => ['required', 'string', 'min:8', 'confirmed'], + 'password' => PasswordRules::register('email'), ]); } diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php index 041b3cb27..39e79cb4e 100644 --- a/app/Http/Middleware/Authenticate.php +++ b/app/Http/Middleware/Authenticate.php @@ -7,6 +7,7 @@ class Authenticate extends Middleware { /** + * @codeCoverageIgnore * Get the path the user should be redirected to when they are not authenticated. * * @param \Illuminate\Http\Request $request diff --git a/app/Http/Requests/UpdateUserPassword.php b/app/Http/Requests/UpdateUserPassword.php index 910144b6e..f68622fea 100644 --- a/app/Http/Requests/UpdateUserPassword.php +++ b/app/Http/Requests/UpdateUserPassword.php @@ -5,6 +5,7 @@ use App\Rules\Auth\CurrentPassword; use App\User; use Illuminate\Foundation\Http\FormRequest; +use LangleyFoxall\LaravelNISTPasswordRules\PasswordRules; class UpdateUserPassword extends FormRequest { @@ -27,7 +28,7 @@ public function rules() { return [ 'current-password' => [new CurrentPassword], - 'new-password' => ['required', 'different:current-password', 'string', 'min:6', 'confirmed'], + 'new-password' => PasswordRules::changePassword('current-password'), ]; } } diff --git a/composer.json b/composer.json index c04e3deb2..b2cfa8199 100644 --- a/composer.json +++ b/composer.json @@ -18,6 +18,7 @@ "geoip2/geoip2": "~2.0", "hidehalo/nanoid-php": "^1.1", "jenssegers/agent": "^2.6", + "langleyfoxall/laravel-nist-password-rules": "^4.1", "laravel/framework": "^6.0", "laravel/tinker": "^1.0", "laravolt/avatar": "^3.0", diff --git a/composer.lock b/composer.lock index 8256920ae..78ac98d22 100644 --- a/composer.lock +++ b/composer.lock @@ -224,6 +224,244 @@ ], "time": "2019-09-03T15:24:57+00:00" }, + { + "name": "divineomega/do-file-cache", + "version": "v2.0.6", + "source": { + "type": "git", + "url": "https://github.com/DivineOmega/DO-File-Cache.git", + "reference": "23696a8a4c3ebe2ab3d68a35b2698fa103f69334" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/DivineOmega/DO-File-Cache/zipball/23696a8a4c3ebe2ab3d68a35b2698fa103f69334", + "reference": "23696a8a4c3ebe2ab3d68a35b2698fa103f69334", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-zlib": "*", + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^6.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "DivineOmega\\DOFileCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-only" + ], + "description": "DO File Cache is a PHP File-based Caching Library. Its syntax is designed to closely resemble the PHP memcache extension.", + "keywords": [ + "cache", + "caching", + "caching library", + "file cache", + "library", + "php" + ], + "time": "2018-12-31T09:36:51+00:00" + }, + { + "name": "divineomega/do-file-cache-psr-6", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/DivineOmega/DO-File-Cache-PSR-6.git", + "reference": "18f9807d0491d093e9a12741afb40257d92f017e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/DivineOmega/DO-File-Cache-PSR-6/zipball/18f9807d0491d093e9a12741afb40257d92f017e", + "reference": "18f9807d0491d093e9a12741afb40257d92f017e", + "shasum": "" + }, + "require": { + "divineomega/do-file-cache": "^2.0.0", + "psr/cache": "^1.0" + }, + "require-dev": { + "cache/integration-tests": "^0.16.0", + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "DivineOmega\\DOFileCachePSR6\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-only" + ], + "authors": [ + { + "name": "Jordan Hall", + "email": "jordan@hall05.co.uk" + } + ], + "description": "PSR-6 adapter for DO File Cache", + "time": "2018-07-13T08:32:36+00:00" + }, + { + "name": "divineomega/laravel-password-exposed-validation-rule", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/DivineOmega/laravel-password-exposed-validation-rule.git", + "reference": "9489ca42bfeefe89ba6e2ab207315da277582080" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/DivineOmega/laravel-password-exposed-validation-rule/zipball/9489ca42bfeefe89ba6e2ab207315da277582080", + "reference": "9489ca42bfeefe89ba6e2ab207315da277582080", + "shasum": "" + }, + "require": { + "divineomega/password_exposed": "^3.0.1", + "illuminate/contracts": "^5.1||^6.0", + "php": "^7.1" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.0", + "phpunit/phpunit": "^7.0||^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "DivineOmega\\LaravelPasswordExposedValidationRule\\": "./src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-only" + ], + "authors": [ + { + "name": "Jordan Hall", + "email": "jordan@hall05.co.uk" + } + ], + "description": "Laravel validation rule that checks if a password has been exposed in a data breach", + "time": "2019-09-06T11:16:03+00:00" + }, + { + "name": "divineomega/password_exposed", + "version": "v3.0.1", + "source": { + "type": "git", + "url": "https://github.com/DivineOmega/password_exposed.git", + "reference": "3f000edde89180764052492a1661d9550d9bcf5e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/DivineOmega/password_exposed/zipball/3f000edde89180764052492a1661d9550d9bcf5e", + "reference": "3f000edde89180764052492a1661d9550d9bcf5e", + "shasum": "" + }, + "require": { + "divineomega/do-file-cache-psr-6": "^2.0", + "divineomega/psr-18-guzzle-adapter": "^1.0", + "nyholm/psr7": "^1.0", + "paragonie/certainty": "^1|^2", + "php": "^7.1", + "php-http/discovery": "^1.6", + "psr/cache": "^1.0", + "psr/http-client": "^1.0", + "psr/http-factory-implementation": "^1.0", + "psr/http-message": "^1.0", + "psr/http-message-implementation": "^1.0" + }, + "require-dev": { + "fzaninotto/faker": "^1.7", + "kriswallsmith/buzz": "^1.0", + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^6.5", + "symfony/cache": "^3.4|^4.0", + "vimeo/psalm": "^1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "psr-4": { + "DivineOmega\\PasswordExposed\\": "src/" + }, + "files": [ + "src/PasswordExposedFunction.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-only" + ], + "authors": [ + { + "name": "Jordan Hall", + "email": "jordan@hall05.co.uk" + }, + { + "name": "Contributors", + "homepage": "https://github.com/DivineOmega/password_exposed/graphs/contributors" + } + ], + "description": "This PHP package provides a `password_exposed` helper function, that uses the haveibeenpwned.com API to check if a password has been exposed in a data breach.", + "homepage": "https://github.com/DivineOmega/password_exposed", + "time": "2019-02-20T12:19:45+00:00" + }, + { + "name": "divineomega/psr-18-guzzle-adapter", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/DivineOmega/psr-18-guzzle-adapter.git", + "reference": "e7cba8fbb500a38bb07deafa71dcb4f2749992c8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/DivineOmega/psr-18-guzzle-adapter/zipball/e7cba8fbb500a38bb07deafa71dcb4f2749992c8", + "reference": "e7cba8fbb500a38bb07deafa71dcb4f2749992c8", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "^6.3", + "php": "^7.1", + "psr/http-client": "^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "DivineOmega\\Psr18GuzzleAdapter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-only" + ], + "authors": [ + { + "name": "Jordan Hall", + "email": "jordan@hall05.co.uk" + } + ], + "description": "PSR-18 adapter for the Guzzle HTTP client", + "time": "2019-02-19T12:03:12+00:00" + }, { "name": "dnoegel/php-xdg-base-dir", "version": "0.1", @@ -742,17 +980,133 @@ ], "description": "Manager Provides Some Manager Functionality For Laravel 5", "keywords": [ - "Graham Campbell", - "GrahamCampbell", - "Laravel Manager", - "Laravel-Manager", - "connector", - "framework", - "interface", - "laravel", - "manager" + "Graham Campbell", + "GrahamCampbell", + "Laravel Manager", + "Laravel-Manager", + "connector", + "framework", + "interface", + "laravel", + "manager" + ], + "time": "2019-08-26T15:31:22+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "6.3.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba", + "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba", + "shasum": "" + }, + "require": { + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.4", + "php": ">=5.5" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", + "psr/log": "^1.0" + }, + "suggest": { + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.3-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "time": "2018-04-22T15:46:56+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "v1.3.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "shasum": "" + }, + "require": { + "php": ">=5.5.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" ], - "time": "2019-08-26T15:31:22+00:00" + "time": "2016-12-20T10:07:11+00:00" }, { "name": "guzzlehttp/psr7", @@ -1221,6 +1575,56 @@ ], "time": "2019-01-19T21:32:55+00:00" }, + { + "name": "langleyfoxall/laravel-nist-password-rules", + "version": "v4.1.0", + "source": { + "type": "git", + "url": "https://github.com/langleyfoxall/laravel-nist-password-rules.git", + "reference": "9b0d1a22722408f0b821e386ca7949efa33036cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/langleyfoxall/laravel-nist-password-rules/zipball/9b0d1a22722408f0b821e386ca7949efa33036cb", + "reference": "9b0d1a22722408f0b821e386ca7949efa33036cb", + "shasum": "" + }, + "require": { + "divineomega/laravel-password-exposed-validation-rule": "^2.1.0", + "laravel/framework": "^5.4||^6.0", + "php": ">=7.1" + }, + "require-dev": { + "fzaninotto/faker": "^1.6", + "orchestra/testbench": "^3.4", + "php-coveralls/php-coveralls": "^2.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "LangleyFoxall\\LaravelNISTPasswordRules\\ServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "LangleyFoxall\\LaravelNISTPasswordRules\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-only" + ], + "authors": [ + { + "name": "Jordan Hall", + "email": "jordan@langleyfoxall.co.uk" + } + ], + "description": "🔒 Provides Laravel validation rules that follow the password related recommendations found in NIST Special Publication 800-63B.", + "time": "2019-09-06T11:46:07+00:00" + }, { "name": "laravel/framework", "version": "v6.0.3", @@ -1931,6 +2335,68 @@ ], "time": "2019-09-01T07:51:21+00:00" }, + { + "name": "nyholm/psr7", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/Nyholm/psr7.git", + "reference": "55ff6b76573f5b242554c9775792bd59fb52e11c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Nyholm/psr7/zipball/55ff6b76573f5b242554c9775792bd59fb52e11c", + "reference": "55ff6b76573f5b242554c9775792bd59fb52e11c", + "shasum": "" + }, + "require": { + "php": "^7.1", + "php-http/message-factory": "^1.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "http-interop/http-factory-tests": "dev-master", + "php-http/psr7-integration-tests": "dev-master", + "phpunit/phpunit": "^7.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Nyholm\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com" + }, + { + "name": "Martijn van der Ven", + "email": "martijn@vanderven.se" + } + ], + "description": "A fast PHP7 implementation of PSR-7", + "homepage": "http://tnyholm.se", + "keywords": [ + "psr-17", + "psr-7" + ], + "time": "2019-09-05T13:24:16+00:00" + }, { "name": "opis/closure", "version": "3.4.0", @@ -1992,6 +2458,128 @@ ], "time": "2019-09-02T21:07:33+00:00" }, + { + "name": "paragonie/certainty", + "version": "v2.3.1", + "source": { + "type": "git", + "url": "https://github.com/paragonie/certainty.git", + "reference": "9247608b6f3b9d85c71ea0e955ec1599df04394b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/certainty/zipball/9247608b6f3b9d85c71ea0e955ec1599df04394b", + "reference": "9247608b6f3b9d85c71ea0e955ec1599df04394b", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "^6", + "paragonie/constant_time_encoding": "^1|^2", + "paragonie/sodium_compat": "^1.6", + "php": "^5.5|^7" + }, + "require-dev": { + "composer/composer": "^1", + "phpunit/phpunit": "^4|^5|^6" + }, + "bin": [ + "bin/certainty-cert-symlink" + ], + "type": "library", + "autoload": { + "psr-4": { + "ParagonIE\\Certainty\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "Up-to-date, verifiable repository for Certificate Authorities", + "keywords": [ + "CA-Cert", + "Ed25519", + "Public-Key Infractructure", + "ca", + "ca-cert.pem", + "cacert", + "cacert.pem", + "certificate authority", + "pki", + "ssl", + "tls" + ], + "time": "2019-01-03T20:21:15+00:00" + }, + { + "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", @@ -2013,29 +2601,226 @@ "phpunit/phpunit": "4.*|5.*", "vimeo/psalm": "^1" }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + "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": "paragonie/sodium_compat", + "version": "v1.10.1", + "source": { + "type": "git", + "url": "https://github.com/paragonie/sodium_compat.git", + "reference": "5115fa44886d1c2785d2f135ef4626db868eac4b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/5115fa44886d1c2785d2f135ef4626db868eac4b", + "reference": "5115fa44886d1c2785d2f135ef4626db868eac4b", + "shasum": "" + }, + "require": { + "paragonie/random_compat": ">=1", + "php": "^5.2.4|^5.3|^5.4|^5.5|^5.6|^7|^8" + }, + "require-dev": { + "phpunit/phpunit": "^3|^4|^5" + }, + "suggest": { + "ext-libsodium": "PHP < 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security.", + "ext-sodium": "PHP >= 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security." + }, + "type": "library", + "autoload": { + "files": [ + "autoload.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com" + }, + { + "name": "Frank Denis", + "email": "jedisct1@pureftpd.org" + } + ], + "description": "Pure PHP implementation of libsodium; uses the PHP extension if it exists", + "keywords": [ + "Authentication", + "BLAKE2b", + "ChaCha20", + "ChaCha20-Poly1305", + "Chapoly", + "Curve25519", + "Ed25519", + "EdDSA", + "Edwards-curve Digital Signature Algorithm", + "Elliptic Curve Diffie-Hellman", + "Poly1305", + "Pure-PHP cryptography", + "RFC 7748", + "RFC 8032", + "Salpoly", + "Salsa20", + "X25519", + "XChaCha20-Poly1305", + "XSalsa20-Poly1305", + "Xchacha20", + "Xsalsa20", + "aead", + "cryptography", + "ecdh", + "elliptic curve", + "elliptic curve cryptography", + "encryption", + "libsodium", + "php", + "public-key cryptography", + "secret-key cryptography", + "side-channel resistant" + ], + "time": "2019-07-12T16:36:59+00:00" + }, + { + "name": "php-http/discovery", + "version": "1.7.0", + "source": { + "type": "git", + "url": "https://github.com/php-http/discovery.git", + "reference": "e822f86a6983790aa17ab13aa7e69631e86806b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/discovery/zipball/e822f86a6983790aa17ab13aa7e69631e86806b6", + "reference": "e822f86a6983790aa17ab13aa7e69631e86806b6", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "conflict": { + "nyholm/psr7": "<1.0" + }, + "require-dev": { + "akeneo/phpspec-skip-example-extension": "^4.0", + "php-http/httplug": "^1.0 || ^2.0", + "php-http/message-factory": "^1.0", + "phpspec/phpspec": "^5.1", + "puli/composer-plugin": "1.0.0-beta10" + }, + "suggest": { + "php-http/message": "Allow to use Guzzle, Diactoros or Slim Framework factories", + "puli/composer-plugin": "Sets up Puli which is recommended for Discovery to work. Check http://docs.php-http.org/en/latest/discovery.html for more details." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.7-dev" + } + }, + "autoload": { + "psr-4": { + "Http\\Discovery\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Finds installed HTTPlug implementations and PSR-7 message factories", + "homepage": "http://php-http.org", + "keywords": [ + "adapter", + "client", + "discovery", + "factory", + "http", + "message", + "psr7" + ], + "time": "2019-06-30T09:04:27+00:00" + }, + { + "name": "php-http/message-factory", + "version": "v1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-http/message-factory.git", + "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/message-factory/zipball/a478cb11f66a6ac48d8954216cfed9aa06a501a1", + "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1", + "shasum": "" + }, + "require": { + "php": ">=5.4", + "psr/http-message": "^1.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Http\\Message\\": "src/" + } + }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" } ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "description": "Factory interfaces for PSR-7 HTTP Message", + "homepage": "http://php-http.org", "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" + "factory", + "http", + "message", + "stream", + "uri" ], - "time": "2018-07-02T15:55:56+00:00" + "time": "2015-12-19T14:08:53+00:00" }, { "name": "phpoption/phpoption", @@ -2087,6 +2872,52 @@ ], "time": "2015-07-25T16:39:46+00:00" }, + { + "name": "psr/cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "time": "2016-08-06T20:24:11+00:00" + }, { "name": "psr/container", "version": "1.0.0", @@ -2136,6 +2967,107 @@ ], "time": "2017-02-14T16:28:37+00:00" }, + { + "name": "psr/http-client", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "496a823ef742b632934724bf769560c2a5c7c44e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/496a823ef742b632934724bf769560c2a5c7c44e", + "reference": "496a823ef742b632934724bf769560c2a5c7c44e", + "shasum": "" + }, + "require": { + "php": "^7.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "time": "2018-10-30T23:29:13+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "time": "2019-04-30T12:38:16+00:00" + }, { "name": "psr/http-message", "version": "1.0.1", @@ -4718,122 +5650,6 @@ ], "time": "2018-07-12T10:23:15+00:00" }, - { - "name": "guzzlehttp/guzzle", - "version": "6.3.3", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba", - "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba", - "shasum": "" - }, - "require": { - "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.4", - "php": ">=5.5" - }, - "require-dev": { - "ext-curl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", - "psr/log": "^1.0" - }, - "suggest": { - "psr/log": "Required for using the Log middleware" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.3-dev" - } - }, - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" - ], - "time": "2018-04-22T15:46:56+00:00" - }, - { - "name": "guzzlehttp/promises", - "version": "v1.3.1", - "source": { - "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "shasum": "" - }, - "require": { - "php": ">=5.5.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "Guzzle promises library", - "keywords": [ - "promise" - ], - "time": "2016-12-20T10:07:11+00:00" - }, { "name": "hamcrest/hamcrest-php", "version": "v2.0.0",