I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all", I will hit "reply all" eventually and, with a bit of luck, the right email address ;-)
---------- Forwarded message ---------- From: Sebastien Pouliot <[email protected]> Date: Wed, Aug 24, 2011 at 2:52 PM Subject: Re: [MonoTouch] Are there any known issues with WebClient and SSL? To: Nic Wise <[email protected]> Hello Nic, You're seeing this because recent monotouch release enabled the "E:all" tracing (i.e. it's harmless and has always been there). This "E:all" is useful for debugging but that also means _every_ exceptions are being logged, even the ones that are "normal" (catched and processed in the BCL). In this specific case MonoTouch inherits the code to check the certificate stores (used on Linux, Windows and MacOSX...). However shared (machine) stores do not (and cannot) exists in iOS so the check fails and execution continue normally. I have some code to remove that (and a bit more) code from executing. It needs a bit more testing but once done it should all go away :-) Sebastien On Wed, Aug 24, 2011 at 2:14 PM, Nic Wise <[email protected]> wrote: > I'm still working out whats going on, but i'm getting this in the > debug log (in the simulator): > > (NOTE: the code works. It's just _messy_ in the output logs....) > > [0xb0981000:] EXCEPTION handling: > System.Security.Cryptography.CryptographicException: Store Root > doesn't exists. > > "Threadpool worker" tid=0x0xb0981000 this=0x0xb4555e8 thread handle > 0x11d state : not waiting owns () > at System.Security.Cryptography.X509Certificates.X509Store.Open > (System.Security.Cryptography.X509Certificates.OpenFlags) [0x000ae] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Security.Cryptography.X509Certificates/X509Store.cs:224 > at System.Security.Cryptography.X509Certificates.X509Chain.get_LMRootStore > () [0x00018] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Security.Cryptography.X509Certificates/X509Chain.cs:280 > at System.Security.Cryptography.X509Certificates.X509Chain.get_Roots > () [0x00011] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Security.Cryptography.X509Certificates/X509Chain.cs:251 > at > System.Security.Cryptography.X509Certificates.X509Chain.get_CertificateCollection > () [0x00021] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Security.Cryptography.X509Certificates/X509Chain.cs:336 > at System.Security.Cryptography.X509Certificates.X509Chain.FindParent > (System.Security.Cryptography.X509Certificates.X509Certificate2) > [0x00000] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Security.Cryptography.X509Certificates/X509Chain.cs:414 > at System.Security.Cryptography.X509Certificates.X509Chain.BuildChainFrom > (System.Security.Cryptography.X509Certificates.X509Certificate2) > [0x00011] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Security.Cryptography.X509Certificates/X509Chain.cs:356 > at System.Security.Cryptography.X509Certificates.X509Chain.Build > (System.Security.Cryptography.X509Certificates.X509Certificate2) > [0x00017] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Security.Cryptography.X509Certificates/X509Chain.cs:113 > at System.Net.ServicePointManager/ChainValidationHelper.ValidateChain > (Mono.Security.X509.X509CertificateCollection) [0x0009d] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Net/ServicePointManager.cs:467 > at Mono.Security.Protocol.Tls.SslClientStream.OnRemoteCertificateValidation2 > (Mono.Security.X509.X509CertificateCollection) [0x0000d] in > /Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslClientStream.cs:423 > at Mono.Security.Protocol.Tls.SslStreamBase.RaiseRemoteCertificateValidation2 > (Mono.Security.X509.X509CertificateCollection) [0x00000] in > /Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslStreamBase.cs:210 > at > Mono.Security.Protocol.Tls.SslClientStream.RaiseServerCertificateValidation2 > (Mono.Security.X509.X509CertificateCollection) [0x00000] in > /Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslClientStream.cs:446 > at > Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates > (Mono.Security.X509.X509CertificateCollection) [0x0001f] in > /Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:198 > at > Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1 > () [0x00054] in > /Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:105 > at Mono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process () > [0x00037] in > /Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake/HandshakeMessage.cs:105 > at Mono.Security.Protocol.Tls.ClientRecordProtocol.ProcessHandshakeMessage > (Mono.Security.Protocol.Tls.TlsStream) [0x00039] in > /Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:81 > at Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback > (System.IAsyncResult) [0x00127] in > /Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/RecordProtocol.cs:397 > at (wrapper runtime-invoke) > <Module>.runtime_invoke_void__this___object > (object,intptr,intptr,intptr) <IL 0x00052, 0xffffffff> > [0xb0981000:] EXCEPTION handling: > System.Security.Cryptography.CryptographicException: Store Root > doesn't exists. > > ------------ AND ------------------- > [0xb087f000:] EXCEPTION handling: System.ArgumentNullException: > Argument cannot be null. > Parameter name: type > > "Threadpool worker" tid=0x0xb087f000 this=0x0xb455738 thread handle > 0x11a state : not waiting owns () > at System.Activator.CheckType (System.Type) [0x00006] in > /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Activator.cs:339 > at System.Activator.CreateInstance > (System.Type,System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo,object[]) > [0x00000] in > /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Activator.cs:246 > at System.Activator.CreateInstance (System.Type,object[],object[]) > [0x00000] in > /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Activator.cs:234 > at System.Activator.CreateInstance (System.Type,object[]) [0x00000] > in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Activator.cs:229 > at System.Security.Cryptography.CryptoConfig.CreateFromName > (string,object[]) [0x00061] in > /Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Security.Cryptography/CryptoConfig.cs:493 > at > System.Security.Cryptography.X509Certificates.X509ExtensionCollection..ctor > (Mono.Security.X509.X509Certificate) [0x000ac] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Security.Cryptography.X509Certificates/X509ExtensionCollection.cs:89 > at > System.Security.Cryptography.X509Certificates.X509Certificate2.get_Extensions > () [0x00021] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Security.Cryptography.X509Certificates/X509Certificate2.cs:151 > at > System.Security.Cryptography.X509Certificates.X509Chain.ProcessCertificateExtensions > (System.Security.Cryptography.X509Certificates.X509ChainElement) > [0x00000] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Security.Cryptography.X509Certificates/X509Chain.cs:678 > at System.Security.Cryptography.X509Certificates.X509Chain.WrapUp () > [0x00020] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Security.Cryptography.X509Certificates/X509Chain.cs:666 > at System.Security.Cryptography.X509Certificates.X509Chain.ValidateChain > (System.Security.Cryptography.X509Certificates.X509ChainStatusFlags) > [0x000a1] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Security.Cryptography.X509Certificates/X509Chain.cs:511 > at System.Security.Cryptography.X509Certificates.X509Chain.Build > (System.Security.Cryptography.X509Certificates.X509Certificate2) > [0x0001f] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Security.Cryptography.X509Certificates/X509Chain.cs:114 > at System.Net.ServicePointManager/ChainValidationHelper.ValidateChain > (Mono.Security.X509.X509CertificateCollection) [0x0009d] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Net/ServicePointManager.cs:467 > at Mono.Security.Protocol.Tls.SslClientStream.OnRemoteCertificateValidation2 > (Mono.Security.X509.X509CertificateCollection) [0x0000d] in > /Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslClientStream.cs:423 > at Mono.Security.Protocol.Tls.SslStreamBase.RaiseRemoteCertificateValidation2 > (Mono.Security.X509.X509CertificateCollection) [0x00000] in > /Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslStreamBase.cs:210 > at > Mono.Security.Protocol.Tls.SslClientStream.RaiseServerCertificateValidation2 > (Mono.Security.X509.X509CertificateCollection) [0x00000] in > /Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslClientStream.cs:446 > at > Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates > (Mono.Security.X509.X509CertificateCollection) [0x0001f] in > /Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:198 > at > Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1 > () [0x00054] in > /Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:105 > at Mono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process () > [0x00037] in > /Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake/HandshakeMessage.cs:105 > at Mono.Security.Protocol.Tls.ClientRecordProtocol.ProcessHandshakeMessage > (Mono.Security.Protocol.Tls.TlsStream) [0x00039] in > /Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:81 > at Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback > (System.IAsyncResult) [0x00127] in > /Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/RecordProtocol.cs:397 > at (wrapper runtime-invoke) > <Module>.runtime_invoke_void__this___object > (object,intptr,intptr,intptr) <IL 0x00052, 0xffffffff> > [0xb087f000:] EXCEPTION handling: System.FormatException: Invalid format > string > > "Threadpool worker" tid=0x0xb087f000 this=0x0xb455738 thread handle > 0x11a state : not waiting owns () > at System.DateTime.ParseExact > (string,string[],System.IFormatProvider,System.Globalization.DateTimeStyles) > [0x0005c] in > /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/DateTime.cs:1761 > at System.DateTime.ParseExact > (string,string,System.IFormatProvider,System.Globalization.DateTimeStyles) > [0x0001c] in > /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/DateTime.cs:1741 > at System.DateTime.ParseExact (string,string,System.IFormatProvider) > [0x00000] in > /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/DateTime.cs:927 > at System.Net.CookieParser.TryParseCookieExpires (string) [0x00018] > in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Net/CookieParser.cs:133 > at System.Net.HttpWebResponse.SetCookie (string) [0x00217] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Net/HttpWebResponse.cs:394 > at System.Net.HttpWebResponse.FillCookies () [0x00030] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Net/HttpWebResponse.cs:338 > at System.Net.HttpWebResponse..ctor > (System.Uri,string,System.Net.WebConnectionData,System.Net.CookieContainer) > [0x000af] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Net/HttpWebResponse.cs:89 > at (wrapper remoting-invoke-with-check) > System.Net.HttpWebResponse..ctor > (System.Uri,string,System.Net.WebConnectionData,System.Net.CookieContainer) > <IL 0x00024, 0xffffffff> > at System.Net.HttpWebRequest.SetResponseData > (System.Net.WebConnectionData) [0x00039] in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Net/HttpWebRequest.cs:1266 > at (wrapper remoting-invoke-with-check) > System.Net.HttpWebRequest.SetResponseData > (System.Net.WebConnectionData) <IL 0x00039, 0xffffffff> > at System.Net.WebConnection.ReadDone (System.IAsyncResult) [0x0025d] > in > /Developer/MonoTouch/Source/mono/mcs/class/System/System.Net/WebConnection.cs:509 > at (wrapper runtime-invoke) > <Module>.runtime_invoke_void__this___object > (object,intptr,intptr,intptr) <IL 0x00052, 0xffffffff> > > > > > > the psudeocode is: > > new up a WebClient > set credentials and 2 headers > accept any cert: > ServicePointManager.ServerCertificateValidationCallback = (sender, > cert, chain, ssl) => true; > > then > > webrequest.downloadstring("https://url") > > > NOW: despite all that crap thrown out into the logs, it works. Code is > fine, function is fine, it just throws out a load of stack dumps.... > > Jeff? > > Cheers > > Nic > > -- > Nic Wise > t. +44 7788 592 806 | @fastchicken | http://www.linkedin.com/in/nicwise > b. http://www.fastchicken.co.nz/ > > mobileAgent (for FreeAgent): get your accounts in your pocket. > http://goo.gl/IuBU > Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa > London Bike App: Find the nearest Boris Bike, and get riding! > http://goo.gl/Icp2 > _______________________________________________ > MonoTouch mailing list > [email protected] > http://lists.ximian.com/mailman/listinfo/monotouch > _______________________________________________ MonoTouch mailing list [email protected] http://lists.ximian.com/mailman/listinfo/monotouch
