主要问题:如何在没有错误的情况下在 android 中获取 ECDH 密钥对。
我想执行 Diffie-Hellman 密钥交换算法。所以我写道:
import java.security.KeyPairGenerator;
KeyPairGenerator kpgen =KeyPairGenerator.getInstance("ECDH", "BC");
ECGenParameterSpec genspec = new ECGenParameterSpec("brainpoolp256r1");
kpgen.initialize(genspec);
KeyPair localKeyPair = kpgen.generateKeyPair();
我得到这个错误:
java.security.NoSuchAlgorithmException:没有这样的算法:提供者 BC 的 ECDH
所以我将 SpongyCastle 添加到 gradle 文件中,然后在 onCreate 中添加了这一行:
Security.addProvider(new BouncyCastleProvider());
这是我的静态方法:
Security.insertProviderAt(new org.spongycastle.jce.provider.BouncyCastleProvider(), 1);
但是我仍然会因为输出类型的不一致而出现错误,这些错误无法通过强制转换为该特定类来修复。
总的来说,我想生成一个密钥对,获取对方的公钥并进行密钥协商。