Создание защищенных открытых / закрытых ключей ECC в андроид-студии из библиотеки Spongy Castle (OpenPGP) - PullRequest
1 голос
/ 01 июля 2019

Моя цель - создать из него пары ключей эллиптической кривой, используя библиотеку губчатых замков, а затем защитить их.

      X9ECParameters curve = ECNamedCurveTable.getByName("secp256k1");
        ECDomainParameters domainParams = new ECDomainParameters(curve.getCurve(),curve.getG(), curve.getN(), curve.getN(), curve.getSeed());

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

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

char[] passPhrase = "hello".toCharArray();
        PGPKeyPair ecKeyPair = new BcPGPKeyPair(PGPPublicKey.ECDH, kp, new Date());

PGPKeyRingGenerator    keyRingGen = new PGPKeyRingGenerator
                (PGPSignature.DEFAULT_CERTIFICATION,
                        ecKeyPair,
                        "umaimaahmed1@gmail.com", null, null,
                        null, new BcPGPContentSignerBuilder(PGPPublicKey.EC,
                        HashAlgorithmTags.SHA256),
                        new BcPBESecretKeyEncryptorBuilder(PGPEncryptedData.AES_256).build(passPhrase));

После этого выполняется генерация разобранного бронированного брелока.

Работает нормально для RSA, но для реализации ECC я получаю исключение недопустимый объект в getInstance: org.spongycastle.asn1.x9.X962Parameters

когда он попадает в строку PGPKeyPair ecKeyPair = new BcPGPKeyPair (PGPPublicKey.ECDH, kp, new Date ());

Я не могу найти что-либо в Интернете, чтобы сгенерировать кольца ключей PGP из пар ключей ECC.

...