首页 > 解决方案 > 从智能卡读取私钥以对 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);

对于如何读取/查看卡内容以找到私钥的任何帮助,我们将不胜感激。

谢谢!

标签: javadigital-signature

解决方案


推荐阅读