On Tue, Mar 19, 2013 at 6:24 PM, Matt Caswell <fr...@baggins.org> wrote:
> On 19 March 2013 12:22, azhar jodatti <azhar...@gmail.com> wrote: > > PEM_write_bio_DHparams(out, temp);//this prints public key in > base64 > > (this is what i think :) ) > > This is NOT a base64 representation of the public key. This is > printing out the parameters only (which does not include the public > key) > > > > X509EncodedKeySpec x509KeySpec = new > > X509EncodedKeySpec(clientPubKeyEnc); > > PublicKey alicePubKey = bobKeyFac.generatePublic(x509KeySpec); > // > > this throws invalidKeySpecException : invalid key specification > > > > What is the reason behind this? Why it won't work with X509EncodedKeySpec? > Instead of above, try something like this: > > BigInteger y = new > > BigInteger("4373485839237796166699589228729451887524557806298817546317652313209684941935291316056752499275686842785989445002203537603465313281932431907074220666705812428468899520395399424699433568818334649395647035588736697462362131440308900155995886437558059484184376957451229991382889256903754886307405909744230582829"); > BigInteger p = new > > BigInteger("106824077746282794452228647025839229808074839339760371103063155402464842614962676228255294325459053774613506891207056818441720848774298482866918174271328357364028843638451324415691330056638482781344307395975948664971732094293996189467599104442989563027727348339786810653279203313302815966250977426622843204103"); > BigInteger g = new BigInteger("5"); > DHPublicKeySpec dhKeySpec = new DHPublicKeySpec(y, p, g); > PublicKey alicPubKey = bobKeyFac.generatePublic(dhKeySpec); > > Yes, I tried this as well. It won't throw any exception. It silently > generate the public and secret key at server. but when I use server's > public key at client to generate clients secret key, it ends up with having > different secret key at both the end. The client secret key won't match > with server's secret key. > > > > Matt >