.key 파일을 읽으 려 할 때 문제가 있습니다. 이 파일은 일반 Java (J2SE)에 의해 만들어지며 android 응용 프로그램에서 읽습니다. 내가 안드로이드 에서이 파일을 읽을 때 그것은 나에게 아무것도주지 않는다. 그리고 나는 약간의 디버깅을했다. 그리고 나는 그것이 파일을 읽을 수 없다는 것을 알아 차렸다. 또한 내가 파일을 읽을 수 있는지 확인했다면 (file.canRead())
을 사용하면 확인할 수 없다.) 나는 정상적인 자바 애플리케이션 (J2SE)을 동일한 코드로 만들었고 성공적으로 작동했다는 것을 알았고 성공적으로 작동했다는 것을 주목하라..key 파일 읽기 android
내가 사용한 코드 PemReader이 BouncyCastleProvider에 있기 때문에 난 그냥, 같은 것을 할,
그렇다면
public KeyPair LoadKeyPair(String algorithm, String publicFileName, String privateFileName) {
// Read Public Key.
PublicKey publicKey = null;
PrivateKey privateKey = null;
try {
File filePublicKey = new File(publicFileName);
FileInputStream fis = new FileInputStream(publicFileName); // The program stops here
byte[] encodedPublicKey = new byte[(int) filePublicKey.length()];
fis.read(encodedPublicKey);
fis.close();
// Read Private Key.
File filePrivateKey = new File(privateFileName);
fis = new FileInputStream(privateFileName);
byte[] encodedPrivateKey = new byte[(int) filePrivateKey.length()];
fis.read(encodedPrivateKey);
fis.close();
// Generate KeyPair.
KeyFactory keyFactory = KeyFactory.getInstance(algorithm);
X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(
encodedPublicKey);
publicKey = keyFactory.generatePublic(publicKeySpec);
PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(
encodedPrivateKey);
privateKey = keyFactory.generatePrivate(privateKeySpec);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidKeySpecException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return new KeyPair(publicKey, privateKey);
}
어디에서 파일을 읽나요? SD 카드? – Macarse
안드로이드 애플 리케이션의 동일한 디렉토리에 있습니다 – malak