我正在一个使用混合方法对东西进行加密和解密的程序中,这是使用AES simmetrical和RSA asimmetrical密钥的。所有这些密钥都存储在KeyStore .jks文件中。
问题:尝试将私钥输入密钥库文件时,KeyStore Java类需要一个Certificate数组。例如,这段代码:
String alias = "sth";
Key myKey = generator.generateKeyPair().getPrivate();
char[] keyStorePass = {'1', '2', '3', '4'};
myKeyStore.setKeyEntry(alias, myKey, keyStorePass, null);
将引发异常,因为myKey是私钥,并且我不向setKeyEntry提供证书。
java.lang.IllegalArgumentException: Private key must be accompanied by certificate chain
现在,这里的真正问题是我不知道如何生成要提供给KeyStore类的证书。 Java文档告诉您需要提供一个Certificate []对象,但是Eclipse IDE告诉我不推荐使用Certificate类(IIRC意味着不再使用它)并且也不能实例化。那么,如何生成在整个程序中使用的证书?