加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 从Bouncy Castle的byte []获取ECPoint / ECPublicKeyPar

发布时间:2020-12-15 04:14:50 所属栏目:Java 来源:网络整理
导读:到目前为止,我已经设法在充气城堡的轻量级API中生成ECDHE对.但是,我尝试从byte []重新创建公钥时遇到问题. 由于ECPublicKeyParameters对象只有一个方法getQ(),我假设重建密钥所需的全部内容.其他参数如使用的曲线(P-521)保持不变. 我正在做以下事情: Asymme
到目前为止,我已经设法在充气城堡的轻量级API中生成ECDHE对.但是,我尝试从byte []重新创建公钥时遇到问题.

由于ECPublicKeyParameters对象只有一个方法getQ(),我假设重建密钥所需的全部内容.其他参数如使用的曲线(P-521)保持不变.

我正在做以下事情:

AsymmetricCipherKeyPair kp = kpgen.generateKeyPair(); //ECDHE Key Generator

ECPublicKeyParameters pubKey = (ECPublicKeyParameters)kp.getPublic();
byte[] aPubKeybytes = pubKey.getQ().getEncoded(false); //Should I set to true or false?

除非有另一种方法来获取公钥pubKey的原始字节,否则我没有看到在不调用返回ECPoint对象的方法getQ()的情况下获取字节的方法.

我的问题是如何使用bouncy castle的轻量级API将byte []重建为ECPoint对象.或者,更好的是,如何使用从原始pubKey对象派生的字节数组重建整个ECPublicKeyParameter对象.

解决方法

对于可能涉及的任何人,我通过使用PublicKeyFactory和SubjectPublicKeyInfoFactory来对密钥进行编码和解码,从而解决了这个问题.

使用:

byte[] key = SubjectPublicKeyInfoFactory.createSubjectPublicKeyInfo(pubKey).getEncoded();

我能够获得密钥的原始字节.

和使用:

ECPublicKeyParameters bpubKey = (ECPublicKeyParameters)PublicKeyFactory.createKey(key);

我能够重新创建公钥.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读