Решено: Android, генерировать открытый ключ Диффи-Хеллмана, полученный как BigInteger (ошибка: неверный открытый ключ DH) - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть одно приложение android в kotlin и один Python на raspberry-Pi.

В моем приложении для Android я получаю PublicKey от моего raspberry-Pi в виде Big Integer String, и мне нужно преобразовать его в PublicKey , чтобы продолжить мой Диффи Хеллман.

С Android 5.0 API 21, который работает очень хорошо, но не с Android 8.0 API 26, У меня есть следующая ошибка на generatePublic : вызвано "com.android.org.bouncycastle.jcajce.provider.asymmetric.util.ExtendedInvalidKeySpecException: недействительный открытый ключ DH "

fun setReceivePublicKey(PublicKey: String?){
        if(PublicKey != null) {
            receivePublickeyInteger = PublicKey.toBigInteger(10)
            val kf : KeyFactory  = KeyFactory.getInstance(algorithm)
            val spec = DHPublicKeySpec(receivePublickeyInteger,p, g)
            receivePublicKey = kf.generatePublic(spec)
        }
    }

Получить ОткрытыйКлюч: «1186077227678271540134862509873546604676586024525309469618216434360152823434999056481566892156846842514101786948011297818911589672275028242935710062913875151954912314844969895542136815935639151551824495652302435339103572121293460269849673020899573708935559027341320000586684514537431365310888999481071742463382911267789320258863598830395069544603326989392097657769707348691804224452973533413701448224774045051066571001832939497012508127767764295590745468802146946779724762449738116225105818944048461975843796127501652102207854858881733445450269991549328843268527039094247517538751801284281148484990234735369353511299021673752336297213365909273938355910119789784912925756917470664241207684485528488651231599946627996206087756203382782153653973676758525394929513362198592517449044771216536426414806442100590541816453615234374853999116975727517908588868986511359049342004004550720151991928954078445791206686994303438508485508357012971719850862634083256955999083221834362 950792135463522604929254266546089700839060745995960677398"

1018 ** P: * 5809605995369958062791915965639201402176612226902900533702900882779736177890990861472094774477339581147373410185646378328043729800750470098210924487866935059164371588168047540943981644516632755067501626434556398193186628990071248660819361205119793693985433297036118232914410171876807536457391277857011849897410207519105333355801121109356897459426271845471397952675959440793493071628394122780510124618488232602464649876850458861245784240929258426287699705312584509625419513463605155428017165714465363094021609290561084025893662561222573202082865797821865270991145082200656978177192827024538990239969175546190770645685893438011714430426409338676314743571154537142031573004276428701433036381801705308659830751190352946025482059931306571004727362479688415574702596946457770284148435989129632853918392117997472632693078113129886487399347796982772784615865232621289656944284216824611318709764535152507354116344703769998514148343807 1019

*

G: 2

алгоритм: "DH"

1 Ответ

0 голосов
/ 05 апреля 2019

Более поздние версии делают больше и лучше проверки. Одна из проверок состоит в том, чтобы убедиться, что 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...