Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android 4.4自定义JCE提供程序实现,用于硬件支持的相互SSL身份验证_Java_Android_Authentication_Ssl_Nfc - Fatal编程技术网

Java Android 4.4自定义JCE提供程序实现,用于硬件支持的相互SSL身份验证

Java Android 4.4自定义JCE提供程序实现,用于硬件支持的相互SSL身份验证,java,android,authentication,ssl,nfc,Java,Android,Authentication,Ssl,Nfc,我目前正在使用Android Studio开发一个Android应用程序,用于基于硬件的相互SSL身份验证 客户端身份验证基于硬件,因此我无法访问客户端证书的私钥 将客户端证书作为密钥库中的X509证书获取 使用私钥对数据进行签名和验证 据我所知,实现这一点的唯一方法是使用自定义JCE提供程序、密钥库和签名类获取密钥库 我发现尼古拉·埃连科夫的博客,尤其是这篇文章,真的帮助我理解了智能卡通信。谢谢你。 我尝试实现一个自定义JCE提供程序和一个自定义密钥库和签名类来编写自定义身份验证。 我的提供

我目前正在使用Android Studio开发一个Android应用程序,用于基于硬件的相互SSL身份验证

客户端身份验证基于硬件,因此我无法访问客户端证书的私钥

将客户端证书作为密钥库中的X509证书获取 使用私钥对数据进行签名和验证 据我所知,实现这一点的唯一方法是使用自定义JCE提供程序、密钥库和签名类获取密钥库

我发现尼古拉·埃连科夫的博客,尤其是这篇文章,真的帮助我理解了智能卡通信。谢谢你。

我尝试实现一个自定义JCE提供程序和一个自定义密钥库和签名类来编写自定义身份验证。 我的提供商基于文档,但在Android上,我得到了以下例外:

 SSL Context Exceptionjava.security.NoSuchAlgorithmException: KeyStore mypkcs11 implementation not found
这是我的自定义提供程序:

public class PKCS11_Custom_Provider extends AuthProvider {


public PKCS11_Custom_Provider(){
    super("Custom_p", 1.0, "Custom_p");

    AccessController.doPrivileged(new java.security.PrivilegedAction() {
        public Object run() {


            put("KeyStore.mypkcs11",
                    "Pathtomyclass.P11KeyStore");
            put("Signature.mypkcs11",
                    "Pathtomyclass.P11Signature");

            return null;
        }
    });

}...
这是我的密钥库实现:

 PKCS11_Custom_Provider myProvider = new PKCS11_Custom_Provider();
 Security.insertProviderAt(myProvider, 2);
 KeyStore ks = KeyStore.getInstance("myPKCS11", myProvider);
在使用NetBeans的JDK1.7上,代码运行良好,但在Android上,我总是遇到这个例外

我怎样才能解决这个问题