From b9599ec357875a127f467ba236342f02f8462e3a Mon Sep 17 00:00:00 2001 From: Thomas Fransolet Date: Sun, 19 Jan 2020 03:16:54 +0100 Subject: [PATCH] MerossService MQTT working ! --- .vs/MyCore/v15/Server/sqlite3/storage.ide | Bin 2400256 -> 2400256 bytes .vs/MyCore/v15/Server/sqlite3/storage.ide-wal | Bin 4144752 -> 4144752 bytes MyCore/Services/MerossService.cs | 61 +++++++++++++++--- 3 files changed, 53 insertions(+), 8 deletions(-) diff --git a/.vs/MyCore/v15/Server/sqlite3/storage.ide b/.vs/MyCore/v15/Server/sqlite3/storage.ide index a5369d2a10107612065b1e636bad81bc3381254a..3303ca843c64e1a8a8120a786ccf4cd9430590b3 100644 GIT binary patch delta 1163 zcmZwEeNfYN90%~U@%~Az#6{>5{>6W6mUSWc!(P;9*=Nit}(%|v5*PIcyioT zgTdez)kJs5S)@25evpM&K0tW`f|<@h5Ig1Y5W)Tk3;NPu{n6d$_1F9E{rTgq8*77g zKr0)rFme*%3ahm5Ae?-eE~HU$Bh?M86g?{i25O)=0g2U@4ftT?IA7ag z_$8X@PVq!t$i7)A#glnya&c}K?X_W zk!n(%q|SoEeGDF|+u(_q6JFmP8qc%WO`Sy#8{Dqv3yug1FQeTaNF>&ZBF8AbTqK0< z1VIo?-h#+mxFn1&MApgF{>qUWVx4F{0)5}ele_<44fdfIQcoU|B1A43KMmoh={n4H z3Le838iP>dUZX#HMyJzp2#_V~D=G;W8rIf?ifBDw|G_b>1y}P&?|t7k(MW>Bpq=+c zz^mEQYX>$aN|zSJ)s>YaF)gprJXYs6^5d5~#~?|Kz4;`E`W%gILfEw-(de?nAnh}Y znn|{Kr8(Qt{$S1qNtFRPWn)|l4DWQ#!VpAW3N<}^hAQuxek{;EDy~LosoG&~mF`07 zPd;f+Gy1o=l(8_f#F{XqyT)8+IYf&Qx6l!rT~LtSJzt}Uilc{Fo=C9H^JewFP4*=GEQrobJP0a zbfz)=$`i*{j+V|Z?7lZW=PLc?Q5xfQ!+{vO|YOoWzaxOOKb5AOT6ja;1<}vvXmJ( zePiI#m5HFHJd1E)O8Vyj^~7m0dp*uP-*ZYEaJ)@gv`DEjK6BW(8#4`Wph zr*=gi8?HDn9ts|?yGSkJ#*?8{&rV$b?6=6&3}sexBop>?IE(ms;?#l>=T9t?g!{b- zw@vXYUtDEaI(LnZ;@r3WOCH?uU5LuJC;y_9-Q`a-s)fvl0p+Ep(sOOxeP*T`fid_k z$qV`$+G1LVt+}lBmdSSt=|=PFHpOQT8%zw=g?2y<3>a#N5JE{f2tv@YMZZ9-NRRM{ zIFdJdXg`7Jo+v9TOOVM+N$22z^5P>3xh9B<3J1vE=tl`OSJ%AAkmy8(TBCYbC6{Rw z|IK3l%}Qjd_ky?*ZG}d0RFI+22qX&m2Wpi@E09!_iOb7Wa&3}YU9PU!OTkfyYyt#5 S4}c(VO#3mS$M=d6mwy0$9mB2w delta 1108 zcmZwGe^8Tk90&04^ROS!V3Pr3IG8fFhaGUDvcm|07`S7sKm!~xLs%EJevkwi9rA04 z$52eb1y4dIVon%%fFRH8&=z^=tWa`rG8zg~5;N>rQt`8|$JHNQci-0^-@DJ}K7YLL ztu-G$Y;&*y~HUlzKy8!!S^w` z3QeWd3i(7hkzX%-o%4U=WLXA&kZus*TMczMyI+k{1$4?ZpiDEhq{l6!g;HLdM6_tN zT0RAw;u{$>G)!`K^Y`bPWw-sV3@SU85Byo|u)noRLnMF&Y6btyel9aIYCZq`1+8s{ zCZxY&_{I7=<$Bh}BH0sXSNi3PYnuRM0RRG(!@os2E$=!eUp_EjcqzIz#I2k=Yj>u^ z%`}=pTFFTDdwk4ESK{AZNNkgE3!TPc-?Q&5j|@KNVB$Fg4QY}{;-T%By2CEVXhRd4 zlgbJG-MvFVtqDrcH488VVZkd+2mr+_Q~uZ=V>7$V(b7ZL!!K*9&xh_$)t}^8T=n&` zrAXy5eQ9#f#fkQE7sEZ9+}dXw5pM>kJr)OT^=IUx3a)vsvuS3xlDAW(**;(_#BxlF zQF{5h2j_kFeNapF_9_V5wB+hB8S?{&w{un0e$CmUPkbTx3iaIJt*pinP;hlA^=CH6 zI$G4W{^RxlrNy|I?0DR&>d#=_-0Ily_K@X{yIi%(YA%<)5rw7i)%hXu!F2I_2rs1o z9se3MQA1 z!sj2BTUG75g91O49bWck{7PkJQnvto_ajb}?Mrbw>X_}UzM#%Riw#e!e#*W^mOfZy zn70JHCaxJ(k1@rJqU`-6uNE?ftL$O!vq$putX{tL&3jXs8GG*74>w&}xw~yVqLmuU zTKsDu$=BZ3<2@gP%qGB`U_{^_r8B)eO5mB#pyZz}t5U1}=xEJA_Tu2IQ}y6n(RAH_|gN7w2?!n(YV{S7=5 By-EN8 diff --git a/.vs/MyCore/v15/Server/sqlite3/storage.ide-wal b/.vs/MyCore/v15/Server/sqlite3/storage.ide-wal index 9b3cb90c5220d863a04447afa5b097ab0fc958f1..6938aa0acc085c0d28d9b6e8e4065b255557010e 100644 GIT binary patch delta 82273 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 Wo4e0pA5#iMa3sP?X9r{g%>NI@=*Fu6 delta 73094 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 diff --git a/MyCore/Services/MerossService.cs b/MyCore/Services/MerossService.cs index c3021db..41e2af5 100644 --- a/MyCore/Services/MerossService.cs +++ b/MyCore/Services/MerossService.cs @@ -197,21 +197,17 @@ namespace MyCore.Services _client = new MqttFactory().CreateMqttClient(); string stringForMD5 = resultToken.userid + resultToken.key; - string hashed_password = CreateMD5(stringForMD5); - - MqttClientOptionsBuilderTlsParameters tlsParameters = new MqttClientOptionsBuilderTlsParameters(); - tlsParameters.UseTls = true; - tlsParameters.SslProtocol = System.Security.Authentication.SslProtocols.Tls; + string hashed_password = CreateMD5(stringForMD5).ToLower(); _options = new MqttClientOptionsBuilder() - .WithClientId("app: 08d4c9f99da40203ebc798a79512ec14") + .WithClientId("app:ddddd9eb14407b666f559af5af9c1840") .WithTcpServer(domain, port) .WithCredentials(resultToken.userid, hashed_password) - .WithTls(tlsParameters) + .WithCleanSession() + .WithTls() .WithProtocolVersion(MqttProtocolVersion.V311) .Build(); - _client.ConnectAsync(_options, CancellationToken.None).ContinueWith(res => { if (res.Status == TaskStatus.RanToCompletion) { @@ -265,5 +261,54 @@ namespace MyCore.Services } } + + private static bool CertificateValidationCallBack( + object sender, + System.Security.Cryptography.X509Certificates.X509Certificate certificate, + System.Security.Cryptography.X509Certificates.X509Chain chain, + System.Net.Security.SslPolicyErrors sslPolicyErrors) + { + // If the certificate is a valid, signed certificate, return true. + if (sslPolicyErrors == System.Net.Security.SslPolicyErrors.None) + { + return true; + } + + // If there are errors in the certificate chain, look at each error to determine the cause. + if ((sslPolicyErrors & System.Net.Security.SslPolicyErrors.RemoteCertificateChainErrors) != 0) + { + if (chain != null && chain.ChainStatus != null) + { + foreach (System.Security.Cryptography.X509Certificates.X509ChainStatus status in chain.ChainStatus) + { + if ((certificate.Subject == certificate.Issuer) && + (status.Status == System.Security.Cryptography.X509Certificates.X509ChainStatusFlags.UntrustedRoot)) + { + // Self-signed certificates with an untrusted root are valid. + continue; + } + else + { + if (status.Status != System.Security.Cryptography.X509Certificates.X509ChainStatusFlags.NoError) + { + // If there are any other errors in the certificate chain, the certificate is invalid, + // so the method returns false. + return false; + } + } + } + } + + // When processing reaches this line, the only errors in the certificate chain are + // untrusted root errors for self-signed certificates. These certificates are valid + // for default Exchange server installations, so return true. + return true; + } + else + { + // In all other cases, return false. + return false; + } + } } }