JavaCard 上的椭圆曲线 DSA - 我还需要初始化什么?
Elliptic Curve DSA on JavaCard - what else do I need to initialise?
我正在尝试在 JavaCard 上实现 ECDSA。到目前为止我有这个代码:
Signature sig = Signature.getInstance(Signature.ALG_ECDSA_SHA_256, false);
KeyPair key = new KeyPair(KeyPair.ALG_EC_FP, (short)256);
key.genKeyPair();
sig.init(key.Private(), Signature.MODE_SIGN);
sig.sign(data, (short)0, dataLen, outputBuf, (short)0);
当我尝试使用 getK()
方法退出 K 以便我可以在 APDU 中发送 public 密钥时,我收到错误代码 6F 00。
根据文档 getK()
如果 'cofactor of the order of the fixed point G of the curve of the key has not been successfully initialized'
可以抛出 CryptoException.UNINITIALIZED_KEY
设置 keys/signature 时还需要初始化什么吗?
您需要初始化域参数:A、B、G、R、K 和字段。有关 NIST 推荐曲线的列表,您可以在此处查看:https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf
我正在尝试在 JavaCard 上实现 ECDSA。到目前为止我有这个代码:
Signature sig = Signature.getInstance(Signature.ALG_ECDSA_SHA_256, false);
KeyPair key = new KeyPair(KeyPair.ALG_EC_FP, (short)256);
key.genKeyPair();
sig.init(key.Private(), Signature.MODE_SIGN);
sig.sign(data, (short)0, dataLen, outputBuf, (short)0);
当我尝试使用 getK()
方法退出 K 以便我可以在 APDU 中发送 public 密钥时,我收到错误代码 6F 00。
根据文档 getK()
如果 'cofactor of the order of the fixed point G of the curve of the key has not been successfully initialized'
CryptoException.UNINITIALIZED_KEY
设置 keys/signature 时还需要初始化什么吗?
您需要初始化域参数:A、B、G、R、K 和字段。有关 NIST 推荐曲线的列表,您可以在此处查看:https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf