Example #1
0
 /**
  * Tests the encrypt & decrypt method.
  *
  * @covers ::__construct
  * @covers ::encrypt
  * @covers ::decrypt
  * @covers ::validate
  *
  * @dataProvider encryptionDataProvider
  */
 public function testEncryptDecrypt($key, $valid_key)
 {
     // Set up expectations for Key.
     $this->key->expects($this->any())->method('getKeyValue')->will($this->returnValue($key));
     if ($valid_key) {
         // Set up expectations for encryption method.
         $this->encryptionMethod->expects($this->once())->method('encrypt')->will($this->returnValue("encrypted_text"));
         $this->encryptionMethod->expects($this->once())->method('decrypt')->will($this->returnValue("decrypted_text"));
         // Set up expectations for encryption profile.
         $this->encryptionProfile->expects($this->any())->method('getEncryptionKey')->will($this->returnValue($this->key));
         $this->encryptionProfile->expects($this->any())->method('getEncryptionMethod')->will($this->returnValue($this->encryptionMethod));
         $this->encryptionProfile->expects($this->any())->method('validate')->will($this->returnValue(array()));
     } else {
         // Set up expectations for encryption profile.
         $this->encryptionProfile->expects($this->never())->method('getEncryptionKey');
         $this->encryptionProfile->expects($this->never())->method('getEncryptionMethod');
         $this->encryptionProfile->expects($this->any())->method('validate')->will($this->returnValue(array("Validation error")));
         $this->setExpectedException('\\Drupal\\encrypt\\Exception\\EncryptException');
     }
     $service = new EncryptService($this->encryptManager, $this->keyRepository);
     $encrypted_text = $service->encrypt("text_to_encrypt", $this->encryptionProfile);
     $decrypted_text = $service->decrypt("text_to_decrypt", $this->encryptionProfile);
     if ($valid_key) {
         $this->assertEquals("encrypted_text", $encrypted_text);
         $this->assertEquals("decrypted_text", $decrypted_text);
     }
 }
 /**
  * Tests the getEncryptionKeyValue() method.
  *
  * @covers ::getEncryptionKeyValue
  *
  * @dataProvider encryptionKeyValueDataProvider
  */
 public function testGetEncryptionKeyValue($key, $valid_key)
 {
     // Set up expectations for the encryption manager.
     $this->encryptManager->expects($this->any())->method('createInstance')->with($this->equalTo('test_encryption_method'))->will($this->returnValue($this->encryptionMethod));
     // Set up a mock for the EncryptService class to mock some methods.
     $encrypt_service = $this->getMockBuilder('\\Drupal\\encrypt\\EncryptService')->setMethods(['getEncryptionMethod', 'loadEncryptionProfileKey'])->setConstructorArgs(array($this->encryptManager, $this->keyRepository))->getMock();
     // Set up expectations for encryption method.
     if ($valid_key) {
         $this->encryptionMethod->expects($this->once())->method('encrypt')->will($this->returnValue("encrypted_text"));
         $this->encryptionMethod->expects($this->once())->method('checkDependencies')->will($this->returnValue(array()));
         $encrypt_service->expects($this->once())->method('getEncryptionMethod')->will($this->returnValue($this->encryptionMethod));
     } else {
         $this->encryptionMethod->expects($this->never())->method('encrypt');
         $this->encryptionMethod->expects($this->once())->method('checkDependencies')->will($this->returnValue(array("Dependency error")));
         $this->setExpectedException('\\Drupal\\encrypt\\Exception\\EncryptException');
         $encrypt_service->expects($this->never())->method('getEncryptionMethod');
     }
     // Set up expectation for handling of encryption profile by
     // the getEncryptionKeyValue() method.
     $this->encryptionProfile->expects($this->once())->method('getEncryptionMethod')->will($this->returnValue("test_encryption_method"));
     $encrypt_service->expects($this->once())->method('loadEncryptionProfileKey')->with($this->encryptionProfile)->will($this->returnValue($key));
     // Call getEncryptionKeyValue() through the public encrypt() method.
     $encrypted_text = $encrypt_service->encrypt("text_to_encrypt", $this->encryptionProfile);
     if ($valid_key) {
         $this->assertEquals("encrypted_text", $encrypted_text);
     }
 }
Example #3
0
 /**
  * Tests the setEncryptionMethod method.
  *
  * @covers ::setEncryptionMethod
  */
 public function testSetEncryptionMethod()
 {
     // Set up a mock for the EncryptionProfile class to mock some methods.
     $encryption_profile = $this->getMockBuilder('\\Drupal\\encrypt\\Entity\\EncryptionProfile')->setMethods(['getPluginCollection'])->disableOriginalConstructor()->getMock();
     $this->pluginCollection->expects($this->once())->method('addInstanceID');
     // Set up expectations for encryption profile.
     $encryption_profile->expects($this->any())->method('getPluginCollection')->will($this->returnValue($this->pluginCollection));
     // Set up expectations for encryption method.
     $this->encryptionMethod->expects($this->any())->method('getPluginId')->will($this->returnValue('test_encryption_method'));
     $encryption_profile->setEncryptionMethod($this->encryptionMethod);
 }
 /**
  * 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;
     }
 }
Example #5
0
 /**
  * {@inheritdoc}
  */
 public function setEncryptionMethod(EncryptionMethodInterface $encryption_method)
 {
     $this->encryption_method = $encryption_method->getPluginId();
     $this->getPluginCollection()->addInstanceID($encryption_method->getPluginId());
 }