/** * {@inheritdoc} */ function decrypt($text) { // Get settings. $settings = $this->config->get('encrypt.settings'); // Load the key. $key = $this->key->getKey($settings->get('encryption_key')); // Load the encryption method. $enc_method = $this->manager->createInstance($settings->get('encryption_method')); // Return the encrypted string. return $enc_method->decrypt($text, $key->getKeyValue()); }
/** * Get the used encryption key. * * @param string $text * The text to encrypt / decrypt. * @param \Drupal\encrypt\Entity\EncryptionProfile $encryption_profile * The encryption profile to use. * * @return string * The encryption key value. * * @throws \Drupal\encrypt\Exception\EncryptException * Can throw an EncryptException. */ protected function getEncryptionKeyValue($text, EncryptionProfile $encryption_profile) { // Load the encryption method. $enc_method = $encryption_profile->getEncryptionMethod(); $this->encryptionMethod = $this->encryptManager->createInstance($enc_method); // Load the encryption key. $key_value = $this->loadEncryptionProfileKey($encryption_profile); // Check for missing dependencies. $errors = $this->encryptionMethod->checkDependencies($text, $key_value); if (!empty($errors)) { // Throw an exception with the errors from the encryption method. throw new EncryptException(implode('; ', $errors)); } else { return $key_value; } }
/** * Loads an encryption profile method. * @param \Drupal\encrypt\Entity\EncryptionProfile $enc_profile */ private function loadEncryptionMethod($enc_profile) { // Load the encryption method. $enc_method = $enc_profile->getEncryptionMethod(); return $this->encryptManager->createInstance($enc_method); }