public static void SetPassword(CT_SheetProtection xobj, String password, HashAlgorithm hashAlgo, String prefix) { if (password == null) { xobj.password = null; xobj.algorithmName = null; xobj.hashValue = null; xobj.saltValue = null; xobj.spinCount = null; return; } if (hashAlgo == null) { int hash = CryptoFunctions.CreateXorVerifier1(password); xobj.password = String.Format("{0:X4}", hash).ToUpper(); } else { SecureRandom random = new SecureRandom(); byte[] salt = random.GenerateSeed(16); int spinCount = 100000; byte[] hash = CryptoFunctions.HashPassword(password, hashAlgo, salt, spinCount, false); xobj.algorithmName = hashAlgo.jceId; xobj.hashValue = Convert.ToBase64String(hash); xobj.saltValue = Convert.ToBase64String(salt); xobj.spinCount = "" + spinCount; } }
public static bool ValidatePassword(CT_SheetProtection xobj, String password, String prefix) { if (password == null) { return(false); } string xorHashVal = xobj.password; string algoName = xobj.algorithmName; string hashVal = xobj.hashValue; string saltVal = xobj.saltValue; string spinCount = xobj.spinCount; if (xorHashVal != null) { int hash1 = Int32.Parse(xorHashVal, NumberStyles.HexNumber); int hash2 = CryptoFunctions.CreateXorVerifier1(password); return(hash1 == hash2); } else { if (hashVal == null || algoName == null || saltVal == null || spinCount == null) { return(false); } byte[] hash1 = Convert.FromBase64String(hashVal); HashAlgorithm hashAlgo = HashAlgorithm.FromString(algoName); byte[] salt = Convert.FromBase64String(saltVal); int spinCnt = Int32.Parse(spinCount); byte[] hash2 = CryptoFunctions.HashPassword(password, hashAlgo, salt, spinCnt, false); return(Arrays.Equals(hash1, hash2)); } }
public void UnsetSheetProtection() { this.sheetProtectionField = null; }
public CT_SheetProtection AddNewSheetProtection() { this.sheetProtectionField = new CT_SheetProtection(); return(this.sheetProtectionField); }
public static CT_Worksheet Parse(XmlNode node, XmlNamespaceManager namespaceManager) { if (node == null) { return(null); } CT_Worksheet ctObj = new CT_Worksheet(); ctObj.cols = new List <CT_Cols>(); ctObj.conditionalFormatting = new List <CT_ConditionalFormatting>(); foreach (XmlNode childNode in node.ChildNodes) { if (childNode.LocalName == "sheetPr") { ctObj.sheetPr = CT_SheetPr.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "dimension") { ctObj.dimension = CT_SheetDimension.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "sheetViews") { ctObj.sheetViews = CT_SheetViews.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "sheetFormatPr") { ctObj.sheetFormatPr = CT_SheetFormatPr.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "sheetData") { ctObj.sheetData = CT_SheetData.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "sheetCalcPr") { ctObj.sheetCalcPr = CT_SheetCalcPr.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "sheetProtection") { ctObj.sheetProtection = CT_SheetProtection.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "protectedRanges") { ctObj.protectedRanges = CT_ProtectedRanges.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "scenarios") { ctObj.scenarios = CT_Scenarios.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "autoFilter") { ctObj.autoFilter = CT_AutoFilter.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "sortState") { ctObj.sortState = CT_SortState.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "dataConsolidate") { ctObj.dataConsolidate = CT_DataConsolidate.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "customSheetViews") { ctObj.customSheetViews = CT_CustomSheetViews.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "mergeCells") { ctObj.mergeCells = CT_MergeCells.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "phoneticPr") { ctObj.phoneticPr = CT_PhoneticPr.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "dataValidations") { ctObj.dataValidations = CT_DataValidations.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "hyperlinks") { ctObj.hyperlinks = CT_Hyperlinks.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "printOptions") { ctObj.printOptions = CT_PrintOptions.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "pageMargins") { ctObj.pageMargins = CT_PageMargins.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "pageSetup") { ctObj.pageSetup = CT_PageSetup.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "headerFooter") { ctObj.headerFooter = CT_HeaderFooter.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "rowBreaks") { ctObj.rowBreaks = CT_PageBreak.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "colBreaks") { ctObj.colBreaks = CT_PageBreak.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "customProperties") { ctObj.customProperties = CT_CustomProperties.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "cellWatches") { ctObj.cellWatches = CT_CellWatches.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "ignoredErrors") { ctObj.ignoredErrors = CT_IgnoredErrors.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "smartTags") { ctObj.smartTags = CT_CellSmartTags.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "drawing") { ctObj.drawing = CT_Drawing.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "legacyDrawing") { ctObj.legacyDrawing = CT_LegacyDrawing.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "legacyDrawingHF") { ctObj.legacyDrawingHF = CT_LegacyDrawing.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "picture") { ctObj.picture = CT_SheetBackgroundPicture.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "oleObjects") { ctObj.oleObjects = CT_OleObjects.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "controls") { ctObj.controls = CT_Controls.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "webPublishItems") { ctObj.webPublishItems = CT_WebPublishItems.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "tableParts") { ctObj.tableParts = CT_TableParts.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "extLst") { ctObj.extLst = CT_ExtensionList.Parse(childNode, namespaceManager); } else if (childNode.LocalName == "cols") { ctObj.cols.Add(CT_Cols.Parse(childNode, namespaceManager)); } else if (childNode.LocalName == "conditionalFormatting") { ctObj.conditionalFormatting.Add(CT_ConditionalFormatting.Parse(childNode, namespaceManager)); } } return(ctObj); }