首页 > 解决方案 > 从海绵城堡库 (OpenPGP) 在 android studio 中创建装甲 ECC 公钥/私钥

问题描述

我的目标是使用海绵城堡库从中创建椭圆曲线密钥对,然后对其进行装甲。

      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());

我在互联网上找不到任何东西来从 ECC 密钥对生成 PGP 密钥环。

标签: javaandroidencryptionelliptic-curveopenpgp

解决方案


推荐阅读