对Java卡上的公钥进行编码
如何在Java卡上对ECDSA公钥进行编码,以便我可以在另一个平台上对其进行解码(例如,在响应APDU中发送编码密钥并在标准Java应用程序中处理)对Java卡上的公钥进行编码,java,encoding,javacard,ecdsa,pkcs#8,Java,Encoding,Javacard,Ecdsa,Pkcs#8,如何在Java卡上对ECDSA公钥进行编码,以便我可以在另一个平台上对其进行解码(例如,在响应APDU中发送编码密钥并在标准Java应用程序中处理)keyPair.getPublic().getEncoded()可以使用PKCS#8编码,但据我所知,getEncoded()在Java卡平台上不可用。getEncoded()方法以其主编码格式返回密钥,如果密钥不支持编码,则返回null。所以你不需要把它用于你的目标。您只需使用向下转换到ECPublicKey: ECPublicKey pubKey
getEncoded()
在Java卡平台上不可用。getEncoded()
方法以其主编码格式返回密钥,如果密钥不支持编码,则返回null。所以你不需要把它用于你的目标。您只需使用向下转换到ECPublicKey
:
ECPublicKey pubKey = (ECPublicKey) keyPair.getPublic()
上行中的
pubKey
与Java应用程序中的getEncoded()
方法的输出相同。您可以这样实现此函数:
卡端:
- 1 KeyPair.getPublicKey()-->publicKey李>
- 2 publicKey.getW()-->W李>
- 3将W发送到外部李>
- 1获取W个数据字节李>
- 2 W数据字节-->ECPoint李>
- 3使用步骤2中生成的ECPoint构建PublicKey,使用类ECPublicKeySpec李>
- 4在应用程序中使用公钥李>