gpt4 book ai didi

java - 在 Java 中使用 SSL 的 Pkcs#11

转载 作者:太空宇宙 更新时间:2023-11-03 14:04:55 25 4
gpt4 key购买 nike

如何在 java 中使用 pkcs#11 和 softhsm2 进行 ssl 握手。我在使用存储在 softhsm2 中的 key 实现 ssl 上下文工厂时遇到了问题。请提供我可以使用的示例。

最佳答案

这里是 pkcs#11 for ssl handshake in java 的解决方案。

       System.setProperty("javax.net.debug", "ssl");
try {
String configName = "softhsm2.cfg";
Provider p = new SunPKCS11(configName);
System.out.println(p.getName());
Security.addProvider(p);


// Load the key store
char[] pin = "5678".toCharArray();
KeyStore ks = KeyStore.getInstance("PKCS11", p);
ks.load(null, pin);
System.out.println(ks.size());
Enumeration<String> aliases = ks.aliases();
for(;aliases.hasMoreElements();)
{
System.out.println(aliases.nextElement());
}
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("SunX509");
//Add to keystore to key manager
keyManagerFactory.init(ks, pin);

//Create the context

SSLContext context = SSLContext.getInstance("TLS");
context.init(keyManagerFactory.getKeyManagers(), null, new SecureRandom());
//Create a socket factory
SSLServerSocketFactory ssf = context.getServerSocketFactory();
//SSLSocketFactory sf = context.getSocketFactory();
//Create the socket
SSLServerSocket s = (SSLServerSocket) ssf.createServerSocket(8888);
printServerSocketInfo(s);
SSLSocket c = (SSLSocket) s.accept();

关于java - 在 Java 中使用 SSL 的 Pkcs#11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44041405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com