if ($config) { $this->key =
$config->key;
$this->driver =
$config->driver;
$this->digest =
$config->digest ?? 'SHA512';
} if (empty($this->driver
)) { throw EncryptionException::
forNoDriverRequested();
} if (!
in_array($this->driver,
$this->drivers, true
)) { throw EncryptionException::
forUnKnownHandler($this->driver
);
} if (empty($this->key
)) { throw EncryptionException::
forNeedsStarterKey();
} $this->hmacKey =
bin2hex(\
hash_hkdf($this->digest,
$this->key
));
$handlerName = 'CodeIgniter\\Encryption\\Handlers\\' .
$this->driver . 'Handler';
$this->encrypter =
new $handlerName($config);