Viewing file: EncryptionServiceProvider.php (1.29 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?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 (Str::startsWith($key = $config['key'], 'base64:')) { $key = base64_decode(substr($key, 7)); }
return $this->getEncrypterForKeyAndCipher($key, $config['cipher']); }); }
/** * Get the proper encrypter instance for the given key and cipher. * * @param string $key * @param string $cipher * @return mixed * * @throws \RuntimeException */ protected function getEncrypterForKeyAndCipher($key, $cipher) { if (Encrypter::supported($key, $cipher)) { return new Encrypter($key, $cipher); } elseif (McryptEncrypter::supported($key, $cipher)) { return new McryptEncrypter($key, $cipher); } else { throw new RuntimeException('No supported encrypter found. The cipher and / or key length are invalid.'); } } }
|