diff --git a/upassword b/upassword index 5105cb2..6c4a8f6 100755 --- a/upassword +++ b/upassword @@ -4,9 +4,12 @@ compiler=javac mainClass=upassword compileAndGo +import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; import java.io.PrintWriter; import java.io.StringWriter; import java.io.UnsupportedEncodingException; @@ -4758,6 +4761,8 @@ public class upassword { return Pattern.matches("\\d{8}", codEtu); } + private static boolean ETU_PASSWORD_GROUPS_LOCKED = true; + private static final String[] ETU_PASSWORD_GROUPS = new String[] { // "jiPV/09lHKI1uz+a9vUpX0yMUIy9YAeIwfHPXoA81ik=", @@ -4770,9 +4775,12 @@ public class upassword { "yYjWpZXP2EMWp7VZR+0xPA=="}; private static final void unlockEtuPasswordGroups(String skey) throws Exception { - byte[] key = AESEnc.getKey(skey); - for (int i = 0; i < ETU_PASSWORD_GROUPS.length; i++) { - ETU_PASSWORD_GROUPS[i] = AESEnc.sdecrypt(ETU_PASSWORD_GROUPS[i], key); + if (ETU_PASSWORD_GROUPS_LOCKED) { + byte[] key = AESEnc.getKey(skey); + for (int i = 0; i < ETU_PASSWORD_GROUPS.length; i++) { + ETU_PASSWORD_GROUPS[i] = AESEnc.sdecrypt(ETU_PASSWORD_GROUPS[i], key); + } + ETU_PASSWORD_GROUPS_LOCKED = false; } } @@ -4820,7 +4828,7 @@ public class upassword { + "\n avec les options -G, -s, -e et -d" + "\n --shell" + "\n Afficher les valeurs pour évaluation par le shell"); - System.exit(0); + return; } EAction action = EAction.HASH_PASSWORD; @@ -5081,7 +5089,33 @@ public class upassword { } } + private static final Pattern SPACES = Pattern.compile("\\s+"); + public static void main(String[] args) { - new upassword().run(args); + upassword upassword = new upassword(); + if (args.length > 0 && args[0].equals("--batch")) { + StringBuilder sb = new StringBuilder(); + for (int i = 1; i < args.length; i++) { + if (i > 1) sb.append(" "); + sb.append(args[i]); + } + String after = sb.toString(); + if (after.length() == 0) after = null; + + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + try { + while (true) { + String line = br.readLine(); + if (line == null) break; + upassword.run(SPACES.split(line)); + if (after != null) println(after); + } + } catch (IOException e) { + die(null, e); + } + + } else { + upassword.run(args); + } } }