关于我的项目,先简单介绍一下:
我正在使用 Android(BouncyCastle)实现一个使用 ECDH 进行短信加密的程序,需要通过短信发送我的公钥。在功能方面,一切都正常工作,但我对我所实现的 X.509 代码有些怀疑。
发送方代码如下:
byte[] pubEnc = aKeyPair.getPublic().getEncoded();
X509EncodedKeySpec pubX509 = new X509EncodedKeySpec(pubEnc);
pubX509先编码成Base64格式,然后通过短信发送。
接收方需要进行以下操作:
KeyFactory keyFac = KeyFactory.getInstance("ECDH", "SC");
X509EncodedKeySpec pubX509 = new X509EncodedKeySpec(SharedS);
ECPublicKey pubKey = (ECPublicKey)keyFac.generatePublic(pubX509);
接收到的值进行Base64解码,得到SharedS,将其转换为新的pubX509。
实现方面来说,这段代码似乎没问题,但我想知道我是否正确地实现了X509。
任何建议都将不胜感激。