private static deviceDescriptionType BuildSecureDeviceDescription(flm_GetFacilitySecureEquipmentResult secureDevice, ArrayList versionInformation) { deviceDescriptionType deviceDescription = new deviceDescriptionType(); deviceDescription.DeviceIdentifier = new deviceIdentifierPolyType(); deviceDescription.DeviceIdentifier.idtype = new deviceIdentifierPolyTypeIdtype(); deviceDescription.DeviceIdentifier.idtype = deviceIdentifierPolyTypeIdtype.DeviceUID; if (null == secureDevice.UniqueIdentifier) deviceDescription.DeviceIdentifier.Value = "urn:uid:publicid:dcipllc.com:" + Guid.Empty; else deviceDescription.DeviceIdentifier.Value = "urn:uid:publicid:dcipllc.com:" + secureDevice.UniqueIdentifier.ToString(); deviceDescription.DeviceTypeID = new deviceTypeType(); deviceDescription.DeviceTypeID.scope = "http://www.dcipllc.com/schemas/430-7/2009/FLM#deviceTypes"; if (null == secureDevice.FLM_DeviceType) deviceDescription.DeviceTypeID.Value = "Other"; else deviceDescription.DeviceTypeID.Value = secureDevice.FLM_DeviceType; deviceDescription.DeviceSerial = secureDevice.Serial_Number; if (null == secureDevice.Manufacturer_UniqueIdentifier) deviceDescription.ManufacturerID = "urn:uid:" + Guid.Empty; else deviceDescription.ManufacturerID = "urn:uid:" + secureDevice.Manufacturer_UniqueIdentifier.ToString(); deviceDescription.ManufacturerName = secureDevice.Manufacturer; deviceDescription.ModelNumber = secureDevice.Model; deviceDescription.VersionInfo = new versionInfoListType(); deviceDescription.VersionInfo.Items = new string[versionInformation.Count * 2]; deviceDescription.VersionInfo.ItemsElementName = new ItemsChoiceType[versionInformation.Count * 2]; int indexVersion = 0; foreach (versionInfoListType versionInfo in versionInformation) { deviceDescription.VersionInfo.Items[indexVersion] = versionInfo.Items[0]; deviceDescription.VersionInfo.ItemsElementName[indexVersion] = versionInfo.ItemsElementName[0]; deviceDescription.VersionInfo.Items[indexVersion + 1] = versionInfo.Items[1]; deviceDescription.VersionInfo.ItemsElementName[indexVersion + 1] = versionInfo.ItemsElementName[1]; indexVersion += 2; } return deviceDescription; }
private static CombinedType BuildSecurityDeviceCombinedType(flm_GetFacilitySecureEquipmentResult secureDevice, ArrayList versionInformation, X509Certificate2 deviceCertificate) { CombinedType securityDevice = new CombinedType(); securityDevice.KeyInfo = new www.w3.org.dsig.KeyInfoType(); securityDevice.KeyInfo.ItemsElementName = new www.w3.org.dsig.ItemsChoiceType3[2]; securityDevice.KeyInfo.ItemsElementName[0] = www.w3.org.dsig.ItemsChoiceType3.KeyName; securityDevice.KeyInfo.ItemsElementName[1] = www.w3.org.dsig.ItemsChoiceType3.X509Data; securityDevice.KeyInfo.Items = new object[2]; securityDevice.KeyInfo.Items[0] = deviceCertificate.GetNameInfo(X509NameType.SimpleName, false); www.w3.org.dsig.X509DataType x509Data = new www.w3.org.dsig.X509DataType(); x509Data.ItemsElementName = new www.w3.org.dsig.ItemsChoiceType1[1]; x509Data.ItemsElementName[0] = www.w3.org.dsig.ItemsChoiceType1.X509Certificate; x509Data.Items = new object[1]; x509Data.Items[0] = deviceCertificate.RawData; securityDevice.KeyInfo.Items[1] = x509Data; securityDevice.DeviceDescription = new deviceDescriptionType(); securityDevice.DeviceDescription.DeviceIdentifier = new deviceIdentifierPolyType(); securityDevice.DeviceDescription.DeviceIdentifier.idtype = new deviceIdentifierPolyTypeIdtype(); securityDevice.DeviceDescription.DeviceIdentifier.idtype = deviceIdentifierPolyTypeIdtype.DeviceUID; if (null == secureDevice.UniqueIdentifier) securityDevice.DeviceDescription.DeviceIdentifier.Value = "urn:uid:" + Guid.Empty; else securityDevice.DeviceDescription.DeviceIdentifier.Value = "urn:uid:" + secureDevice.UniqueIdentifier.ToString(); securityDevice.DeviceDescription.DeviceTypeID = new deviceTypeType(); securityDevice.DeviceDescription.DeviceTypeID.scope = "http://www.dcipllc.com/schemas/430-7/2009/FLM#deviceTypes"; if (null == secureDevice.FLM_DeviceType) securityDevice.DeviceDescription.DeviceTypeID.Value = "Other"; else securityDevice.DeviceDescription.DeviceTypeID.Value = secureDevice.FLM_DeviceType; securityDevice.DeviceDescription.DeviceSerial = secureDevice.Serial_Number; if (null == secureDevice.Manufacturer_UniqueIdentifier) securityDevice.DeviceDescription.ManufacturerID = "urn:uid:" + Guid.Empty; else securityDevice.DeviceDescription.ManufacturerID = "urn:uid:" + secureDevice.Manufacturer_UniqueIdentifier.ToString(); securityDevice.DeviceDescription.ManufacturerName = secureDevice.Manufacturer; securityDevice.DeviceDescription.ModelNumber = secureDevice.Model; securityDevice.DeviceDescription.VersionInfo = new versionInfoListType(); securityDevice.DeviceDescription.VersionInfo.Items = new string[versionInformation.Count * 2]; securityDevice.DeviceDescription.VersionInfo.ItemsElementName = new ItemsChoiceType[versionInformation.Count * 2]; int indexVersion = 0; foreach (versionInfoListType versionInfo in versionInformation) { securityDevice.DeviceDescription.VersionInfo.Items[indexVersion] = versionInfo.Items[0]; securityDevice.DeviceDescription.VersionInfo.ItemsElementName[indexVersion] = versionInfo.ItemsElementName[0]; securityDevice.DeviceDescription.VersionInfo.Items[indexVersion + 1] = versionInfo.Items[1]; securityDevice.DeviceDescription.VersionInfo.ItemsElementName[indexVersion + 1] = versionInfo.ItemsElementName[1]; indexVersion += 2; } return securityDevice; }
private static bool AddInfoType(ArrayList versionInformation, flm_GetFacilitySecureEquipmentResult secureDevice) { bool ValidVersionInfo = false; if ((null != secureDevice.Equipment_Attribute_Name) && // make sure the attribute is complete (secureDevice.Equipment_Attribute_Name.Length > 0) && (null != secureDevice.Attribute_Value) && (secureDevice.Attribute_Value.Length > 0)) { if ((secureDevice.Equipment_Attribute_Name == "Hardware_Version") || // make sure it something we want (secureDevice.Equipment_Attribute_Name == "Software_Version") || (secureDevice.Equipment_Attribute_Name == "Firmware_Version")) { versionInfoListType infoType = new versionInfoListType(); infoType.ItemsElementName = new ItemsChoiceType[2]; infoType.ItemsElementName[0] = ItemsChoiceType.Name; infoType.ItemsElementName[1] = ItemsChoiceType.Value; infoType.Items = new string[2]; infoType.Items[0] = secureDevice.Equipment_Attribute_Name; infoType.Items[1] = secureDevice.Attribute_Value; ValidVersionInfo = true; versionInformation.Add(infoType); } } return ValidVersionInfo; }