void EBMCASet_Load(object sender, EventArgs e) { Dictionary <object, object> dict = new Dictionary <object, object>(); dict.Add("江南天安", 1); dict.Add("内置CA", 5); ComboBind.Binding(cmbCAname, dict); EBCert tmp = SingletonInfo.GetInstance().InlayCA.GetEBCert(0);//0表示CA_CERT InlayCAPBK = tmp.Cert; EBCert tmp1 = SingletonInfo.GetInstance().InlayCA.GetEBCert(1);//1表示PL_CERT InLayPLPBK = tmp1.Cert; chbUseSignature.Checked = EBMMain.ini.ReadValue("EBMInfo", "IsUseCA").ToString() == "1" ? true : false; cmbCAname.SelectedValue = Convert.ToInt32(EBMMain.ini.ReadValue("EBMInfo", "CAtype").ToString()); if (Convert.ToInt32(cmbCAname.SelectedValue) == 5) //内置CA { panelInlayCA.Visible = true; if (EBMMain.ini.ReadValue("EBMInfo", "InlayCA").ToString() == "1") { chbplatformsignature.Checked = true; textPublicKey.Text = InLayPLPBK; } else { chbCAsignature.Checked = true; textPublicKey.Text = InlayCAPBK; } } else { panelInlayCA.Visible = false; } chbCheckSignature.Checked = EBMMain.ini.ReadValue("EBMInfo", "CheckSignature").ToString() == "1" ? true : false; }
private List <EBIndex> GetSendEBMIndex() { if (EBIndex_List.Count == 0) { return(null); } List <EBIndex> list = new List <EBIndex>(); foreach (var index in EBIndex_List) { index.EBIndex.ProtocolGX = SingletonInfo.GetInstance().IsGXProtocol; if (index.SendState) { list.Add(index.EBIndex); if (!index.DesFlag) { list[list.Count - 1].DetlChlDescriptor = null; } } } return(list); }
public void TestFunc() { string packetype = "AddDailyBroadcast"; OperatorData op = new OperatorData(); op.OperatorType = packetype; op.ModuleType = "1"; JavaScriptSerializer Serializer = new JavaScriptSerializer(); switch (packetype) { case "AddDailyBroadcast": case "ModifyDailyBroadcast": string data = "[{\"ItemID\":72076,\"B_Daily_cmd_tag\":1,\"Program\":{\"NetID\":1,\"TSID\":1,\"ServiceID\":1,\"PCR_PID\":1,\"Program_PID\":4013,\"Priority\":4,\"Volume\":1,\"EndTime\":\"2019/5/27 17:35:09\",\"B_Address_type\":1,\"list_Terminal_Address\":[\"634152310000\"]}}]"; switch (op.ModuleType) { case "1": //节目切播 // JsonstructureDeal(ref data); ////因为有ValueType缘故 不能反序列化 string[] dataArray = data.Split(','); ChangeProgram_ pp = new ChangeProgram_(); pp.Program = new DailyCmdChangeProgram(); foreach (var item in dataArray) { if (item.Contains("ItemID")) { pp.ItemID = item.Split(':')[1]; } if (item.Contains("B_Daily_cmd_tag")) { // pp.B_Daily_cmd_tag = Convert.ToByte(item.Split(':')[1]); } if (item.Contains("Program") && !item.Contains("Program_PID")) { pp.Program.NetID = (short)Convert.ToInt32(item.Split(':')[2]); } if (item.Contains("TSID")) { pp.Program.TSID = (short)Convert.ToInt32(item.Split(':')[1]); } if (item.Contains("ServiceID")) { pp.Program.ServiceID = (short)Convert.ToInt32(item.Split(':')[1]); } if (item.Contains("PCR_PID")) { pp.Program.PCR_PID = (short)Convert.ToInt32(item.Split(':')[1]); } if (item.Contains("Program_PID")) { pp.Program.Program_PID = (short)Convert.ToInt32(item.Split(':')[1]); } if (item.Contains("Priority")) { pp.Program.Priority = (short)Convert.ToInt32(item.Split(':')[1]); } if (item.Contains("Volume")) { pp.Program.Volume = (short)Convert.ToInt32(item.Split(':')[1]); } if (item.Contains("EndTime")) { string tmp = item.Substring(10); string tmp1 = tmp.Substring(1); string tmp2 = tmp1.Substring(0, tmp1.Length - 1); DateTime dd = Convert.ToDateTime(tmp2); pp.Program.EndTime = dd; } if (item.Contains("B_Address_type")) { pp.Program.B_Address_type = (byte)Convert.ToInt32(item.Split(':')[1]); } if (item.Contains("list_Terminal_Address")) { string tmp = item.Split(':')[1].Substring(1); string tmp2 = tmp.Substring(0, tmp.Length - 4); string tmp3 = tmp2.Substring(1); string tmp4 = tmp3.Substring(0, tmp3.Length - 1); string[] array = tmp4.Split(','); int arraylength = array.Length; if (SingletonInfo.GetInstance().IsGXProtocol) { for (int i = 0; i < arraylength; i++) { array[i] = array[i] + "000000"; } } pp.Program.list_Terminal_Address = new List <string>(array); } } List <ChangeProgram_> listCP = new List <ChangeProgram_>(); listCP.Add(pp); op.Data = listCP; break; case "3": //播放控制 JsonstructureDeal(ref data); List <PlayCtrl_> listPC = Serializer.Deserialize <List <PlayCtrl_> >(data); op.Data = listPC; break; case "4": //输出控制 JsonstructureDeal(ref data); List <OutSwitch_> listOS = Serializer.Deserialize <List <OutSwitch_> >(data); op.Data = listOS; break; case "5": //RDS编码数据透传 JsonstructureDeal(ref data); List <RdsTransfer_> listRT = Serializer.Deserialize <List <RdsTransfer_> >(data); op.Data = listRT; break; } break; case "DelDailyBroadcast": string ItemList = "72080"; op.Data = ItemList; break; } DataDealHelper.MyEvent(op); }
private void AnalysisEBMConfigureData(IPrimitiveMap map) { string packetype = map["PACKETTYPE"].ToString(); OperatorData op = new OperatorData(); op.OperatorType = packetype; op.ModuleType = map["Cmdtag"].ToString(); JavaScriptSerializer Serializer = new JavaScriptSerializer(); switch (packetype) { case "AddEBMConfigure": case "ModifyEBMConfigure": string data = map["data"].ToString(); switch (op.ModuleType) { case "1": //时间校准 JsonstructureDeal(ref data); // List<TimeService_> listTS = Serializer.Deserialize<List<TimeService_>>(data); //因为有ValueType缘故 不能反序列化 string[] dataArray = data.Split(','); TimeService_ pp = new TimeService_(); foreach (var item in dataArray) { if (item.Contains("ItemID")) { pp.ItemID = item.Split(':')[1]; } if (item.Contains("B_Daily_cmd_tag")) { // pp.B_Daily_cmd_tag = Convert.ToByte(item.Split(':')[1]); } if (item.Contains("Configure")) { pp.Configure = new EBConfigureTimeService(); string timestr = item.Substring(26); string time = timestr.Substring(0, timestr.Length - 2); DateTime dd = Convert.ToDateTime(time); pp.Configure.Real_time = dd; // pp.Configure.Real_time = item.Split(':')[1].Split(':')[1].TrimEnd('}'); } if (item.Contains("GetSystemTime")) { // pp.GetSystemTime = item.Split(':')[1] == "true" ? true : false; //按照陈良需求 修改为固定取系统时间 pp.GetSystemTime = true; } if (item.Contains("SendTick")) { string qq = item.Split(':')[1]; string ww = qq.Substring(0, qq.Length - 2); if (Convert.ToInt32(ww) < 60) { pp.SendTick = 60; } else { pp.SendTick = Convert.ToInt32(ww); } } } List <TimeService_> listTS = new List <TimeService_>(); listTS.Add(pp); op.Data = listTS; break; case "2": //2区域码设置 JsonstructureDeal(ref data); List <SetAddress_> listSA = Serializer.Deserialize <List <SetAddress_> >(data); op.Data = listSA; break; case "3": //工作模式设置 JsonstructureDeal(ref data); List <WorkMode_> listWM = Serializer.Deserialize <List <WorkMode_> >(data); op.Data = listWM; break; case "4": //锁定频率设置 JsonstructureDeal(ref data); List <MainFrequency_> listMF = Serializer.Deserialize <List <MainFrequency_> >(data); op.Data = listMF; break; case "5": //回传方式设置 JsonstructureDeal(ref data); //又要特殊处理 string tmp1 = data.Replace("\"S_reback_address_backup\":,", "\"S_reback_address_backup\":\"null\","); string tmp2 = tmp1.Replace("\"I_reback_port_Backup\":,", "\"I_reback_port_Backup\":0,"); List <Reback_> listRB = Serializer.Deserialize <List <Reback_> >(tmp2); op.Data = listRB; break; case "6": //默认音量设置 JsonstructureDeal(ref data); List <DefaltVolume_> listDV = Serializer.Deserialize <List <DefaltVolume_> >(data); op.Data = listDV; break; case "7": //回传周期设置 JsonstructureDeal(ref data); List <RebackPeriod_> listRP = Serializer.Deserialize <List <RebackPeriod_> >(data); op.Data = listRP; break; case "104": //启动内容检测指令 JsonstructureDeal(ref data); List <ContentMoniterRetback_> listCMR = Serializer.Deserialize <List <ContentMoniterRetback_> >(data); op.Data = listCMR; break; case "105": //启动内容监测实时监听指令 JsonstructureDeal(ref data); if (SingletonInfo.GetInstance().IsGXProtocol) { List <ContentRealMoniterGX_> listCRMGX = Serializer.Deserialize <List <ContentRealMoniterGX_> >(data); op.Data = listCRMGX; } else { List <ContentRealMoniter_> listCRM = Serializer.Deserialize <List <ContentRealMoniter_> >(data); op.Data = listCRM; } break; case "106": //终端工作状态查询 JsonstructureDeal(ref data); // data.IndexOf(',') List <StatusRetback_> listSR = Serializer.Deserialize <List <StatusRetback_> >(data); op.Data = listSR; break; case "240": //终端固件升级 JsonstructureDeal(ref data); List <SoftwareUpGrade_> listSUG = Serializer.Deserialize <List <SoftwareUpGrade_> >(data); op.Data = listSUG; break; case "8": //RDS配置 JsonstructureDeal(ref data); List <RdsConfig_> listRC = Serializer.Deserialize <List <RdsConfig_> >(data); op.Data = listRC; break; } break; case "DelEBMConfigure": string ItemList = map["ItemIDList"].ToString(); op.Data = ItemList; break; } DataDealHelper.MyEvent(op); }
private void AnalysisEBMIndexData(IPrimitiveMap map) { string packetype = map["PACKETTYPE"].ToString(); OperatorData op = new OperatorData(); op.OperatorType = packetype; switch (packetype) { case "AddEBMIndex": EBMIndexTmp tmp = new EBMIndexTmp(); tmp.BL_details_channel_indicate = map["BL_details_channel_indicate"].ToString(); tmp.IndexItemID = map["IndexItemID"].ToString(); tmp.S_EBM_id = map["S_EBM_id"].ToString().Substring(0, 30); #region 特殊处理EBM_ID 凑到30个长度 //if (map["S_EBM_id"].ToString().Length < 30) //{ // tmp.IndexItemID = map["S_EBM_id"].ToString() + "000000000000"; //} //else //{ // tmp.S_EBM_id = map["S_EBM_id"].ToString().Substring(0, 30); //} #endregion tmp.S_EBM_original_network_id = (SingletonInfo.GetInstance().OriginalNetworkId + 1).ToString(); tmp.S_EBM_start_time = map["S_EBM_start_time"].ToString(); tmp.S_EBM_end_time = map["S_EBM_end_time"].ToString(); tmp.S_EBM_type = map["S_EBM_type"].ToString(); tmp.S_EBM_class = map["S_EBM_class"].ToString(); tmp.S_EBM_level = map["S_EBM_level"].ToString(); tmp.List_EBM_resource_code = map["List_EBM_resource_code"].ToString(); tmp.DesFlag = map["DesFlag"].ToString(); tmp.S_details_channel_transport_stream_id = map["S_details_channel_transport_stream_id"].ToString(); tmp.S_details_channel_program_number = map["S_details_channel_program_number"].ToString(); tmp.S_details_channel_PCR_PID = map["S_details_channel_PCR_PID"].ToString(); tmp.DeliverySystemDescriptor = new object(); if (tmp.DesFlag == "true") { string data = map["DeliverySystemDescriptor"].ToString(); string pp1 = data.Substring(1); string dd1 = pp1.Substring(0, pp1.Length - 1); if (data.Contains("B_FEC_inner")) //有线传送系统描述符 { tmp.DeliverySystemDescriptor = (object)JsonConvert.DeserializeObject <CableDeliverySystemDescriptortmp>(dd1); tmp.descriptor_tag = 68; } else { //地面传送系统描述符 tmp.DeliverySystemDescriptor = (object)JsonConvert.DeserializeObject <TerristrialDeliverySystemDescriptortmp>(dd1); tmp.descriptor_tag = 90; } } tmp.List_ProgramStreamInfo = new List <ProgramStreamInfotmp>(); if (tmp.BL_details_channel_indicate == "true") { string data = map["List_ProgramStreamInfo"].ToString(); JavaScriptSerializer Serializer = new JavaScriptSerializer(); List <ProgramStreamInfotmp> objs = Serializer.Deserialize <List <ProgramStreamInfotmp> >(data); foreach (ProgramStreamInfotmp item in objs) { //if (item.Descriptor2 != null) //{ // //dynamic a = item.Descriptor2; // //Descriptor2 niemi = new Descriptor2(); // //string[] pp = ((string)a[0]["B_descriptor"]).Split(' '); // //List<byte> byteList = new List<byte>(); // //foreach (var it in pp) // //{ // // if (it != "") // // { // // byteList.Add((byte)Convert.ToInt32(it)); // // } // //} // //niemi.B_descriptor = byteList.ToArray(); // //if (a[0]["B_descriptor_tag"] != "") // //{ // // niemi.B_descriptor_tag = (byte)a[0]["B_descriptor_tag"]; // //} // //item.Descriptor2 = niemi; //} //else //{ // #region 特殊处理 Descriptor2 不能为空 当BL_details_channel_indicate==true时 20180524 // // dynamic a = item.Descriptor2; // Descriptor2 niemi = new Descriptor2(); // //niemi.B_descriptor = new byte[]{0,0}; // //niemi.B_descriptor_tag = (byte)1; // niemi.B_descriptor = new byte[] { 0 }; // niemi.B_descriptor_tag = (byte)3; // item.Descriptor2 = niemi; // #endregion //} //修改于20180530 item.Descriptor2 = null; if (item.B_stream_type == "84") { item.B_stream_type = "03"; } } tmp.List_ProgramStreamInfo = objs; } op.Data = (object)tmp; DataDealHelper.MyEvent(op); break; case "AddAreaEBMIndex": case "DelAreaEBMIndex": ModifyEBMIndex Mebm = new ModifyEBMIndex(); Mebm.IndexItemID = map["IndexItemID"].ToString(); Mebm.Data = map["List_EBM_resource_code"].ToString(); op.Data = (object)Mebm; DataDealHelper.MyEvent(op); break; case "DelEBMIndex": op.Data = map["IndexItemID"].ToString(); DataDealHelper.MyEvent(op); break; } }
private void btnOK_Click(object sender, EventArgs e) { try { if (Convert.ToInt32(cmbCAname.SelectedValue) == 5) { if (chbplatformsignature.Checked == false && chbCAsignature.Checked == false) { MessageBox.Show("请勾选平台证书签名/CA签名!"); return; } if (chbplatformsignature.Checked) { SingletonInfo.GetInstance().InlayCAType = 2; } else { SingletonInfo.GetInstance().InlayCAType = 1; } } if (chbCheckSignature.Checked) { SingletonInfo.GetInstance().ischecksignature = true; } else { SingletonInfo.GetInstance().ischecksignature = false; } if (SingletonInfo.GetInstance().OpenScramblerReturn != 0) { SingletonInfo.GetInstance().scramblernum = Convert.ToInt32(cmbCAname.SelectedValue); if (CASetEvent != null) { CASetEvent();//引发事件 } } SingletonInfo.GetInstance().IsUseCAInfo = chbUseSignature.Checked; //是否启用签名 EBMMain.ini.WriteValue("EBMInfo", "IsCAInfoSet", "1"); EBMMain.ini.WriteValue("EBMInfo", "IsUseCA", chbUseSignature.Checked ? "1" : "0"); if (!chbUseSignature.Checked) { //初始化 } EBMMain.ini.WriteValue("EBMInfo", "CAtype", Convert.ToInt32(cmbCAname.SelectedValue).ToString()); if (Convert.ToInt32(cmbCAname.SelectedValue) == 5) { if (chbplatformsignature.Checked) //平台签名 { EBMMain.ini.WriteValue("EBMInfo", "InlayCA", "0"); } else //CA签名 { EBMMain.ini.WriteValue("EBMInfo", "InlayCA", "1"); } } EBMMain.ini.WriteValue("EBMInfo", "CheckSignature", chbCheckSignature.Checked ? "1" : "0"); EBMMain.ini.WriteValue("EBMInfo", "IsCASet", "1"); Close(); } catch (Exception ex) { throw; } }
/// <summary> /// 签名函数 /// </summary> /// <param name="pdatabuf"></param> /// <param name="datalen"></param> /// <param name="random"></param> /// <param name="signature"></param> public void SignatureFunc(byte[] pdatabuf, int datalen, ref int random, ref byte[] signature) { try { byte[] strSignture = new byte[100]; byte[] pucSignature = pdatabuf; // int nDeviceHandle = 0; if (SingletonInfo.GetInstance().IsUseAddCert) { SingletonInfo.GetInstance().InlayCA.EbMsgSign(pdatabuf, datalen, ref random, ref signature, SingletonInfo.GetInstance().Cert_Index); } else { //目前暂用平台签名 20180524 SingletonInfo.GetInstance().InlayCA.EbMsgSign(pdatabuf, datalen, ref random, ref signature, 2); } //switch (SingletonInfo.GetInstance().cramblertype) //{ // case "sjj1313": // nDeviceHandle = SingletonInfo.GetInstance().DeviceHandle_sjj1313; // string eturn = SingletonInfo.GetInstance().crambler1313.Platform_CalculateSingature_String(nDeviceHandle, 1, pucSignature, pucSignature.Length, ref strSignture); // strSignture.CopyTo(signature, 0); // if (eturn == "NetError") // { // LogHelper.WriteLog(typeof(Calcle), "天安加密器网络错误"); // } // break; // case "sjj1507": // nDeviceHandle = SingletonInfo.GetInstance().DeviceHandle_sjj1507; // string eturn1 = SingletonInfo.GetInstance().crambler1507.Platform_CalculateSingature_String(nDeviceHandle, 1, pucSignature, pucSignature.Length, ref strSignture); // strSignture.CopyTo(signature, 0); // if (eturn1 == "NetError") // { // LogHelper.WriteLog(typeof(Calcle), "天安加密器网络错误"); // } // break; //} string strData = null; for (int i = 0; i < pucSignature.Length; i++) { strData += " " + pucSignature[i].ToString("X2"); } // LogRecord.WriteLogFile("原文:" + strData); string strData2 = null; for (int i = 0; i < signature.Length; i++) { strData2 += " " + signature[i].ToString("X2"); } // LogRecord.WriteLogFile("签名数据:" + strData2); } catch (Exception ex) { throw; } }