> On 27 Feb 2015, at 21:18, Sabine Manaa <manaa.sab...@gmail.com> wrote: > > Hi Sven, > > thank you for your hints. > > Indeed, the variable @in of ZdcSecureSocketStream has the string > "ZnInvalidUTF8: Illegal leading byte for utf-8 encoding" in its utf-8 > variable.
That is normal: the in buffer contains encrypted binary data, the out buffer will contain the cleartext (but still in binary). > Can you tell me, what to add to the pharo code that the encoding is > correct/so that is equal to the curl command? I don't think there is an encoding problem: the charset is set to utf-8 which will be picked up. Besides, the returned content is plain ascii anyway. The issue is probably the Connection:close and the missing Content-Length. This means that the HTTPS stream has to be read until the end. I have seen this fail in the past in rare cases. Are you on Windows ? Could you try on Linux ? > comparison of headers: they seem to be equal, also the content type is in > both cases 'application/json;charset=UTF-8' > The ZnResponse headers: > a ZnHeaders( > same 'Cache-Control'->#('no-cache, no-store, max-age=0, must-revalidate' > 'no-store') > same 'Connection'->'close' > same 'Content-Type'->'application/json;charset=UTF-8' > same 'Date'->'Fri, 27 Feb 2015 20:02:40 GMT' > same 'Expires'->'0' > same 'Pragma'->#('no-cache' 'no-cache') > same 'Set-Cookie'->'crbid=10.1.8.3:49247_mt03.prod.gini.net; path=/' > same 'Strict-Transport-Security'->'max-age=31536000 ; includeSubDomains' > same 'X-Application-Context'->'0.3:8080' > same 'X-Content-Type-Options'->'nosniff' > same 'X-Frame-Options'->'DENY' > same 'X-Xss-Protection'->'1; mode=block' ) > > result of curl command at command line > < HTTP/1.1 200 OK > same < Date: Fri, 27 Feb 2015 17:58:37 GMT > same < X-Content-Type-Options: nosniff > same < X-XSS-Protection: 1; mode=block > same < Cache-Control: no-cache, no-store, max-age=0, must-revalidate > same < Pragma: no-cache > same < Expires: 0 > same < Strict-Transport-Security: max-age=31536000 ; includeSubDomains > same < X-Frame-Options: DENY > same < X-Application-Context: 0.3:8080 > < Cache-Control: no-store > < Pragma: no-cache > same < Content-Type: application/json;charset=UTF-8 > same < Connection: close > same < Set-Cookie: crbid=10.1.8.5:49387_mt05.prod.gini.net; path=/ > > regards > sabine > > 2015-02-27 16:58 GMT+01:00 Sven Van Caekenberghe-2 [via Smalltalk] <[hidden > email]>: > Sabine, > > > On 27 Feb 2015, at 16:36, Sabine Manaa <[hidden email]> wrote: > > > > Hi Sven, > > Hi all, > > > > I try to send a curl command (which works at command line) from Pharo. > > I get the error: "SSL Exception: decrypt failed code:5" > > > > The working command line command is: > > > > curl -v -H 'Accept: application/json' -u 'aUser:aPassword' > > 'https://user.xxx.net/oauth/token?grant_type=client_credentials' > > > > the result is something like: > > {"access_token":"a31xxxa-2a22-4xx6c-938d-2bd3ae4a0629","token_type":"bearer","expires_in":42095,"scope":"write"} > > > > > > My current Pharo code is: > > | theZnClient | > > theZnClient := ZnClient new > > systemPolicy ; > > https; > > host: 'user.xxx.net'; > > path: 'oauth/token?grant_type=client_credentials'; > > username: 'aUser' password: 'aPassword'; > > accept: ZnMimeType applicationJson; > > get. > > theZnClient inspect close. > > > > 'aPassword' and 'aUser' and xxx.net was replaced by me for security > > reasons. > > > > In Pharo, I get a walkback with the error message > > 'SSL Exception: decrypt failed [code:-5]' > > > > But I see, that the ZdcSecureSocketStream has the correct result > > ({"access_token":...":"write"}) in its collection attribute at > > utf-8 string and at latin1-string > > > > so, the request is done and the result is available but then it fails here: > > ZdcSecureSocketStream(Object)>>error: > > ZdcSecureSocketStream>>sslException:code: > > ZdcSecureSocketStream>>fillBytes:startingAt:count: in Block: [ ... > > ZdcSecureSocketStream>>fillBytes:startingAt:count: > > ZdcSecureSocketStream(ZdcSimpleSocketStream)>>fillReadBufferNoWait > > ZdcSecureSocketStream(ZdcSimpleSocketStream)>>fillReadBuffer > > ZdcSecureSocketStream(ZdcOptimizedSocketStream)>>readInto:startingAt:count: > > ZnUTF8Encoder>>optimizedReadInto:startingAt:count:fromStream: > > ZnUTF8Encoder>>readInto:startingAt:count:fromStream: > > > > Sven, I could send you the 'aPassword' and 'aUser' and the url by private > > message. It would be fine if you could have a short look at it. > The fact that there is readable text in the buffer of the > ZdcSecureSocketStream is good, because it means that things basically work. > > One reason why this is failing might be that Zn tries to read more than there > is available in the stream, when the content-length does not match. Encoding > problems could be part of the problem too. > > Could you compare curl -v or curl -D - output with the request/response > headers in Pharo ? Look for content-length and compare that with what it > already read or not. Is the connection kept alive ? Also look at content-type > and see if there is any charset encoding after application/json. > > Sven > > > Regards > > Sabine > > > > > > > > -- > > View this message in context: > > http://forum.world.st/Zinc-SSL-Exception-decrypt-failed-code-5-tp4808230p4808345.html > > Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. > > > > > > > If you reply to this email, your message will be added to the discussion > below: > http://forum.world.st/Zinc-SSL-Exception-decrypt-failed-code-5-tp4808230p4808353.html > To start a new topic under Pharo Smalltalk Users, email [hidden email] > To unsubscribe from Zinc SSL Exception: decrypt failed code:5, click here. > NAML > > > View this message in context: Re: Zinc SSL Exception: decrypt failed code:5 > Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.