geel9 / SteamAuth

A C# library that provides vital Steam Mobile Authenticator functionality
MIT License
278 stars 105 forks source link

Error getting response stream #38

Closed hypixus closed 6 years ago

hypixus commented 8 years ago

I've made change to framework(4.5 from 4.5.2) and ran mono testbed.exe

Unhandled Exception: System.Net.WebException: Error getting response stream (Write: The authentication or decryption has failed.): SendFailure ---> System.IO.IOException: The authentication or decryption has failed. ---> Mono.Security.Protocol.Tls.TlsException: Invalid certificate received from server. Error code: 0xffffffff800b010a at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.RemoteValidation (Mono.Security.Protocol.Tls.ClientContext context, AlertDescription description) [0x00000] in :0 at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates (Mono.Security.X509.X509CertificateCollection certificates) [0x00000] in :0 at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1 () [0x00000] in :0 at Mono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process () [0x00000] in :0 at (wrapper remoting-invoke-with-check) Mono.Security.Protocol.Tls.Handshake.HandshakeMessage:Process () at Mono.Security.Protocol.Tls.ClientRecordProtocol.ProcessHandshakeMessage (Mono.Security.Protocol.Tls.TlsStream handMsg) [0x00000] in :0 at Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback (IAsyncResult asyncResult) [0x00000] in :0 --- End of inner exception stack trace --- at Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback (IAsyncResult asyncResult) [0x00000] in :0 --- End of inner exception stack trace --- at System.Net.HttpWebRequest.EndGetRequestStream (IAsyncResult asyncResult) [0x00000] in :0 at System.Net.HttpWebRequest.GetRequestStream () [0x00000] in :0 at SteamAuth.SteamWeb.Request (System.String url, System.String method, System.Collections.Specialized.NameValueCollection data, System.Net.CookieContainer cookies, System.Collections.Specialized.NameValueCollection headers, System.String referer) [0x00000] in :0 at SteamAuth.SteamWeb.MobileLoginRequest (System.String url, System.String method, System.Collections.Specialized.NameValueCollection data, System.Net.CookieContainer cookies, System.Collections.Specialized.NameValueCollection headers) [0x00000] in :0 at SteamAuth.UserLogin.DoLogin () [0x00000] in :0 at TestBed.Program.Main (System.String[] args) [0x00000] in :0 [ERROR] FATAL UNHANDLED EXCEPTION: System.Net.WebException: Error getting response stream (Write: The authentication or decryption has failed.): SendFailure ---> System.IO.IOException: The authentication or decryption has failed. ---> Mono.Security.Protocol.Tls.TlsException: Invalid certificate received from server. Error code: 0xffffffff800b010a at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.RemoteValidation (Mono.Security.Protocol.Tls.ClientContext context, AlertDescription description) [0x00000] in :0 at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates (Mono.Security.X509.X509CertificateCollection certificates) [0x00000] in :0 at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1 () [0x00000] in :0 at Mono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process () [0x00000] in :0 at (wrapper remoting-invoke-with-check) Mono.Security.Protocol.Tls.Handshake.HandshakeMessage:Process () at Mono.Security.Protocol.Tls.ClientRecordProtocol.ProcessHandshakeMessage (Mono.Security.Protocol.Tls.TlsStream handMsg) [0x00000] in :0 at Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback (IAsyncResult asyncResult) [0x00000] in :0 --- End of inner exception stack trace --- at Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback (IAsyncResult asyncResult) [0x00000] in :0 --- End of inner exception stack trace --- at System.Net.HttpWebRequest.EndGetRequestStream (IAsyncResult asyncResult) [0x00000] in :0 at System.Net.HttpWebRequest.GetRequestStream () [0x00000] in :0 at SteamAuth.SteamWeb.Request (System.String url, System.String method, System.Collections.Specialized.NameValueCollection data, System.Net.CookieContainer cookies, System.Collections.Specialized.NameValueCollection headers, System.String referer) [0x00000] in :0 at SteamAuth.SteamWeb.MobileLoginRequest (System.String url, System.String method, System.Collections.Specialized.NameValueCollection data, System.Net.CookieContainer cookies, System.Collections.Specialized.NameValueCollection headers) [0x00000] in :0 at SteamAuth.UserLogin.DoLogin () [0x00000] in :0 at TestBed.Program.Main (System.String[] args) [0x00000] in :0

NinnoNB commented 8 years ago

I am having the same problem.

JustArchi commented 8 years ago

Your mono is broken. Update it to latest stable version. This is not SteamAuth bug.

NinnoNB commented 8 years ago

Problem still there

hypixus commented 8 years ago

@JustArchi this is stable release for Raspbian.

hypixus commented 8 years ago

I hope that @geel9 would like to look at this ;)

JustArchi commented 8 years ago

Stable release does not mean that your Mono is not broken.

I say it is, and it's not SteamAuth issue.

hypixus commented 8 years ago

@JustArchi Could you please then give me an example of version that is without bugs like this one? All I need is to run this project once, because I want to see how it works for a user, my main goal is to "translate" the whole thing to python, so it could be available for more platforms than windows one.

JustArchi commented 8 years ago
root@archi:~# mono --version
Mono JIT compiler version 4.2.3 (Stable 4.2.3.4/832de4b Wed Mar 16 13:19:08 UTC 2016)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
        TLS:           __thread
        SIGSEGV:       altstack
        Notifications: epoll
        Architecture:  amd64
        Disabled:      none
        Misc:          softdebug
        LLVM:          supported, not enabled.
        GC:            sgen
shravan2x commented 8 years ago

Actually, this is neither. You forgot to import your certificates using mozroots.

JustArchi commented 8 years ago

Not needed anymore in any recent Mono version.

shravan2x commented 8 years ago

I don't think so. I installed Mono just a few days ago and had to import them.

JustArchi commented 8 years ago

Because you didn't install latest version. It's not needed since Mono 3.12.0+. And versions packed with common distributions are old as hell usually.

Another variant, you forgot to install ca-certificates-mono

shravan2x commented 8 years ago

That's why I suggested it, as OP may not have installed the latest version.

Let me be clear: He may have upgraded to the latest version, but if your original install was a lower version, you still need to import.

hypixus commented 6 years ago

Sorry - forgot the issue for a LOOONG time, yesterday came back for the solution. Issue was based on Mono release that was outdated in raspbian default repositories - built the project successfully using self-made mono build for this platform. Yes, the issue was on side of Mono, not SteamAuth. Sorry for inconvenience, closing.