AsymmetricCipherKeyPair

AsymmetricCipherKeyPair

我的目标是生成Armoer椭圆曲线(ECC)公钥和私钥。因此,我实现了AsymmetricCipherKeyPair,现在我必须将其转换为OpenPGP Key,然后将其传递给KeyRingGenrator。


X9ECParameters parms = ECNamedCurveTable.getByOID(new ASN1ObjectIdentifier("curve25519"));
      ECParameterSpec domainparams =  EC5Util.convertToSpec(parms);

        ECDomainParameters domainParams = EC5Util.getDomainParameters(null,domainparams);


        SecureRandom secureRandom = new SecureRandom();
        ECKeyGenerationParameters keyParams = new ECKeyGenerationParameters(domainParams, secureRandom);

        ECKeyPairGenerator generator = new ECKeyPairGenerator();
        generator.init(keyParams);
        AsymmetricCipherKeyPair keyPair = generator.generateKeyPair();


生成keyPair后,我必须将其转换为OpenPGP密钥对,以便可以在以下函数中传递它。
PGPKeyPair eccKeyPair = new PGPKeyPair("openPGPPublicKey", "openPGPPrivateKey");

此功能还用于生成钥匙圈。



PGPKeyRingGenerator    keyRingGen = new PGPKeyRingGenerator (PGPSignature.DEFAULT_CERTIFICATION,
                eccKeyPair ,
                "[email protected]", null, null,
                null, new BcPGPContentSignerBuilder(PGPPublicKey.EC,
                HashAlgorithmTags.SHA256),
                new BcPBESecretKeyEncryptorBuilder(PGPEncryptedData.AES_256).build(passPhrase));

最佳答案

查看API文档时,我发现:


不推荐使用。根据需要使用BcPGPKeyPairJcaPGPKeyPair


BcPGPKeyPair呢?

毕竟,您是使用Bouncy Castle的轻量级API生成密钥对的。

关于java - 如何从AsymmetricCipherKeyPair创建PGP公钥和私钥?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56852033/

10-10 03:11