如何在android中执行OpenSSL命令?

问题描述 投票:0回答:0

我需要在 android 中以编程方式运行 OpenSSL 命令,但它会抛出以下错误:

“无法运行程序“openssl”:错误=2,没有那个文件或目录”

这是我的代码:

public class MainActivity extends AppCompatActivity {

    @SuppressLint("MissingInflatedId")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

   executeSH("openssl ecparam -name prime256v1 -genkey -noout -out prime-private-key.pem",true);

}
  private String executeSH(String command, boolean waitFor) throws IOException, InterruptedException {
        Process process = null;
        InputStream inputStream = null;
        InputStreamReader inputStreamReader = null;
        BufferedReader bufferedReader = null;
        String line, output = "";
        try {
            Runtime runtime = Runtime.getRuntime();
            process = runtime.exec(command);
            inputStream = process.getInputStream();
            inputStreamReader = new InputStreamReader(inputStream);
            bufferedReader = new BufferedReader(inputStreamReader);

            while ((line = bufferedReader.readLine()) != null) {
                output += line;
                File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
                File newDir = new File(path + "/" + "a.txt");
                if (!newDir.exists()) {
                    newDir.mkdir();
                }
                FileOutputStream writer = new FileOutputStream(new File(path, "a.txt"));
                writer.write(output.getBytes());
                writer.close();
                Log.e("TAG", "Wrote to file: " + "a.txt");
            }
                if (waitFor) {
                    process.waitFor();
                }
                return output;
            }
        finally {
            if (bufferedReader != null) bufferedReader.close();
            if (inputStreamReader != null) inputStreamReader.close();
            if (inputStream != null) inputStream.close();
            if (process != null) process.destroy();
        }
    }

也许有人可以帮我解决这个问题

java android kotlin openssl inputstream
© www.soinside.com 2019 - 2024. All rights reserved.