在 javacard 上的椭圆曲线 DSA 中使用 getK() 时出现未初始化的密钥异常

Uninitialized Key Exception when using getK() in Elliptic Curve DSA on javacard

当尝试在 JavaCard 中的密钥对上使用 getK() 方法时,我得到了这个异常代码:CryptoException.UNINITIALIZED_KEY

这是我生成密钥对的代码:

KeyPair key = new KeyPair(KeyPair.ALG_EC_FP, (short)256);
key.genKeyPair();

稍后在我尝试的代码中 运行

ECPublicKey eCPublicKey = (ECPublicKey) key.getPublic();
short hLeng = eCPublicKey.getK();

但这是我抛出异常的时候。我还需要做些什么来初始化密钥吗?

您需要初始化域参数a、b、g、k、r和字段。您可以在此处找到 NIST 推荐曲线的列表:https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf

getK() 正在抛出异常,因为它尚未初始化。