【发布时间】:2014-06-30 10:44:19
【问题描述】:
我正在尝试将 .PFX 证书保存到我的应用程序的内部存储中。
当我从资产或原始获取 de .pfx 时,获得的 InputStream 很好,并且工作正常。但是,如果我将此 InputStream 存储在内部存储(或 Sharedprefences)上,则 .PFX 不起作用...并在加载密钥库时出现此错误:
java.io.IOException:流不代表 PKCS12 密钥库
此代码有效,但我需要将证书存储在内存中,而不是从资产中获取...:
InputStream is = AppConstants.appContext.getResources().openRawResource(R.raw.XXXX);
这是保存.PFX的代码:
InputStream is = AppConstants.appContext.getResources().openRawResource(R.raw.XXXX);
String filename = "XXXX";
String string = is.toString();
FileOutputStream outputStream;
try {
outputStream = AppConstants.appContext.openFileOutput(filename, AppConstants.appContext.MODE_PRIVATE);
outputStream.write(string.getBytes());
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
这是加载存储的 .PFX 的代码:
String filename = Uri.parse(PFX_FILE).getLastPathSegment();
File file = File.createTempFile(filename, null, AppConstants.appContext.getCacheDir());
keyStore.load(new FileInputStream(file), "xxxx".toCharArray());
如何将证书保存在内存中?
【问题讨论】:
标签: java android ssl certificate pfx