如何在Java Card上编码ECDSA PublicKey,以便在我可以在另一个平台上解码之后(例如,在响应APDU中发送编码密钥并在标准Java应用程序中处理它)? Java上的keyPair.getPublic().getEncoded()
会使用PKCS#8编码,但据我所知,Java Card平台上没有getEncoded()
。
答案 0 :(得分:4)
您可以像这样实现此功能:
卡方:
标准java应用程序端:
答案 1 :(得分:1)
getEncoded()
方法以主编码格式返回密钥,如果密钥不支持编码,则返回null。因此,您不需要将它用于您的目标。你只需使用向下转换为ECPublicKey
:
ECPublicKey pubKey = (ECPublicKey) keyPair.getPublic()
上面一行中的pubKey
与Java应用程序中getEncoded()
方法的输出相等。