diff -ru cryptsetup-1.5.0/lib/luks1/keymanage.c lukscrackplus/lib/luks1/keymanage.c --- cryptsetup-1.5.0/lib/luks1/keymanage.c 2012-07-10 20:21:17.000000000 +0200 +++ lukscrackplus/lib/luks1/keymanage.c 2013-08-23 12:29:40.600955517 +0200 @@ -933,7 +933,7 @@ return r; } /* Warning, early returns above */ - log_err(ctx, _("No key available with this passphrase.\n")); + // log_err(ctx, _("No key available with this passphrase.\n")); return -EPERM; } diff -ru cryptsetup-1.5.0/lib/setup.c lukscrackplus/lib/setup.c --- cryptsetup-1.5.0/lib/setup.c 2012-07-10 20:21:17.000000000 +0200 +++ lukscrackplus/lib/setup.c 2013-08-23 12:29:40.600955517 +0200 @@ -403,27 +403,26 @@ char *passphrase_read = NULL; size_t passphrase_size_read; int r = -EINVAL, eperm = 0, tries = cd->tries; + char passphrase[128]; + int l; *vk = NULL; do { crypt_free_volume_key(*vk); *vk = NULL; - r = key_from_terminal(cd, NULL, &passphrase_read, - &passphrase_size_read, 0); - /* Continue if it is just passphrase verify mismatch */ - if (r == -EPERM) - continue; - if(r < 0) - goto out; - - r = LUKS_open_key_with_hdr(keyslot, passphrase_read, - passphrase_size_read, &cd->u.luks1.hdr, vk, cd); + passphrase_read = fgets(passphrase, 128, stdin); + l = strlen(passphrase); + passphrase[l-1] = 0; + r = LUKS_open_key_with_hdr(keyslot, passphrase, + l -1, &cd->u.luks1.hdr, vk, cd); if (r == -EPERM) eperm = 1; - crypt_safe_free(passphrase_read); - passphrase_read = NULL; - } while (r == -EPERM && (--tries > 0)); + if (r != -EPERM && r != -ENOENT) { + printf("Password Found : %s\n", passphrase); + exit(0); + } + } while (r == -EPERM && passphrase_read != NULL); out: if (r < 0) { crypt_free_volume_key(*vk); @@ -434,7 +433,7 @@ r = -EPERM; } - crypt_safe_free(passphrase_read); + // crypt_safe_free(passphrase_read); return r; }