如何使辅助文件成为Android应用程序的一部分

时间:2014-09-23 16:27:40

标签: java android eclipse avd

Android开发新手。我试图将我最初为桌面创建的Java类移植到android(我想将它集成到我的应用程序中)。它是一个TCP / SSL客户端。我的主要问题是如何在我的应用程序的类部分(client.jks和serverpub.jks)中引用2 .JKS文件。不确定它在android中是如何工作的。我知道android上的文件系统类似于桌面系统。我想弄清楚的是如何将这些证书文件加载到android作为包的一部分,以便我们的应用程序可以找到它们。现在,我正在eclipse中使用AVD模拟器。

感谢您的帮助。

这是简化的原始类供参考。

public class DataRequest 
{
SSLContext sc, sslctx;
KeyManagerFactory clientKeyManager;
TrustManagerFactory trustManager;
String sHostname, sPort;    

void SSLSetup() throws Exception 
{
    //load client private key
    KeyStore clientKeys = KeyStore.getInstance("JKS");
    clientKeys.load(new FileInputStream("client.jks"),"password".toCharArray());
    clientKeyManager = KeyManagerFactory.getInstance("SunX509");
    clientKeyManager.init(clientKeys,"password".toCharArray());
    //load server public key
    KeyStore serverPub = KeyStore.getInstance("JKS");
    serverPub.load(new FileInputStream("serverpub.jks"),"password".toCharArray());
    trustManager = TrustManagerFactory.getInstance("SunX509");
    trustManager.init(serverPub);
    sc = SSLContext.getInstance("SSL");
    sc.init(clientKeyManager.getKeyManagers(), trustManager.getTrustManagers(), new java.security.SecureRandom());
    HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
    //create all-trusting host name verifier
    HostnameVerifier allHostsValid = new HostnameVerifier() {
        public boolean verify(String hostname, SSLSession session) {
            return true;
        }
    };
    // use keys to create SSLSoket
    sslctx = SSLContext.getInstance("TLS");
    sslctx.init(clientKeyManager.getKeyManagers(), trustManager.getTrustManagers(), null);
}   
public void sendRequest(String sCommand) throws Exception
{           
    //send the request
    //get response from server
}
}

我的主要问题是

0 个答案:

没有答案