Mercurial > hg > isophonics-drupal-site
diff core/lib/Drupal/Core/PrivateKey.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/lib/Drupal/Core/PrivateKey.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,65 @@ +<?php + +namespace Drupal\Core; + +use Drupal\Core\State\StateInterface; +use Drupal\Component\Utility\Crypt; + +/** + * Manages the Drupal private key. + */ +class PrivateKey { + + /** + * The state service. + * + * @var \Drupal\Core\State\StateInterface + */ + protected $state; + + /** + * Constructs the token generator. + * + * @param \Drupal\Core\State\StateInterface $state + * The state service. + */ + public function __construct(StateInterface $state) { + $this->state = $state; + } + + /** + * Gets the private key. + * + * @return string + * The private key. + */ + public function get() { + if (!$key = $this->state->get('system.private_key')) { + $key = $this->create(); + $this->set($key); + } + + return $key; + } + + /** + * Sets the private key. + * + * @param string $key + * The private key to set. + */ + public function set($key) { + return $this->state->set('system.private_key', $key); + } + + /** + * Creates a new private key. + * + * @return string + * The private key. + */ + protected function create() { + return Crypt::randomBytesBase64(55); + } + +}