Forum Developers Cortex API System.Exception:RemoteCertificateNameMismatch, RemoteCertificateChainErrors

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #663
    lastname60ee41ea0ee2e
    Participant
    @claudio8-60ee41ea0ee30

    Hello everyone,

    I’m using the Emotiv Unity examples & Emotiv Unity Plugin included in github. So far, so good, I was able to authenticate from the Cortex client running on Unity Editor, connect to the headsets, getting data and everything.

    BUT, this is only working if I’m connecting to my localhost (Unity Editor pointing to the same computer, running Emotiv App + Cortex Service). If I try to connect from a different device (being another desktop computer or the Cortex client running on Android for instance), I’m getting the following websocket client errors:

    System.Exception:RemoteCertificateNameMismatch, RemoteCertificateChainErrors

    UnityEngine.Debug:Log (object)
    EmotivUnityPlugin.CortexClient:WebSocketClient_Error (object,SuperSocket.ClientEngine.ErrorEventArgs) (at Assets/Plugins/Emotiv-Unity-Plugin/Src/CortexClient.cs:600)
    WebSocket4Net.WebSocket:OnError (SuperSocket.ClientEngine.ErrorEventArgs)
    WebSocket4Net.WebSocket:client_Error (object,SuperSocket.ClientEngine.ErrorEventArgs)
    SuperSocket.ClientEngine.ClientSession:OnError (System.Exception)
    SuperSocket.ClientEngine.SslStreamTcpSession:ValidateRemoteCertificate (object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)
    Mono.Net.Security.Private.CallbackHelpers/<>c__DisplayClass0_0:<PublicToMono>b__0 (string,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,Mono.Security.Interface.MonoSslPolicyErrors)
    Mono.Net.Security.Private.CallbackHelpers/<>c__DisplayClass5_0:<MonoToPublic>b__0 (object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)
    System.Net.ServerCertValidationCallback:Invoke (object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)
    Mono.Net.Security.ChainValidationHelper:ValidateChain (string,bool,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain&,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Net.Security.SslPolicyErrors)
    Mono.Net.Security.ChainValidationHelper:ValidateChain (string,bool,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Net.Security.SslPolicyErrors)
    Mono.Net.Security.ChainValidationHelper:ValidateCertificate (string,bool,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain)
    Mono.Net.Security.MobileTlsContext:ValidateCertificate (System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain)
    Mono.Unity.UnityTlsContext:VerifyCallback (Mono.Unity.UnityTls/unitytls_x509list_ref,Mono.Unity.UnityTls/unitytls_errorstate*)
    Mono.Unity.UnityTlsContext:VerifyCallback (void*,Mono.Unity.UnityTls/unitytls_x509list_ref,Mono.Unity.UnityTls/unitytls_errorstate*)
    Mono.Unity.UnityTlsContext:ProcessHandshake ()
    Mono.Net.Security.MobileAuthenticatedStream:ProcessHandshake (Mono.Net.Security.AsyncOperationStatus)
    Mono.Net.Security.AsyncHandshakeRequest:Run (Mono.Net.Security.AsyncOperationStatus)
    Mono.Net.Security.AsyncProtocolRequest/<ProcessOperation>d__24:MoveNext ()
    System.Runtime.CompilerServices.AsyncTaskMethodBuilder1<System.Nullable1<int>>:SetResult (System.Nullable`1<int>)
    Mono.Net.Security.AsyncProtocolRequest/<InnerRead>d__25:MoveNext ()
    System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<int>:SetResult (int)
    Mono.Net.Security.MobileAuthenticatedStream/<InnerRead>d__66:MoveNext ()
    System.Threading._ThreadPoolWaitCallback:PerformWaitCallback ()

    System.Security.Authentication.AuthenticationException:A call to SSPI failed, see inner exception.
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <695d1cc93cca45069c528c15c9fdd749>:0
    at Mono.Net.Security.MobileAuthenticatedStream+<ProcessAuthentication>d__47.MoveNext () [0x00254] in <6815f06aed484ff088c24eff32dde63b>:0
    — End of stack trace from previous location where exception was thrown —
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <695d1cc93cca45069c528c15c9fdd749>:0
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <695d1cc93cca45069c528c15c9fdd749>:0
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <695d1cc93cca45069c528c15c9fdd749>:0
    at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <695d1cc93cca45069c528c15c9fdd749>:0
    at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0
    at System.Threading.Tasks.TaskToApm.End (System.IAsyncResult asyncResult) [0x00029] in <695d1cc93cca45069c528c15c9fdd749>:0
    at Mono.Net.Security.MobileAuthenticatedStream.EndAuthenticateAsClient (System.IAsyncResult asyncResult) [0x00000] in <6815f06aed484ff088c24eff32dde63b>:0
    at System.Net.Security.SslStream.EndAuthenticateAsClient (System.IAsyncResult asyncResult) [0x00006] in <6815f06aed484ff088c24eff32dde63b>:0
    at SuperSocket.ClientEngine.SslStreamTcpSession.OnAuthenticated (System.IAsyncResult result) [0x00028] in <d48c73b87c95425b91162817ccffec2d>:0
    UnityEngine.Debug:Log (object)
    EmotivUnityPlugin.CortexClient:WebSocketClient_Error (object,SuperSocket.ClientEngine.ErrorEventArgs) (at Assets/Plugins/Emotiv-Unity-Plugin/Src/CortexClient.cs:600)
    WebSocket4Net.WebSocket:OnError (SuperSocket.ClientEngine.ErrorEventArgs)
    WebSocket4Net.WebSocket:client_Error (object,SuperSocket.ClientEngine.ErrorEventArgs)
    SuperSocket.ClientEngine.ClientSession:OnError (System.Exception)
    SuperSocket.ClientEngine.SslStreamTcpSession:OnAuthenticated (System.IAsyncResult)
    System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException (System.Exception)
    Mono.Net.Security.MobileAuthenticatedStream/<ProcessAuthentication>d__47:MoveNext ()
    System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<Mono.Net.Security.AsyncProtocolResult>:SetResult (Mono.Net.Security.AsyncProtocolResult)
    Mono.Net.Security.AsyncProtocolRequest/<StartOperation>d__23:MoveNext ()
    System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException (System.Exception)
    Mono.Net.Security.AsyncProtocolRequest/<ProcessOperation>d__24:MoveNext ()
    System.Runtime.CompilerServices.AsyncTaskMethodBuilder1<System.Nullable1<int>>:SetResult (System.Nullable`1<int>)
    Mono.Net.Security.AsyncProtocolRequest/<InnerRead>d__25:MoveNext ()
    System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<int>:SetResult (int)
    Mono.Net.Security.MobileAuthenticatedStream/<InnerRead>d__66:MoveNext ()
    System.Threading._ThreadPoolWaitCallback:PerformWaitCallback ()

    Mono.Security.Interface.TlsException
    UnityEngine.Debug:Log (object)
    EmotivUnityPlugin.CortexClient:WebSocketClient_Error (object,SuperSocket.ClientEngine.ErrorEventArgs) (at Assets/Plugins/Emotiv-Unity-Plugin/Src/CortexClient.cs:603)
    WebSocket4Net.WebSocket:OnError (SuperSocket.ClientEngine.ErrorEventArgs)
    WebSocket4Net.WebSocket:client_Error (object,SuperSocket.ClientEngine.ErrorEventArgs)
    SuperSocket.ClientEngine.ClientSession:OnError (System.Exception)
    SuperSocket.ClientEngine.SslStreamTcpSession:OnAuthenticated (System.IAsyncResult)
    System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException (System.Exception)
    Mono.Net.Security.MobileAuthenticatedStream/<ProcessAuthentication>d__47:MoveNext ()
    System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<Mono.Net.Security.AsyncProtocolResult>:SetResult (Mono.Net.Security.AsyncProtocolResult)
    Mono.Net.Security.AsyncProtocolRequest/<StartOperation>d__23:MoveNext ()
    System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException (System.Exception)
    Mono.Net.Security.AsyncProtocolRequest/<ProcessOperation>d__24:MoveNext ()
    System.Runtime.CompilerServices.AsyncTaskMethodBuilder1<System.Nullable1<int>>:SetResult (System.Nullable`1<int>)
    Mono.Net.Security.AsyncProtocolRequest/<InnerRead>d__25:MoveNext ()
    System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<int>:SetResult (int)
    Mono.Net.Security.MobileAuthenticatedStream/<InnerRead>d__66:MoveNext ()
    System.Threading._ThreadPoolWaitCallback:PerformWaitCallback ()

    As I understand, this is caused by the certificate validation used by the Cortex service exposed as a websocket. It’s only valid if I use localhost.

    What can I do here? I’ve tried to use the following, with no luck either:

    _wSC.Security.AllowNameMismatchCertificate = true;
    _wSC.Security.AllowCertificateChainErrors = true;

    Thanks in advance,

     

     

    #665
    luckham jerill
    Participant
    @starex12-6058fa0f16135

    Hello!

    Thank you for your post. Currently, Cortex doesn’t allow a remote connection except Cortex on Raspberry. If you have other questions, please let us know.

    #671
    lastname60ee41ea0ee2e
    Participant
    @claudio8-60ee41ea0ee30

    Thanks SO much for your prompt response Luckham.

    Is it something that you are considering on your roadmap? Is there any workaround that I could take in order to accomplish what I need?

    #675
    luckham jerill
    Participant
    @starex12-6058fa0f16135

    Hello,

    At the moment, we are not considering to add this feature for remote connection to other OS for now.

Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.