Как создать открытый и закрытый ключи PGP из AsymmetricCipherKeyPair? - PullRequest
0 голосов
/ 02 июля 2019

Моя цель состоит в том, чтобы создать открытый и закрытый ключ armoer eliptical curve (ECC). Итак, я реализовал AsymmetricCipherKeyPair, теперь мне нужно преобразовать его в ключ OpenPGP, чтобы передать его 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 ,
                "umaimaahmed1@gmail.com", null, null,
                null, new BcPGPContentSignerBuilder(PGPPublicKey.EC,
                HashAlgorithmTags.SHA256),
                new BcPBESecretKeyEncryptorBuilder(PGPEncryptedData.AES_256).build(passPhrase));

1 Ответ

0 голосов
/ 03 июля 2019

При просмотре документации по API я нахожу:

Устаревший.используйте BcPGPKeyPair или JcaPGPKeyPair в зависимости от ситуации.

Как насчет BcPGPKeyPair?

В конце концов, вы генерируете пару ключей, используя облегченный API Bouncy Castle.

...