我在这条线上出现错误:

final KeyStore keyStore = KeyStore.getInstance("BKS");

我得到的错误是:
java.security.KeyStoreException: BKS not found
    at java.security.KeyStore.getInstance(Unknown Source)
    at AppListen.<init>(AppListen.java:84)

我将bcprov-jdk16-146.jar添加到“引用库”中,但还是没有运气。

我的总体程序允许将Android手机用作使用SSL套接字连接的计算机的鼠标和键盘。 android应用具有相同的行,没有错误。

我究竟做错了什么?

编辑:

也许对大多数人来说这是常识,但对我而言却不是,所以对于像我这样的人来说,这就是我所做的。

我使用BKS的原因是因为这是android允许的唯一格式,但是我不知道您只需要在android端使用它,就可以在服务器上使用其他格式,然后制作 key 的副本并将其转换为在Android上使用的BKS,无需BouncyCaSTLe。

我为服务器使用了JKS key ,然后使用名为portecle的程序将该 key 的副本转换为BKS以在android上使用。

最佳答案

此错误表明keytool尝试实例化BKS keystore ,但是没有密码服务提供程序(CSP)能够提供这种实现。 BKS keystore 类型是由BouncyCastle CSP实现的类型
因此,您必须使用Java安装BouncyCaSTLe提供程序。 Installing Providers
然后看看this also.

10-01 13:30