diff --git a/upassword b/upassword index 6e1b858..6dd5004 100755 --- a/upassword +++ b/upassword @@ -4743,7 +4743,22 @@ public class upassword { + "\n upassword -f aeskeyfile -G [password [salt]]" + "\n upassword -f aeskeyfile -s" + "\n upassword -f aeskeyfile -e clear" - + "\n upassword -f aeskeyfile -d crypted"); + + "\n upassword -f aeskeyfile -d crypted" + + "\n\nOPTIONS" + + "\n -p, --hash-password" + + "\n Crypter un mot de passe (option par défaut). Si le mot de passe en clair" + + "\n et/ou le salt ne sont pas spécifiés, ils sont choisis au hasard. " + + "\n -G, --aes-genkey" + + "\n Générer une clé AES pour utilisation avec les options -s, -e, -d" + + "\n -s, --aes-showkey" + + "\n Afficher encodée en base64 la clé AES contenue dans le fichier spécifié" + + "\n -e, --aes-encrypt" + + "\n Crypter un mot de passe avec la clé AES spécifiée" + + "\n -d, --aes-decrypt" + + "\n Décrypter un mot de passe avec la clé AES spécifiée" + + "\n -f, --aes-keyfile" + + "\n Spécifier le fichier contenant la clé AES. Cette option est obligatoire" + + "\n avec les options -G, -s, -e et -d"); System.exit(0); } @@ -4752,24 +4767,24 @@ public class upassword { int i = 0, max = args.length; while (i < args.length) { String arg = args[i]; - if (arg.equals("-p")) { + if (arg.equals("-p") || arg.equals("--hash-password")) { action = EAction.HASH_PASSWORD; i++; - } else if (arg.equals("-G")) { + } else if (arg.equals("-G") || arg.equals("--aes-genkey")) { action = EAction.GEN_AESKEY; i++; - } else if (arg.equals("-s")) { + } else if (arg.equals("-s") || arg.equals("--aes-showkey")) { action = EAction.SHOW_AESKEY; i++; - } else if (arg.equals("-e")) { + } else if (arg.equals("-e") || arg.equals("--aes-encrypt")) { action = EAction.AES_ENCRYPT; i++; - } else if (arg.equals("-d")) { + } else if (arg.equals("-d") || arg.equals("--aes-decrypt")) { action = EAction.AES_DECRYPT; i++; - } else if (arg.substring(0, 2).equals("-f")) { + } else if (arg.substring(0, 2).equals("-f") || arg.equals("--aes-keyfile")) { int shift = 1; - if (arg.equals("-f")) { + if (arg.equals("-f") || arg.equals("--aes-keyfile")) { if (args.length > i + 1) { aeskeyfile = args[i + 1]; shift = 2; @@ -4850,18 +4865,21 @@ public class upassword { .getNormalized(); println("salt: " + cryptSalt); println("crypt: " + crypt); + if (salt.equals(crypt)) println("match: true"); } else if (Password.isSshaScheme(salt)) { byte[] sshaSalt = Salt.getSshaSalt(salt); String ssha = getPasswordBinarySalt(clear, Password.SSHA, sshaSalt) .getNormalized(); println("salt: " + toHex(sshaSalt)); println("ssha: " + ssha); + if (salt.equals(ssha)) println("match: true"); } else if (Password.isSmd5Scheme(salt)) { byte[] smd5Salt = Salt.getSmd5Salt(salt); String smd5 = getPasswordBinarySalt(clear, Password.SMD5, smd5Salt) .getNormalized(); println("salt: " + toHex(smd5Salt)); println("smd5: " + smd5); + if (salt.equals(smd5)) println("match: true"); } else { println("salt: " + salt + " !not supported"); } @@ -4880,13 +4898,17 @@ public class upassword { .getNormalized(); if (!salt.equals(cryptSalt)) println("salt: " + cryptSalt); println("crypt: " + crypt); + if (salt.equals(crypt)) println("match: true"); } + if (salt.equals(ssha)) println("match: true"); + if (salt.equals(smd5)) println("match: true"); } else { String cryptSalt = Salt.getCryptSalt(salt); String crypt = getPasswordCryptSalt(clear, Password.CRYPT, cryptSalt) .getNormalized(); println("salt: " + cryptSalt); println("crypt: " + crypt); + if (salt.equals(crypt)) println("match: true"); } } }