Exemplo n.º 1
0
        public static Exception AddCertificateBasedKeyProtectors(ManagementObject encryptableVolume, out int returnValueCertificate)
        {
            int returnValue = -1;

            returnValueCertificate = -1;
            Exception result = null;
            ArrayList bitlockerCertThumbPrints = BitlockerUtil.GetBitlockerCertThumbPrints(out result);

            if (bitlockerCertThumbPrints == null)
            {
                return(new BitlockerCertificatesNotFoundException());
            }
            using (IEnumerator enumerator = bitlockerCertThumbPrints.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    string bitlockerCertThumbPrint = (string)enumerator.Current;
                    result = Util.HandleExceptions(delegate
                    {
                        ManagementBaseObject managementBaseObject = null;
                        returnValue = WMIUtil.CallWMIMethod(encryptableVolume, "ProtectKeyWithCertificateThumbprint", new string[]
                        {
                            "FriendlyName",
                            "CertThumbprint"
                        }, new object[]
                        {
                            bitlockerCertThumbPrint,
                            bitlockerCertThumbPrint
                        }, out managementBaseObject);
                    });
                }
            }
            returnValueCertificate = returnValue;
            return(result);
        }