已解决:Android,生成的Diffie Hellman公钥作为BigInteger收到(错误:无效的DH公钥)

时间:2019-04-05 08:47:55

标签: android kotlin public-key diffie-hellman

我在kotlin中有一个应用程序android,在raspberry-Pi上有一个Python。

在我的android应用程序中,我从树莓派上收到了 Big Integer String(大整数字符串)中的PublicKey,我需要将其转换为PublicKey ,以继续我的Diffie Hellman。

使用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)
        }
    }

接收公钥:“118607722767827154013486250987354660467658602452530946961821643436015282343499905648156689215684684251410178694801129781891158967227502824293571006291387515195491231484496989554213681593563915155182449565230243533910357212129346026984967302089957370893555902734132000058668451453743136531088899948107174246338291126778932025886359883039506954460332698939209765776970734869180422445297353341370144822477404505106657100183293949701250812776776429559074546880214694677972476244973811622510581894404846197584379612750165210220785485888173344545026999154932884326852703909424751753875180128428114848499023473536935351129902167375233629721336590927393835591011978978491292575691747066424120768448552848865123159994662799620608775620338278215365397367675852539492951336219859251744904477121653642641480644210059054181645361523437485399911697572751790858886898651135904934200400455072015199192895407844579120668699430343850848550835701297171985086263408325695599908322183436295079 2135463522604929254266546089700839060745995960677398“

,P:5809605995369958062791915965639201402176612226902900533702900882779736177890990861472094774477339581147373410185646378328043729800750470098210924487866935059164371588168047540943981644516632755067501626434556398193186628990071248660819361205119793693985433297036118232914410171876807536457391277857011849897410207519105333355801121109356897459426271845471397952675959440793493071628394122780510124618488232602464649876850458861245784240929258426287699705312584509625419513463605155428017165714465363094021609290561084025893662561222573202082865797821865270991145082200656978177192827024538990239969175546190770645685893438011714430426409338676314743571154537142031573004276428701433036381801705308659830751190352946025482059931306571004727362479688415574702596946457770284148435989129632853918392117997472632693078113129886487399347796982772784615865232621289656944284216824611318709764535152507354116344703769998514148343807

G:2

算法:“ DH”

1 个答案:

答案 0 :(得分:0)

以后的版本可以做更多更好的验证。检查之一是确保2