从 Java Card Applet 中的 public 密钥生成证书

Generating a certificate from the public key in Java Card Applet

我想将在我的小程序中生成的私有-public 密钥对 (RSA 1024) 的 public 密钥发送到主机 application/terminal。现在我通过将模数和指数发送到终端来完成此操作。但是可以以证书格式发送此 public 密钥吗?如果是那么怎么办?

可能是,但这意味着您必须在您的智能卡中实施最低限度的证书颁发机构 (CA)。

如果此证书不是自签名的,那么您还需要生成或导入 CA 的私钥。此外,智能卡通常受到很大限制。例如,要在智能卡中放置一个 effective/expiry 日期,您需要一个时钟。如果时钟不可用,那么您需要一个可信的时间源。如果您在受信任的系统上有受信任的时间源,您也可以在该受信任的系统上创建 CA。

我不会讨论内存管理、卡上 ASN.1 库的实现、证书不适合普通 APDU 等问题。这只是 详情.

所以一般在智能卡上的操作量是比较有限的。在这样一个受限的环境中,实施完整的 CA 可能不是您想要的。但是,您可以做的是在智能卡上创建 PKCS#10 兼容证书 request 并将其发送给 CA。不过,即便如此,工作量也会很大。