public function testAddCertificate()
 {
     $sc = $this->createServiceConfiguration();
     $certificate = RemoteDesktopCertificate::generate();
     $sc->addCertificate('Sf2.Web', $certificate);
     $this->assertContains('<Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption"', $sc->getXml());
 }
 public function testGenerate()
 {
     $certificate = RemoteDesktopCertificate::generate();
     $x509File = $certificate->export(sys_get_temp_dir(), "azure_test", "test1234", true);
     $thumbprint = $certificate->getThumbprint();
     $encryptedPassword = $certificate->encryptAccountPassword($x509File, "1234test");
     $this->assertEquals(40, strlen($thumbprint), "SHA1 Key");
     $this->assertTrue(strlen($encryptedPassword) > 0);
 }
 public function generateRemoteDesktopKey($roleName, $desktopPassword, $keyPassword, $overwrite = false)
 {
     $certificate = RemoteDesktopCertificate::generate();
     $x509File = $certificate->export($this->configDir, $roleName, $keyPassword, $overwrite);
     $serviceDefinition = $this->getServiceDefinition();
     $serviceDefinition->addImport("RemoteAccess");
     $serviceDefinition->addImport("RemoteForwarder");
     $expirationDate = new DateTime("+365 day");
     $serviceConfiguration = $this->getServiceConfiguration();
     $serviceConfiguration->setConfigurationSetting($roleName, 'Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled', 'true');
     $serviceConfiguration->setConfigurationSetting($roleName, 'Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername', get_current_user());
     $serviceConfiguration->setConfigurationSetting($roleName, 'Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword', $certificate->encryptAccountPassword($x509File, $desktopPassword));
     $serviceConfiguration->setConfigurationSetting($roleName, 'Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration', $expirationDate->format('c'));
     $serviceConfiguration->setConfigurationSetting($roleName, 'Microsoft.WindowsAzure.Plugins.RemoteForwarder.Enabled', 'true');
     $serviceConfiguration->addCertificate($roleName, $certificate);
 }