Моя цель состоит в том, чтобы создать открытый и закрытый ключ 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));