Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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;
        }