12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- <?php
-
- namespace Illuminate\Encryption;
-
- use RuntimeException;
- use Illuminate\Support\Str;
- use Illuminate\Support\ServiceProvider;
-
- class EncryptionServiceProvider extends ServiceProvider
- {
- /**
- * Register the service provider.
- *
- * @return void
- */
- public function register()
- {
- $this->app->singleton('encrypter', function ($app) {
- $config = $app->make('config')->get('app');
-
- // If the key starts with "base64:", we will need to decode the key before handing
- // it off to the encrypter. Keys may be base-64 encoded for presentation and we
- // want to make sure to convert them back to the raw bytes before encrypting.
- if (Str::startsWith($key = $this->key($config), 'base64:')) {
- $key = base64_decode(substr($key, 7));
- }
-
- return new Encrypter($key, $config['cipher']);
- });
- }
-
- /**
- * Extract the encryption key from the given configuration.
- *
- * @param array $config
- * @return string
- */
- protected function key(array $config)
- {
- return tap($config['key'], function ($key) {
- if (empty($key)) {
- throw new RuntimeException(
- 'No application encryption key has been specified.'
- );
- }
- });
- }
- }
|