/**
  * (non-PHPdoc)
  *
  * @see \Symfony\Component\Security\Core\Encoder\PasswordEncoderInterface::encodePassword()
  */
 public static function encodePassword(Password $password)
 {
     $password->setHash(self::NTLMHash($password->getPasswordPlain()));
     $password->setPasswordPlain(null);
     $password->setId('default');
     $password->setEncoder(NtEncoder::class);
 }
 public function testServiceInvalide()
 {
     $service = new Service("");
     $this->assertNotEmpty($this->validator->validate($service));
     $service = new Service("testService");
     $invalidPassword = new Password();
     $invalidPassword->setId("invalidö");
     $invalidPassword->setPasswordPlain("123456");
     $service->addPassword($invalidPassword);
     $this->assertNotEmpty($this->validator->validate($service));
 }
 public function testPasswordEncoder()
 {
     $password = new Password("testId");
     $password->setPasswordPlain("123456");
     $this->encoder->encodePassword($password);
     $this->assertGreaterThan(10, strlen($password->getHash()));
     $password->setPasswordPlain("654321");
     $this->assertFalse($this->encoder->isPasswordValid($password));
     $password->setPasswordPlain("123456");
     $this->assertTrue($this->encoder->isPasswordValid($password));
     $password2 = $this->encoder->parsePassword($password->getHash());
     $this->assertEquals($password->getId(), $password2->getId());
     $this->assertEquals($password->getHash(), $password2->getHash());
 }
 /**
  * (non-PHPdoc)
  * 
  * @see \Symfony\Component\Security\Core\Encoder\PasswordEncoderInterface::encodePassword()
  */
 public function encodePassword(Password $password)
 {
     $rounds = 60000;
     // incresed rounds for harder bruteforce
     $salt = "";
     if ($password->getId() != null && $password->getId() != "") {
         $salt = $this->getRandomeSalt(16 - strlen($password->getId()));
         $salt = $password->getId() . "=" . $salt;
     } else {
         $salt = 'main=' . $this->getRandomeSalt();
     }
     $hash = crypt($password->getPasswordPlain(), '$6$rounds=' . $rounds . '$' . $salt . '$');
     $password->setHash('{crypt}' . $hash);
     $password->setPasswordPlain(null);
 }
 /**
  * (non-PHPdoc)
  *
  * @see \Symfony\Component\Security\Core\Encoder\PasswordEncoderInterface::encodePassword()
  */
 public static function encodePassword(Password $password)
 {
     $rounds = 60000;
     // incresed rounds for harder bruteforce
     $salt = "";
     if ($password->getId() != null && $password->getId() != "") {
         $salt = self::getRandomeSalt(16 - strlen($password->getId()));
         $salt = $password->getId() . ($password->isMasterPassword() ? '+' : '=') . $salt;
     } else {
         $salt = 'default=' . self::getRandomeSalt();
     }
     $hash = crypt($password->getPasswordPlain(), '$6$rounds=' . $rounds . '$' . $salt . '$');
     $password->setHash('{crypt}' . $hash);
     $password->setPasswordPlain(null);
     $password->setEncoder(CryptEncoder::class);
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $helper = $this->getHelper('question');
     // read password
     $password = "";
     if ($input->getArgument('password')) {
         $password = $input->getArgument('password');
     } else {
         $question = new Question('Please enter password:');
         $question->setHidden(true);
         $password = $helper->ask($input, $output, $question);
     }
     $encoder = new CryptEncoder();
     $pw = new Password();
     $pw->setPasswordPlain($password);
     $encoder->encodePassword($pw);
     $output->writeln($pw->getHash());
     return 0;
 }
 public function testPasswordInvalide()
 {
     $password = new Password();
     // no plain password and no hash
     $password->setId("valid");
     //$this->assertNotEmpty($this->validator->validate($password));
     $password->setPasswordPlain("123456");
     $password->setId("0");
     $this->assertNotEmpty($this->validator->validate($password));
     $password->setId(null);
     $this->assertNotEmpty($this->validator->validate($password));
     $password->setId("");
     // empty id
     $this->assertNotEmpty($this->validator->validate($password));
     $password->setId("df.");
     // invalide char
     $this->assertNotEmpty($this->validator->validate($password));
     $password->setId("0101sfdgfda");
     // to long
     $this->assertNotEmpty($this->validator->validate($password));
 }
 /**
  * @param   Request $request
  * @return  Response
  * @Route("/do",name="registraion_do")
  */
 public function registrationAction(Request $request)
 {
     $response = new Response();
     $form = $this->createForm(RegistrationType::class, new User());
     $form->handleRequest($request);
     if ($form->isSubmitted() && $form->isValid()) {
         $em = $this->getDoctrine()->getManager();
         $user = $form->getData();
         if (in_array(strtolower($user->getUsername()), $this->get('cloud.ldap.userprovider')->getUsernames()) || $em->getRepository('CloudRegistrationBundle:User')->findOneByUsername($user->getUsername())) {
             return $response->setContent(json_encode(['successfully' => false, 'errors' => ['message' => 'user exiests']]));
         }
         $password = new Password();
         $password->setPasswordPlain($user->getPassword());
         $encoder = new CryptEncoder();
         $encoder->encodePassword($password);
         $user->setPasswordHash($password->getHash());
         $em->persist($user);
         $em->flush();
     } else {
         return $response->setContent(json_encode(['successfully' => false, 'errors' => ['message' => $form->getErrors(true)->__toString()]]));
     }
     return $response->setContent(json_encode(['successfully' => true, 'message' => 'Your account need to get activated by a admin']));
 }