我正在尝试使用ECKA-EG协议为给定密钥生成共享密钥,但是 我没有这样做,我试图使用这样的代码:
KeyAgreement keyAgreement = KeyAgreement.getInstance("ECDH", PROVIDER);
keyAgreement.init(secretKey);
BCECPrivateKey ecKey = (BCECPrivateKey) secretKey;
ECParameterSpec ecSpec = ecKey.getParameters();
PublicKey pubKey = extractECPublicKey(ecSpec, publicKey);
keyAgreement.doPhase(pubKey, true);
return keyAgreement.generateSecret("AES").getEncoded();
但结果共享的秘密不是我所期待的......
这意味着我有一些来自外部机器的加密值(共享机密应该在计算并发送bakc后加密),加密密钥由我的服务器给我,更多我有样本共享密码:
Shared Secret = 0x3F33EC720C06043647195589EA8182AC3F7190DAF8CBE2A3972E9DA6FB160CAF
和
Result = 0x1ACF5F4B5633FA391D3E91CC2E12201F
如果我将这个共享密码硬编码到我的应用程序,结果是可以的,所以只有失败的一点是生成共享密钥,根据规范它应该是ECKA-EG。
我应该如何在java中执行ECKA-EG? 感谢。