|
@@ -296,195 +296,60 @@ namespace MOKA_Factory_Tools
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 检验抄写类型
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="keyTypes"></param>
|
|
|
+ /// 服务器返回的key types
|
|
|
+ /// <param name="cfg_write"></param>
|
|
|
+ /// 配置文件配置的key to write
|
|
|
+ /// <param name="resultKeyType"></param>
|
|
|
+ /// <returns></returns>
|
|
|
public static bool CheckKeyType(Dictionary<string, string> keyTypes, Config_WriteDone cfg_write, out List<KeyType> resultKeyType)
|
|
|
{
|
|
|
resultKeyType = new List<KeyType>();
|
|
|
-
|
|
|
- Func<string, List <KeyType> ,bool > check_key_type = (keyname, listType) =>
|
|
|
- {
|
|
|
- if (!keyTypes.ContainsKey(keyname)) {
|
|
|
- Log.WriteErrorLog(string.Format("{0} is not included in the available key type of the order", keyname));
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- KeyType keyType = new KeyType();
|
|
|
- keyType.name = keyname;
|
|
|
- keyType.type = keyTypes[keyname];
|
|
|
- listType.Add(keyType);
|
|
|
- return true;
|
|
|
- };
|
|
|
-
|
|
|
- if (cfg_write.DIDWrite_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("DeviceID", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.MacWrite_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("MAC", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.HDCPWrite_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("HDCP_KEY", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.HDCP22Write_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("HDCP2.2_KEY", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.ESNWrite_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("NETFILX_ESN", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.WidevineWrite_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("Widevine_KEY", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.CI_plusWrite_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("CI_PLUS_KEY", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.AttestationWrite_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("Attestation_key", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.MGKWrite_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("MGK_KEY", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.FairplayWrite_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("Fairplay_KEY", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.ECPWrite_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("ECP_KEY", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.WifiMacWrite_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("WiFi_MAC", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.BTMacWrite_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("BT_MAC", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.LEKWrite_YesNo)
|
|
|
+ foreach (var item in keyTypes)
|
|
|
{
|
|
|
- if (!check_key_type("LEK", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
+ resultKeyType.Add(new KeyType { name = item.Key , type = item.Value});
|
|
|
}
|
|
|
|
|
|
- if (cfg_write.PEKWrite_YesNo)
|
|
|
+ Action<string, List <KeyType>, bool> check_key_type = (keyname, listType, writeYesNo) =>
|
|
|
{
|
|
|
- if (!check_key_type("PEK", resultKeyType))
|
|
|
+ if (keyTypes.ContainsKey(keyname))
|
|
|
{
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.PlayreadyWrite_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("PlayReady_key", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.HashWrite_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("Hashkey", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.DSNWrite_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("DSN", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.YouTubeWrite_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("YouTube_KEY", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.ACASKeyWrite_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("ACAS_KEY", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (cfg_write.DAKWrite_YesNo)
|
|
|
- {
|
|
|
- if (!check_key_type("DAK", resultKeyType))
|
|
|
- {
|
|
|
- return false;
|
|
|
+ if (!writeYesNo)
|
|
|
+ {
|
|
|
+ KeyType kt = listType.Find(x=>x.name == keyname);
|
|
|
+ if ( kt != null)
|
|
|
+ listType.Remove(kt);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- Log.WriteInfoLog("key type of order need to copy="+resultKeyType.ToString());
|
|
|
+ };
|
|
|
|
|
|
- return true;
|
|
|
+ // 共21个key需要抄写;
|
|
|
+ check_key_type("DeviceID", resultKeyType, cfg_write.DIDWrite_YesNo);
|
|
|
+ check_key_type("MAC", resultKeyType, cfg_write.MacWrite_YesNo);
|
|
|
+ check_key_type("HDCP_KEY", resultKeyType, cfg_write.HDCPWrite_YesNo);
|
|
|
+ check_key_type("HDCP2.2_KEY", resultKeyType, cfg_write.HDCP22Write_YesNo);
|
|
|
+ check_key_type("NETFILX_ESN", resultKeyType, cfg_write.ESNWrite_YesNo);
|
|
|
+ check_key_type("Widevine_KEY", resultKeyType, cfg_write.WidevineWrite_YesNo);
|
|
|
+ check_key_type("CI_PLUS_KEY", resultKeyType, cfg_write.CI_plusWrite_YesNo);
|
|
|
+ check_key_type("Attestation_key", resultKeyType, cfg_write.AttestationWrite_YesNo);
|
|
|
+ check_key_type("MGK_KEY", resultKeyType, cfg_write.MGKWrite_YesNo);
|
|
|
+ check_key_type("Fairplay_KEY", resultKeyType, cfg_write.FairplayWrite_YesNo);
|
|
|
+ check_key_type("ECP_KEY", resultKeyType, cfg_write.ECPWrite_YesNo);
|
|
|
+ check_key_type("WiFi_MAC", resultKeyType, cfg_write.WifiMacWrite_YesNo);
|
|
|
+ check_key_type("BT_MAC", resultKeyType, cfg_write.BTMacWrite_YesNo);
|
|
|
+ check_key_type("LEK", resultKeyType, cfg_write.LEKWrite_YesNo);
|
|
|
+ check_key_type("PEK", resultKeyType, cfg_write.PEKWrite_YesNo);
|
|
|
+ check_key_type("PlayReady_key", resultKeyType, cfg_write.PlayreadyWrite_YesNo);
|
|
|
+ check_key_type("Hashkey", resultKeyType, cfg_write.HashWrite_YesNo);
|
|
|
+ check_key_type("DSN", resultKeyType, cfg_write.DSNWrite_YesNo);
|
|
|
+ check_key_type("YouTube_KEY", resultKeyType, cfg_write.YouTubeWrite_YesNo);
|
|
|
+ check_key_type("ACAS_KEY", resultKeyType, cfg_write.ACASKeyWrite_YesNo);
|
|
|
+ check_key_type("DAK", resultKeyType, cfg_write.DAKWrite_YesNo);
|
|
|
+
|
|
|
+ return resultKeyType.Count == 0 ? false : true;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|