private static IArchive CreateExtractor(string filename, string password) { try { var extractor = SharpCompressExtension.Open(filename, password); if (extractor.HasAnyEncryptedFiles()) { throw new PasswordException(password == null ? ToolsStrings.ArchiveInstallator_PasswordIsRequired : ToolsStrings.ArchiveInstallator_PasswordIsInvalid); } return(extractor); } catch (CryptographicException) { throw new PasswordException(password == null ? ToolsStrings.ArchiveInstallator_PasswordIsRequired : ToolsStrings.ArchiveInstallator_PasswordIsInvalid); } }