-rw-r--r-- | lib/server.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/server.cc b/lib/server.cc index 8db97be..b1c5c3a 100644 --- a/lib/server.cc +++ b/lib/server.cc | |||
@@ -31,17 +31,17 @@ namespace opkele { | |||
31 | if(pin.has_param("openid.dh_gen")) | 31 | if(pin.has_param("openid.dh_gen")) |
32 | dh->g = util::base64_to_bignum(pin.get_param("openid.dh_gen")); | 32 | dh->g = util::base64_to_bignum(pin.get_param("openid.dh_gen")); |
33 | else | 33 | else |
34 | dh->g = util::dec_to_bignum(data::_default_g); | 34 | dh->g = util::dec_to_bignum(data::_default_g); |
35 | if(!DH_generate_key(dh)) | 35 | if(!DH_generate_key(dh)) |
36 | throw exception_openssl(OPKELE_CP_ "failed to DH_generate_key()"); | 36 | throw exception_openssl(OPKELE_CP_ "failed to DH_generate_key()"); |
37 | vector<unsigned char> ck(DH_size(dh)+1); | 37 | vector<unsigned char> ck(DH_size(dh)+1); |
38 | unsigned char *ckptr = &(ck.front())+1; | 38 | unsigned char *ckptr = &(ck.front())+1; |
39 | int cklen = DH_compute_key(&(ck.front()),c_pub,dh); | 39 | int cklen = DH_compute_key(ckptr,c_pub,dh); |
40 | if(cklen<0) | 40 | if(cklen<0) |
41 | throw exception_openssl(OPKELE_CP_ "failed to DH_compute_key()"); | 41 | throw exception_openssl(OPKELE_CP_ "failed to DH_compute_key()"); |
42 | if(cklen && (*ckptr)&0x80) { | 42 | if(cklen && (*ckptr)&0x80) { |
43 | (*(--ckptr)) = 0; ++cklen; | 43 | (*(--ckptr)) = 0; ++cklen; |
44 | } | 44 | } |
45 | SHA1(ckptr,cklen,key_sha1); | 45 | SHA1(ckptr,cklen,key_sha1); |
46 | st = sess_dh_sha1; | 46 | st = sess_dh_sha1; |
47 | } | 47 | } |