|
@@ -529,136 +529,275 @@ namespace MOKA_Factory_Tools
|
|
|
Dictionary<string, string> data = JsonConvert.DeserializeObject<Dictionary<string, string>>(jObject["data"].ToString());
|
|
|
if (data != null)
|
|
|
{
|
|
|
+ Func<string, string, bool> CheckMD5 = (data, md5) =>
|
|
|
+ {
|
|
|
+ if (data == null)
|
|
|
+ return true;
|
|
|
+
|
|
|
+ if (!GetMD5.GetStrMd5(data).Equals(md5, StringComparison.OrdinalIgnoreCase))
|
|
|
+ return false;
|
|
|
+
|
|
|
+ return true;
|
|
|
+ };
|
|
|
+
|
|
|
if (data.ContainsKey("mac") && data.ContainsKey("mac_md5"))
|
|
|
{
|
|
|
keys.Mac.data = data["mac"];
|
|
|
keys.Mac.md5 = data["mac_md5"];
|
|
|
+
|
|
|
+ if ( !CheckMD5(keys.Mac.data, keys.Mac.md5) )
|
|
|
+ {
|
|
|
+ msg = string.Format("Mac Key Value md5 Is Incorrect: data={0}, md5={1}", keys.Mac.data, keys.Mac.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("btMac") && data.ContainsKey("btMac_md5"))
|
|
|
{
|
|
|
keys.BT_MAC.data = data["btMac"];
|
|
|
keys.BT_MAC.md5 = data["btMac_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.BT_MAC.data, keys.BT_MAC.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("BT_MAC Key Value md5 Is Incorrect: data={0}, md5={1}", keys.BT_MAC.data, keys.BT_MAC.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("wifiMac") && data.ContainsKey("wifiMac_md5"))
|
|
|
{
|
|
|
keys.WiFi_MAC.data = data["wifiMac"];
|
|
|
keys.WiFi_MAC.md5 = data["wifiMac_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.WiFi_MAC.data, keys.WiFi_MAC.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("WiFi_MAC Key Value md5 Is Incorrect: data={0}, md5={1}", keys.WiFi_MAC.data, keys.WiFi_MAC.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("deviceid") && data.ContainsKey("deviceid_md5"))
|
|
|
{
|
|
|
keys.DID.data = data["deviceid"];
|
|
|
keys.DID.md5 = data["deviceid_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.DID.data, keys.DID.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("DID Key Value md5 Is Incorrect: data={0}, md5={1}", keys.DID.data, keys.DID.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("hdcp") && data.ContainsKey("hdcp_md5"))
|
|
|
{
|
|
|
keys.HDCP.data = data["hdcp"];
|
|
|
keys.HDCP.md5 = data["hdcp_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.HDCP.data, keys.HDCP.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("HDCP Key Value md5 Is Incorrect: data={0}, md5={1}", keys.HDCP.data, keys.HDCP.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("hdcp2") && data.ContainsKey("hdcp2_md5"))
|
|
|
{
|
|
|
keys.HDCP22.data = data["hdcp2"];
|
|
|
keys.HDCP22.md5 = data["hdcp2_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.HDCP22.data, keys.HDCP22.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("HDCP22 Key Value md5 Is Incorrect: data={0}, md5={1}", keys.HDCP22.data, keys.HDCP22.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("ci") && data.ContainsKey("ci_md5"))
|
|
|
{
|
|
|
keys.CI_plus.data = data["ci"];
|
|
|
keys.CI_plus.md5 = data["ci_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.CI_plus.data, keys.CI_plus.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("CI_plus Key Value md5 Is Incorrect: data={0}, md5={1}", keys.CI_plus.data, keys.CI_plus.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("ecp") && data.ContainsKey("ecp_md5"))
|
|
|
{
|
|
|
keys.ECP.data = data["ecp"];
|
|
|
keys.ECP.md5 = data["ecp_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.ECP.data, keys.ECP.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("ECP Key Value md5 Is Incorrect: data={0}, md5={1}", keys.ECP.data, keys.ECP.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("acas") && data.ContainsKey("acas_md5"))
|
|
|
{
|
|
|
keys.ACASKey_Data.data = data["acas"];
|
|
|
keys.ACASKey_Data.md5 = data["acas_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.ACASKey_Data.data, keys.ACASKey_Data.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("ACASKey_Data Key Value md5 Is Incorrect: data={0}, md5={1}", keys.ACASKey_Data.data, keys.ACASKey_Data.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("lek") && data.ContainsKey("lek_md5"))
|
|
|
{
|
|
|
keys.LEK.data = data["lek"];
|
|
|
keys.LEK.md5 = data["lek_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.LEK.data, keys.LEK.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("LEK Key Value md5 Is Incorrect: data={0}, md5={1}", keys.LEK.data, keys.LEK.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("pek") && data.ContainsKey("pek_md5"))
|
|
|
{
|
|
|
keys.PEK.data = data["pek"];
|
|
|
keys.PEK.md5 = data["pek_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.PEK.data, keys.PEK.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("PEK Key Value md5 Is Incorrect: data={0}, md5={1}", keys.PEK.data, keys.PEK.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("playready") && data.ContainsKey("playready_md5"))
|
|
|
{
|
|
|
keys.Playready.data = data["playready"];
|
|
|
keys.Playready.md5 = data["playready_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.Playready.data, keys.Playready.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("Playready Key Value md5 Is Incorrect: data={0}, md5={1}", keys.Playready.data, keys.Playready.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("netfilx") && data.ContainsKey("netfilx_md5"))
|
|
|
{
|
|
|
keys.ESN.data = data["netfilx"];
|
|
|
keys.ESN.md5 = data["netfilx_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.ESN.data, keys.ESN.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("ESN Key Value md5 Is Incorrect: data={0}, md5={1}", keys.ESN.data, keys.ESN.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("hash") && data.ContainsKey("hash_md5"))
|
|
|
{
|
|
|
keys.Hashkey.data = data["hash"];
|
|
|
keys.Hashkey.md5 = data["hash_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.Hashkey.data, keys.Hashkey.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("Hashkey Key Value md5 Is Incorrect: data={0}, md5={1}", keys.Hashkey.data, keys.Hashkey.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("mgk") && data.ContainsKey("mgk_md5"))
|
|
|
{
|
|
|
keys.MGK.data = data["mgk"];
|
|
|
keys.MGK.md5 = data["mgk_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.MGK.data, keys.MGK.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("MGK Key Value md5 Is Incorrect: data={0}, md5={1}", keys.MGK.data, keys.MGK.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("youtube") && data.ContainsKey("youtube_md5"))
|
|
|
{
|
|
|
keys.YouTube_KEY.data = data["youtube"];
|
|
|
keys.YouTube_KEY.md5 = data["youtube_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.YouTube_KEY.data, keys.YouTube_KEY.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("YouTube_KEY Key Value md5 Is Incorrect: data={0}, md5={1}", keys.YouTube_KEY.data, keys.YouTube_KEY.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("fairplay") && data.ContainsKey("fairplay_md5"))
|
|
|
{
|
|
|
keys.Fairplay.data = data["fairplay"];
|
|
|
keys.Fairplay.md5 = data["fairplay_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.Fairplay.data, keys.Fairplay.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("Fairplay Key Value md5 Is Incorrect: data={0}, md5={1}", keys.Fairplay.data, keys.Fairplay.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("widevine") && data.ContainsKey("widevine_md5"))
|
|
|
{
|
|
|
keys.Widevine.data = data["widevine"];
|
|
|
keys.Widevine.md5 = data["widevine_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.Widevine.data, keys.Widevine.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("Widevine Key Value md5 Is Incorrect: data={0}, md5={1}", keys.Widevine.data, keys.Widevine.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("attention") && data.ContainsKey("attention_md5"))
|
|
|
{
|
|
|
keys.Attestation.data = data["attention"];
|
|
|
keys.Attestation.md5 = data["attention_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.Attestation.data, keys.Attestation.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("Attestation Key Value md5 Is Incorrect: data={0}, md5={1}", keys.Attestation.data, keys.Attestation.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("dsn") && data.ContainsKey("dsn_md5"))
|
|
|
{
|
|
|
keys.DSN.data = data["dsn"];
|
|
|
keys.DSN.md5 = data["dsn_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.DSN.data, keys.DSN.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("DSN Key Value md5 Is Incorrect: data={0}, md5={1}", keys.DSN.data, keys.DSN.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (data.ContainsKey("dak") && data.ContainsKey("dak_md5"))
|
|
|
{
|
|
|
keys.DAK.data = data["dak"];
|
|
|
keys.DAK.md5 = data["dak_md5"];
|
|
|
+
|
|
|
+ if (!CheckMD5(keys.DAK.data, keys.DAK.md5))
|
|
|
+ {
|
|
|
+ msg = string.Format("DAK Key Value md5 Is Incorrect: data={0}, md5={1}", keys.DAK.data, keys.DAK.md5);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
result = true;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+end:
|
|
|
watch.Stop();
|
|
|
Log.WriteInfoLog(string.Format("[GetIDMKeys] order={0},sn={1},Elapsed={2} GetKeys={3}", order, sn, watch.Elapsed.TotalMilliseconds, result ? "成功" : "失败"));
|
|
|
|