Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22717f9f authored by zhang jun's avatar zhang jun Committed by Mingwei Shi
Browse files

Signapk.java: hide the password



Reads the password through console instead of stdin directly and returns it as a string.

Change-Id: I52e525680b93e9729158f4902b22f985245dbf2f
Signed-off-by: default avatarzhang jun <jun.zhang@intel.com>
Signed-off-by: default avatarMingwei Shi <mingwei.shi@intel.com>
parent 979d578e
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder;
import org.bouncycastle.operator.jcajce.JcaDigestCalculatorProviderBuilder;
import org.bouncycastle.util.encoders.Base64;

import java.io.Console;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -166,18 +167,17 @@ class SignApk {
    }

    /**
     * Reads the password from stdin and returns it as a string.
     * Reads the password from console and returns it as a string.
     *
     * @param keyFile The file containing the private key.  Used to prompt the user.
     */
    private static String readPassword(File keyFile) {
        // TODO: use Console.readPassword() when it's available.
        System.out.print("Enter password for " + keyFile + " (password will not be hidden): ");
        System.out.flush();
        BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
        try {
            return stdin.readLine();
        } catch (IOException ex) {
        Console console;
        char[] pwd;
        if((console = System.console()) != null &&
           (pwd = console.readPassword("[%s]", "Enter password for " + keyFile)) != null){
            return String.valueOf(pwd);
        } else {
            return null;
        }
    }