Exemplo n.º 1
0
$oldPassphrase = CValue::post("oldPassphrase");
$newPassphrase = CValue::post("newPassphrase");
$passphrase = CValue::sessionAbs("passphrase");
if ($passphrase != $oldPassphrase) {
    $msg = "Phrase de passe incorrecte.";
    CAppUI::stepAjax($msg, UI_MSG_ERROR);
}
$user = CMediusers::get();
$keeper = new CPasswordKeeper();
$keeper->load($password_keeper_id);
if ($keeper->_id && $keeper->user_id == $user->_id) {
    $dom = new CMbXMLDocument("ISO-8859-1");
    $keeperNode = $dom->addElement($dom, "keeper");
    $dom->addAttribute($keeperNode, "name", $keeper->keeper_name);
    $categoriesNode = $dom->addElement($keeperNode, "categories");
    foreach ($keeper->loadRefsCategories() as $_category) {
        $categoryNode = $dom->addElement($categoriesNode, "category");
        $dom->addAttribute($categoryNode, "name", $_category->category_name);
        $passwordsNode = $dom->addElement($categoryNode, "passwords");
        foreach ($_category->loadRefsPasswords() as $_password) {
            // Déchiffrement du mot de passe
            $_password->password = $_password->getPassword();
            // Génération d'un nouveau vecteur d'inistalisation
            $_password->generateIV();
            // Chiffrement avec la nouvelle phrase de passe saisie
            $newPass = $_password->encrypt($newPassphrase);
            $passwordNode = $dom->addElement($passwordsNode, "password");
            $dom->insertTextElement($passwordNode, "description", $_password->password_description);
            $dom->insertTextElement($passwordNode, "crypted", $newPass);
            $dom->insertTextElement($passwordNode, "last_change", $_password->password_last_change);
            $dom->insertTextElement($passwordNode, "iv", $_password->iv);