author | Michael Krelin <hacker@klever.net> | 2007-12-09 22:10:49 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2007-12-09 22:10:49 (UTC) |
commit | 2e7bf3278c3e13baaa32c7ec8c2b3fdc4780a080 (patch) (unidiff) | |
tree | d36530a517425d2507df8e9550fbcc48fba48c5f /lib | |
parent | c34adc6e274c3dbb63af99ca566000e7d218244c (diff) | |
parent | 7a6a6fbcf7e20f0d7da5f625a73c865b361f16aa (diff) | |
download | libopkele-2e7bf3278c3e13baaa32c7ec8c2b3fdc4780a080.zip libopkele-2e7bf3278c3e13baaa32c7ec8c2b3fdc4780a080.tar.gz libopkele-2e7bf3278c3e13baaa32c7ec8c2b3fdc4780a080.tar.bz2 |
Merge branch 'next' into devel/xri
-rw-r--r-- | lib/consumer.cc | 6 | ||||
-rw-r--r-- | lib/util.cc | 6 |
2 files changed, 6 insertions, 6 deletions
diff --git a/lib/consumer.cc b/lib/consumer.cc index 66db7dd..9f7530f 100644 --- a/lib/consumer.cc +++ b/lib/consumer.cc | |||
@@ -181,14 +181,14 @@ namespace opkele { | |||
181 | throw id_res_setup(OPKELE_CP_ "assertion failed, setup url provided",pin.get_param("openid.user_setup_url")); | 181 | throw id_res_setup(OPKELE_CP_ "assertion failed, setup url provided",pin.get_param("openid.user_setup_url")); |
182 | string server,delegate; | 182 | string server,delegate; |
183 | retrieve_links(identity.empty()?pin.get_param("openid.identity"):canonicalize(identity),server,delegate); | 183 | retrieve_links(identity.empty()?pin.get_param("openid.identity"):canonicalize(identity),server,delegate); |
184 | params_t ps; | 184 | params_t ps; |
185 | try { | 185 | try { |
186 | assoc_t assoc = retrieve_assoc(server,pin.get_param("openid.assoc_handle")); | 186 | assoc_t assoc = retrieve_assoc(server,pin.get_param("openid.assoc_handle")); |
187 | if(assoc->is_expired()) /* TODO: or should I throw some other exception to force programmer fix his implementation? */ | 187 | if(assoc->is_expired()) |
188 | throw failed_lookup(OPKELE_CP_ "retrieve_assoc() has returned expired handle"); | 188 | throw id_res_expired_on_delivery(OPKELE_CP_ "retrieve_assoc() has returned expired handle"); |
189 | const string& sigenc = pin.get_param("openid.sig"); | 189 | const string& sigenc = pin.get_param("openid.sig"); |
190 | vector<unsigned char> sig; | 190 | vector<unsigned char> sig; |
191 | util::decode_base64(sigenc,sig); | 191 | util::decode_base64(sigenc,sig); |
192 | const string& slist = pin.get_param("openid.signed"); | 192 | const string& slist = pin.get_param("openid.signed"); |
193 | string kv; | 193 | string kv; |
194 | string::size_type p = 0; | 194 | string::size_type p = 0; |
@@ -211,13 +211,13 @@ namespace opkele { | |||
211 | EVP_sha1(), | 211 | EVP_sha1(), |
212 | &(secret.front()),secret.size(), | 212 | &(secret.front()),secret.size(), |
213 | (const unsigned char *)kv.data(),kv.length(), | 213 | (const unsigned char *)kv.data(),kv.length(), |
214 | 0,&md_len); | 214 | 0,&md_len); |
215 | if(sig.size()!=md_len || memcmp(&(sig.front()),md,md_len)) | 215 | if(sig.size()!=md_len || memcmp(&(sig.front()),md,md_len)) |
216 | throw id_res_mismatch(OPKELE_CP_ "signature mismatch"); | 216 | throw id_res_mismatch(OPKELE_CP_ "signature mismatch"); |
217 | }catch(failed_lookup& e) { /* XXX: more specific? */ | 217 | }catch(failed_lookup& e) { |
218 | const string& slist = pin.get_param("openid.signed"); | 218 | const string& slist = pin.get_param("openid.signed"); |
219 | string::size_type pp = 0; | 219 | string::size_type pp = 0; |
220 | params_t p; | 220 | params_t p; |
221 | while(true) { | 221 | while(true) { |
222 | string::size_type co = slist.find(',',pp); | 222 | string::size_type co = slist.find(',',pp); |
223 | string f = "openid."; | 223 | string f = "openid."; |
diff --git a/lib/util.cc b/lib/util.cc index 83f0eef..4600576 100644 --- a/lib/util.cc +++ b/lib/util.cc | |||
@@ -218,15 +218,15 @@ namespace opkele { | |||
218 | if(ic==':') { | 218 | if(ic==':') { |
219 | string::size_type ni = uri.find_first_of("/#?%",interesting+1); | 219 | string::size_type ni = uri.find_first_of("/#?%",interesting+1); |
220 | const char *nptr = uri.data()+interesting+1; | 220 | const char *nptr = uri.data()+interesting+1; |
221 | char *eptr = 0; | 221 | char *eptr = 0; |
222 | long port = strtol(nptr,&eptr,10); | 222 | long port = strtol(nptr,&eptr,10); |
223 | if( (port>0) && (port<65535) && port!=(s?443:80) ) { | 223 | if( (port>0) && (port<65535) && port!=(s?443:80) ) { |
224 | char tmp[6]; | 224 | char tmp[8]; |
225 | snprintf(tmp,sizeof(tmp),"%ld",port); | 225 | snprintf(tmp,sizeof(tmp),":%ld",port); |
226 | rv += ':'; rv += tmp; | 226 | rv += tmp; |
227 | } | 227 | } |
228 | if(ni==string::npos) { | 228 | if(ni==string::npos) { |
229 | rv += '/'; return rv; | 229 | rv += '/'; return rv; |
230 | } | 230 | } |
231 | interesting = ni; | 231 | interesting = ni; |
232 | }else if(ic!='/') { | 232 | }else if(ic!='/') { |