java - 如何在 Mozilla NSSSDB PKCS11 中获取密钥条目的明文?
问题描述
我有一个 mozilla NSSDB PKCS11,它包括三件事之一。证书、密钥和 SecretKeyEntry。我想知道别名为“StoreXKey”的 SecretKeyEntry 的内容。首先,是否可以提取 SecretKeyEntry 的明文?由于链接,我似乎是这样认为的:https ://technosock.blogspot.com/2007/12/token-knowledge.html和https://docs.oracle.com/javase/8/docs/api/java/security /KeyStore.SecretKeyEntry.html#getSecretKey
第一个链接提供了一种方法(对我不起作用),第二个链接为我们提供了一些方法,即 .getEncoded() 据说可以在 SecretKeyEntry 上调用以获取字节数组信息。
到目前为止,这是我的代码,所有结果在使用 getEncoded 消息时都遇到了空指针异常。我确信 SecretKeyEntry 存在于 NSSDB 中。
String configFile = "config.cfg";
Provider provider = Security.getProvider("SunPKCS11"); // I am confused on how to incorporate the config file as well.
/* provider = provider.configure(configFile); // Does not work */
Security.addProvider(provider);
String defaultPIN = "--.--.--.--.----.-...-.--";
try{
KeyStore ks = KeyStore.getInstance("PKCS11");
ks.load(null, defaultPIN.toCharArray());
KeyStore.SecretKeyEntry skEntry = (KeyStore.SecretKeyEntry) ks.getEntry("StoreXKey",null); // Do I need a password protector here?
System.out.println(new String(skEntry.getSecretKey().getEncoded())); <-- Error is thrown here.
}catch (Exception e){
e.printStackTrace();
}
任何帮助/建议或链接表示赞赏。
解决方案
推荐阅读
- azure - 如何在流量管理器端点中添加虚拟规模集实例 IP
- c++ - c ++ cmake(将windows转换为平台独立)WinExec to execute_process
- python - 在python中汇总分组的日期时间数据
- django - 将云存储文件 url (s3/Alibaba OSS) 存储在 postgres 等关系数据库中的 Django 最佳实践
- javascript - 是否可以通过 HTML 元素中的会话从我的数据库中传递对象?
- ruby-on-rails - 将 URL 转换为 erb 中的锚标记
- ios - 在 SwiftUI 中使用来自 React Native 资源的字体
- php - Mac OSX Mojave 将 php 升级到 7.2
- python - 如何将现有的相关字段转换为 Odoo 13 中的计算字段?
- google-cloud-platform - Google Vision OCR 的置信度 - TEXT_DETECTION 模式