java - 从智能卡读取私钥以对 XML 文档进行数字签名
问题描述
我正在开发一个应用程序,用户应该能够使用智能卡对 XML 文档进行数字签名,该智能卡将保存他们的私钥。
在测试期间,我能够根据两个密钥(公共和私有)的文件路径生成 xml 签名。
我的问题是如何从智能卡中读取私钥。我可以使用以下代码从卡中获得响应:
TerminalFactory factory = TerminalFactory.getDefault();
List<CardTerminal> terminals = factory.terminals().list();
CardTerminal terminal = terminals.get(0);
Card card = terminal.connect("*");
System.out.println("Card: " + card);
CardChannel channel = card.getBasicChannel();
ResponseAPDU r = channel.transmit(new CommandAPDU(0x00, 0x84, 0x00, 0x00, 0x08));
String hex = DatatypeConverter.printHexBinary(r.getBytes());
System.out.println("Response: " + hex);
对于如何读取/查看卡内容以找到私钥的任何帮助,我们将不胜感激。
谢谢!
解决方案
推荐阅读
- javascript - 如何从嵌套的 JSON 有效负载 (JavaScript) 中删除特定元素?
- java - Android 移动导航 - 未生成 NavController Action 类
- reactjs - 如何使用该 API?反应抓取
- tmux - 是否可以使用 vim 键绑定从 PuTTY 上的 tmux 将文本复制到我的 Windows 10 剪贴板?
- r - 具有多个虚拟变量的饼图
- graphql - Gatsby Remark 插件:创建的节点对 GraphIQL 可见,但在 Gatsby 页面上的查询返回 null
- javascript - Ajax 服务器端 proc 以 Invalid JSON response 结束
- selenium - Selenium (chromedriver) 在本地机器上工作,但不在 Ubuntu 服务器上
- python - Tensorflow Keras 从回调中修改模型变量
- c# - 将对象转换为类时,未包含在对象中的变量会发生什么情况?