Tôi đang cố gắng kết nối với máy chủ bằng cách sử dụng kho khóa được nhóm máy chủ cung cấp.Loại kho khóa .jks có hỗ trợ Android không?
khi gửi cuộc gọi dịch vụ cho máy chủ đầu tiên tôi tạo KeyStore Instance bằng cách sử dụng api sau
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
Nó trả lại loại keystore là “BKS”.
Kho lưu trữ mà nhóm máy chủ gửi là loại “.jks” (somename.jks) Vì vậy, tôi nhận được ngoại lệ “Phiên bản khóa chính sai”.
tôi đã cố gắng bằng cách đi qua “JKS” để getInstance() của KeyStore bằng cách làm theo cách
KeyStore keystore = KeyStore.getInstance("JKS");
Nhưng ở đây tôi nhận được ngoại lệ “KeyStore JKS thực hiện không tìm thấy”.
Dưới đây là đoạn mã:
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
InputStream instream = mContext.getAssets().open("somename.jks");
try {
trustStore.load(instream, "password".toCharArray());
} finally {
try {
instream.close();
} catch(Exception ignore) {
}
}
hãy hướng dẫn cho tôi để giải quyết vấn đề này.
"jks" dường như là mặc định. Nếu KeyStore này thuộc loại "jks", khóa phải được mã hóa phù hợp với chuẩn PKS # 8 dưới dạng EncryptedPrivateKeyInfo. được lấy từ đây http://developer.android.com/reference/java/security/KeyStore.html#getType() và http://developer.android.com/reference/javax/crypto/EncryptedPrivateKeyInfo.html –