小编kok*_*okx的帖子

Elliptic Curve Diffie Hellman 如何在 JavaCard 上与 Java 结合使用?

我正在尝试让 Elliptic Curve Diffie Hellman 在 JavaCard(2.2.1 版)上工作。

在 JavaCard 上,我现在有以下代码:

byte temp[] = new byte[100];
byte secret[] = new byte[100];
byte size = buf[ISO7816.OFFSET_LC];

Util.arrayCopy(buf, ISO7816.OFFSET_CDATA, temp, (byte) 0, size);

// the public key is in temp
short len = dh.generateSecret(temp, (byte) 0, size, secret, (byte) 0);

Util.arrayCopy(temp, (byte) 0, buf, ISO7816.OFFSET_CDATA, size);
//Util.arrayCopy(secret, (byte) 0, buf, ISO7816.OFFSET_CDATA, len);
apdu.setOutgoingAndSend(ISO7816.OFFSET_CDATA, size);
Run Code Online (Sandbox Code Playgroud)

我初始化dh如下:

keyPair = new KeyPair(KeyPair.ALG_EC_FP, KeyBuilder.LENGTH_EC_F2M_163);
keyPair.genKeyPair();
dh = KeyAgreement.getInstance(KeyAgreement.ALG_EC_SVDP_DH, false);
dh.init(keyPair.getPrivate());
Run Code Online (Sandbox Code Playgroud)

所有这些似乎都有效,除了dh.generateSecret调用外,小程序似乎只是崩溃了。如果我忽略调用并返回其他数据,则效果很好。其中我导入了终端发送的数据。在终端中,我有以下内容:

// …
Run Code Online (Sandbox Code Playgroud)

java elliptic-curve javacard diffie-hellman

5
推荐指数
1
解决办法
769
查看次数

标签 统计

diffie-hellman ×1

elliptic-curve ×1

java ×1

javacard ×1