SECNamedCurves.getByName ("secp256r1"), показывающий исключение NoSuchMethod в Android Q - PullRequest
0 голосов
/ 24 октября 2019

Когда я генерирую открытый ключ с помощью ECDH_KeyGeneration.getPublicKey () в библиотеке robovm. выдает исключение - NoSuchMethodException . Эта проблема возникла только в Android Q. пока пирог андроида работает нормально.

   X9ECParameters ecp = SECNamedCurves.getByName("secp256r1");
    ECDomainParameters domainParams = new ECDomainParameters(ecp.getCurve(),
            ecp.getG(), ecp.getN(), ecp.getH(),
            ecp.getSeed());

    // Generate a private key and a public key
    AsymmetricCipherKeyPair keyPair;
    ECKeyGenerationParameters keyGenParams = new ECKeyGenerationParameters(domainParams, new SecureRandom());
    ECKeyPairGenerator generator = new ECKeyPairGenerator();
    generator.init(keyGenParams);
    keyPair = generator.generateKeyPair();
    ECPrivateKeyParameters privateKey = (ECPrivateKeyParameters) keyPair.getPrivate();

    ECPublicKeyParameters publicKey = ((ECPublicKeyParameters) keyPair.getPublic());
    mPrivateKeyBytes2 = privateKey.getD().toByteArray();
    String str = Hex.toHexString(publicKey.getQ().getEncoded(false));

Lcom/android/org/bouncycastle/asn1/sec/SECNamedCurves; or its super classes (declaration of 'com.android.org.bouncycastle.asn1.sec.SECNamedCurves' appears in /apex/com.android.runtime/javalib/bouncycastle.jar)
        at projects.athansys.com.athandoctorassist.helper.ECDH_KeyGeneration.getPublicKey(ECDH_KeyGeneration.java:25)
...