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); }