Resolve "cli: keys modify: ask salt and password on password prompt for security"
Closes #201 (closed)
Merge request reports
Activity
added 5 commits
-
5c61c2e0...80660875 - 4 commits from branch
dev
- 37a48718 - wip: [feat] conf: Replace keys modify salt/password opt by interactive input
-
5c61c2e0...80660875 - 4 commits from branch
@librelois j'ai une version fonctionnelle avec une grosse régression qui est que les salt et password sont affichés dans le terminal quand on les tape. Ça affecte les commandes modify et wizard.
rpassword::prompt_password_stdout
qui était utilisé avant fait la configuration/restauration du terminal avec desunsafe
mais pasread_password_with_reader
qui est utilisé maintenant. Il faut se faire la configuration du terminal avant les appels.Ça ne me plaît pas trop de dupliquer/ré-écrire cette partie du code de
rpassword
. Peut-être qu'il y a les fonctions nécessaires du coté de tui ou termion. Je regarderai.Tu as une idée de comment résoudre ce pb ?
@dvermd oui c'est très simple il suffit d'appeler de nouveau
prompt_password_stdout()
dans la méthodeget_user_input()
.added 1 commit
- 34d26d33 - [feat] core+conf: Replace keys modify salt/password opt by interactive input
added 1 commit
- 8b3b499f - [feat] core+conf: Replace keys modify salt/password opt by interactive input
added 3 commits
-
8b3b499f...fa3bd674 - 2 commits from branch
dev
- b2d6de32 - [feat] core+conf: Replace keys modify salt/password opt by interactive input
-
8b3b499f...fa3bd674 - 2 commits from branch
added S-request review label
@librelois c'est modifié
- Resolved by Éloïs
- Resolved by Éloïs
- Resolved by Éloïs
- Resolved by Éloïs
- Resolved by Éloïs
261 stdin_mock.expect_get_password().returning(|prompt| { 262 if prompt.starts_with("Salt:") { 263 Ok(Secret { 264 secret: SALT_TEST.to_owned(), 265 }) 266 } else if prompt.starts_with("Password:") { 267 Ok(Secret { 268 secret: PASSWORD_TEST.to_owned(), 269 }) 270 } else { 271 Err(std::io::Error::new( 272 std::io::ErrorKind::InvalidInput, 273 format!("should not be called with {}", prompt), 274 )) 275 } 276 }); Aussi, si chaque test appelle le mock le même nombre N de fois, rajoute la fonction times(N) de mockall pour vérifier que l'appel est bien fait N fois.
Edited by Éloïschanged this line in version 6 of the diff
@dvermd, Pense aux #[inline] sur les fonctions qui n'ont qu'une seule instruction :)
added 2 commits
added 1 commit
- fc2d94ef - [ref] conf: refactor tests and improve readability
@librelois la CI ne démarre pas, elle est marquée en skip. Par rapport à la dernière CI sur le commit e174c4d5 j'ai juste squashé 2 commits de refactor
@dvermd Oui c'est tout a fait normal, la CI ne se déclenche que s'il y a des changements de code depuis le dernier push. Il faut toujours que ton dernier commit commence par wip tant que ton historique git n'est pas au propre. Dans le cas présent, je me référerai a la pipeline du push précédent (que j'ai relancé, tu l'avais annulée apparemment).
Edited by Éloïsadded 4 commits
-
fc2d94ef...d22ddd88 - 2 commits from branch
dev
- b8cfcda6 - [feat] core+conf: Replace keys modify salt/password opt by interactive input
- e73b2ea1 - [ref] conf: refactor tests and improve readability
-
fc2d94ef...d22ddd88 - 2 commits from branch
@dvermd serait tu dispo pour me rejoindre sur mumble maintenant par hazard ? :)
@librelois c'est une super opti de CI de ne démarrer que s'il y a eu des changements depuis le dernier push. J'ai l'habitude des CI qui démarrent à chaque push sans distinction. J'avais push un historique pas propre, je m'en suis aperçu, j'ai arrêté le CI pour libérer les ressources de la machine, nettoyer l'historique et refaire push.
Je viens de rebase sur dev