Merge pull request #150 from benrubson/issue81

Add method to check password
This commit is contained in:
Valient Gough 2016-04-10 21:24:42 -07:00
commit bbf3d6f679

View File

@ -59,6 +59,7 @@ static int showInfo(int argc, char **argv);
static int showVersion(int argc, char **argv);
static int chpasswd(int argc, char **argv);
static int chpasswdAutomaticly(int argc, char **argv);
static int ckpasswdAutomaticly(int argc, char **argv);
static int cmd_ls(int argc, char **argv);
static int cmd_decode(int argc, char **argv);
static int cmd_encode(int argc, char **argv);
@ -89,6 +90,11 @@ struct CommandOpts {
gettext_noop(
" -- change password for volume, taking password"
" from standard input.\n\tNo prompts are issued.")},
{"autocheckpasswd", 1, 1, ckpasswdAutomaticly, "(root dir)",
// xgroup(usage)
gettext_noop(
" -- check password for volume, taking password"
" from standard input.\n\tNo prompts are issued.")},
{"ls", 1, 2, cmd_ls, 0, 0},
{"showcruft", 1, 1, cmd_showcruft, "(root dir)",
// xgroup(usage)
@ -606,7 +612,7 @@ static int cmd_showcruft(int argc, char **argv) {
return EXIT_SUCCESS;
}
static int do_chpasswd(bool useStdin, bool annotate, int argc, char **argv) {
static int do_chpasswd(bool useStdin, bool annotate, bool checkOnly, int argc, char **argv) {
(void)argc;
string rootDir = argv[1];
if (!checkDir(rootDir)) return EXIT_FAILURE;
@ -642,6 +648,12 @@ static int do_chpasswd(bool useStdin, bool annotate, int argc, char **argv) {
return EXIT_FAILURE;
}
if(checkOnly)
{
cout << _("Password is correct\n");
return EXIT_SUCCESS;
}
// Now, get New user key..
userKey.reset();
cout << _("Enter new Encfs password\n");
@ -684,11 +696,15 @@ static int do_chpasswd(bool useStdin, bool annotate, int argc, char **argv) {
}
static int chpasswd(int argc, char **argv) {
return do_chpasswd(false, false, argc, argv);
return do_chpasswd(false, false, false, argc, argv);
}
static int chpasswdAutomaticly(int argc, char **argv) {
return do_chpasswd(true, false, argc, argv);
return do_chpasswd(true, false, false, argc, argv);
}
static int ckpasswdAutomaticly(int argc, char **argv) {
return do_chpasswd(true, false, true, argc, argv);
}
int main(int argc, char **argv) {