SEBWIN-358: Integrated browser exam key and configuration key computation in legacy configuration tool.

This commit is contained in:
dbuechel 2020-02-19 14:30:39 +01:00
parent 6e560e1a3e
commit 1a840ffac5
5 changed files with 1141 additions and 1617 deletions

View file

@ -20,10 +20,10 @@ namespace SafeExamBrowser.Configuration.ConfigurationData
{ {
internal void Process(IDictionary<string, object> rawData, AppSettings settings) internal void Process(IDictionary<string, object> rawData, AppSettings settings)
{ {
CalculateHashValue(rawData, settings); CalculateConfigurationKey(rawData, settings);
} }
private void CalculateHashValue(IDictionary<string, object> rawData, AppSettings settings) private void CalculateConfigurationKey(IDictionary<string, object> rawData, AppSettings settings)
{ {
using (var algorithm = new SHA256Managed()) using (var algorithm = new SHA256Managed())
using (var stream = new MemoryStream()) using (var stream = new MemoryStream())

View file

@ -73,6 +73,8 @@ namespace SebWindowsConfig
this.checkBoxInsideSebEnableEaseOfAccess = new System.Windows.Forms.CheckBox(); this.checkBoxInsideSebEnableEaseOfAccess = new System.Windows.Forms.CheckBox();
this.checkBoxInsideSebEnableVmWareClientShade = new System.Windows.Forms.CheckBox(); this.checkBoxInsideSebEnableVmWareClientShade = new System.Windows.Forms.CheckBox();
this.tabPageSecurity = new System.Windows.Forms.TabPage(); this.tabPageSecurity = new System.Windows.Forms.TabPage();
this.checkBoxShowLogButton = new System.Windows.Forms.CheckBox();
this.checkBoxAllowLogAccess = new System.Windows.Forms.CheckBox();
this.checkBoxEnablePrivateClipboard = new System.Windows.Forms.CheckBox(); this.checkBoxEnablePrivateClipboard = new System.Windows.Forms.CheckBox();
this.checkBoxAllowScreenSharing = new System.Windows.Forms.CheckBox(); this.checkBoxAllowScreenSharing = new System.Windows.Forms.CheckBox();
this.groupBox1 = new System.Windows.Forms.GroupBox(); this.groupBox1 = new System.Windows.Forms.GroupBox();
@ -221,6 +223,10 @@ namespace SebWindowsConfig
this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.checkBoxMonitorProcesses = new System.Windows.Forms.CheckBox(); this.checkBoxMonitorProcesses = new System.Windows.Forms.CheckBox();
this.tabPageExam = new System.Windows.Forms.TabPage(); this.tabPageExam = new System.Windows.Forms.TabPage();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.label15 = new System.Windows.Forms.Label();
this.checkBoxClearSessionOnEnd = new System.Windows.Forms.CheckBox();
this.checkBoxClearSessionOnStart = new System.Windows.Forms.CheckBox();
this.groupBox9 = new System.Windows.Forms.GroupBox(); this.groupBox9 = new System.Windows.Forms.GroupBox();
this.checkBoxUseStartURL = new System.Windows.Forms.CheckBox(); this.checkBoxUseStartURL = new System.Windows.Forms.CheckBox();
this.textBoxRestartExamLink = new System.Windows.Forms.TextBox(); this.textBoxRestartExamLink = new System.Windows.Forms.TextBox();
@ -233,7 +239,10 @@ namespace SebWindowsConfig
this.textBoxQuitURL = new System.Windows.Forms.TextBox(); this.textBoxQuitURL = new System.Windows.Forms.TextBox();
this.textBox1 = new System.Windows.Forms.TextBox(); this.textBox1 = new System.Windows.Forms.TextBox();
this.groupBox7 = new System.Windows.Forms.GroupBox(); this.groupBox7 = new System.Windows.Forms.GroupBox();
this.textBox2 = new System.Windows.Forms.TextBox(); this.label18 = new System.Windows.Forms.Label();
this.label17 = new System.Windows.Forms.Label();
this.label16 = new System.Windows.Forms.Label();
this.textBoxConfigurationKey = new System.Windows.Forms.TextBox();
this.checkBoxSendBrowserExamKey = new System.Windows.Forms.CheckBox(); this.checkBoxSendBrowserExamKey = new System.Windows.Forms.CheckBox();
this.textBoxBrowserExamKey = new System.Windows.Forms.TextBox(); this.textBoxBrowserExamKey = new System.Windows.Forms.TextBox();
this.labelBrowserExamKey = new System.Windows.Forms.Label(); this.labelBrowserExamKey = new System.Windows.Forms.Label();
@ -317,10 +326,13 @@ namespace SebWindowsConfig
this.checkBoxSetVolumeLevel = new System.Windows.Forms.CheckBox(); this.checkBoxSetVolumeLevel = new System.Windows.Forms.CheckBox();
this.checkBoxMuteAudio = new System.Windows.Forms.CheckBox(); this.checkBoxMuteAudio = new System.Windows.Forms.CheckBox();
this.groupBox6 = new System.Windows.Forms.GroupBox(); this.groupBox6 = new System.Windows.Forms.GroupBox();
this.checkBoxAllowAdditionalWindowAddressBar = new System.Windows.Forms.CheckBox();
this.checkBoxAllowMainWindowAddressBar = new System.Windows.Forms.CheckBox();
this.checkBoxEnableBrowserWindowToolbar = new System.Windows.Forms.CheckBox(); this.checkBoxEnableBrowserWindowToolbar = new System.Windows.Forms.CheckBox();
this.checkBoxHideBrowserWindowToolbar = new System.Windows.Forms.CheckBox(); this.checkBoxHideBrowserWindowToolbar = new System.Windows.Forms.CheckBox();
this.checkBoxShowMenuBar = new System.Windows.Forms.CheckBox(); this.checkBoxShowMenuBar = new System.Windows.Forms.CheckBox();
this.groupBox5 = new System.Windows.Forms.GroupBox(); this.groupBox5 = new System.Windows.Forms.GroupBox();
this.checkBoxShowSideMenu = new System.Windows.Forms.CheckBox();
this.checkBoxShowTaskBar = new System.Windows.Forms.CheckBox(); this.checkBoxShowTaskBar = new System.Windows.Forms.CheckBox();
this.checkboxAllowWlan = new System.Windows.Forms.CheckBox(); this.checkboxAllowWlan = new System.Windows.Forms.CheckBox();
this.comboBoxTaskBarHeight = new System.Windows.Forms.ComboBox(); this.comboBoxTaskBarHeight = new System.Windows.Forms.ComboBox();
@ -417,15 +429,8 @@ namespace SebWindowsConfig
this.editDuplicateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.editDuplicateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.configureClientToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.configureClientToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.applyAndStartSEBToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.applyAndStartSEBToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.groupBox2 = new System.Windows.Forms.GroupBox(); this.label19 = new System.Windows.Forms.Label();
this.checkBoxClearSessionOnStart = new System.Windows.Forms.CheckBox(); this.label20 = new System.Windows.Forms.Label();
this.checkBoxClearSessionOnEnd = new System.Windows.Forms.CheckBox();
this.label15 = new System.Windows.Forms.Label();
this.checkBoxAllowMainWindowAddressBar = new System.Windows.Forms.CheckBox();
this.checkBoxAllowAdditionalWindowAddressBar = new System.Windows.Forms.CheckBox();
this.checkBoxShowSideMenu = new System.Windows.Forms.CheckBox();
this.checkBoxAllowLogAccess = new System.Windows.Forms.CheckBox();
this.checkBoxShowLogButton = new System.Windows.Forms.CheckBox();
this.tabPageHookedKeys.SuspendLayout(); this.tabPageHookedKeys.SuspendLayout();
this.groupBoxFunctionKeys.SuspendLayout(); this.groupBoxFunctionKeys.SuspendLayout();
this.groupBoxSpecialKeys.SuspendLayout(); this.groupBoxSpecialKeys.SuspendLayout();
@ -452,6 +457,7 @@ namespace SebWindowsConfig
this.groupBoxProhibitedProcess.SuspendLayout(); this.groupBoxProhibitedProcess.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridViewProhibitedProcesses)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dataGridViewProhibitedProcesses)).BeginInit();
this.tabPageExam.SuspendLayout(); this.tabPageExam.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox9.SuspendLayout(); this.groupBox9.SuspendLayout();
this.groupBox8.SuspendLayout(); this.groupBox8.SuspendLayout();
this.groupBox7.SuspendLayout(); this.groupBox7.SuspendLayout();
@ -478,7 +484,6 @@ namespace SebWindowsConfig
this.groupBoxExitSequence.SuspendLayout(); this.groupBoxExitSequence.SuspendLayout();
this.tabControlSebWindowsConfig.SuspendLayout(); this.tabControlSebWindowsConfig.SuspendLayout();
this.menuStrip1.SuspendLayout(); this.menuStrip1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// openFileDialogSebConfigFile // openFileDialogSebConfigFile
@ -1050,6 +1055,28 @@ namespace SebWindowsConfig
this.tabPageSecurity.Text = "Security"; this.tabPageSecurity.Text = "Security";
this.tabPageSecurity.UseVisualStyleBackColor = true; this.tabPageSecurity.UseVisualStyleBackColor = true;
// //
// checkBoxShowLogButton
//
this.checkBoxShowLogButton.AutoSize = true;
this.checkBoxShowLogButton.Location = new System.Drawing.Point(80, 287);
this.checkBoxShowLogButton.Name = "checkBoxShowLogButton";
this.checkBoxShowLogButton.Size = new System.Drawing.Size(264, 24);
this.checkBoxShowLogButton.TabIndex = 100;
this.checkBoxShowLogButton.Text = "Show log button in taskbar (Win)";
this.checkBoxShowLogButton.UseVisualStyleBackColor = true;
this.checkBoxShowLogButton.CheckedChanged += new System.EventHandler(this.checkBoxShowLogButton_CheckedChanged);
//
// checkBoxAllowLogAccess
//
this.checkBoxAllowLogAccess.AutoSize = true;
this.checkBoxAllowLogAccess.Location = new System.Drawing.Point(34, 257);
this.checkBoxAllowLogAccess.Name = "checkBoxAllowLogAccess";
this.checkBoxAllowLogAccess.Size = new System.Drawing.Size(290, 24);
this.checkBoxAllowLogAccess.TabIndex = 99;
this.checkBoxAllowLogAccess.Text = "Allow access to application log (Win)";
this.checkBoxAllowLogAccess.UseVisualStyleBackColor = true;
this.checkBoxAllowLogAccess.CheckedChanged += new System.EventHandler(this.checkBoxAllowLogAccess_CheckedChanged);
//
// checkBoxEnablePrivateClipboard // checkBoxEnablePrivateClipboard
// //
this.checkBoxEnablePrivateClipboard.AutoSize = true; this.checkBoxEnablePrivateClipboard.AutoSize = true;
@ -2886,6 +2913,49 @@ namespace SebWindowsConfig
this.tabPageExam.Text = " Exam"; this.tabPageExam.Text = " Exam";
this.tabPageExam.UseVisualStyleBackColor = true; this.tabPageExam.UseVisualStyleBackColor = true;
// //
// groupBox2
//
this.groupBox2.Controls.Add(this.label15);
this.groupBox2.Controls.Add(this.checkBoxClearSessionOnEnd);
this.groupBox2.Controls.Add(this.checkBoxClearSessionOnStart);
this.groupBox2.Location = new System.Drawing.Point(907, 23);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(832, 182);
this.groupBox2.TabIndex = 122;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Session Handling";
//
// label15
//
this.label15.Location = new System.Drawing.Point(18, 35);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(792, 56);
this.label15.TabIndex = 2;
this.label15.Text = "Use the following parameters to control whether a browser session is persisted on" +
" disk, e.g. to keep users logged in after a reconfiguration.";
//
// checkBoxClearSessionOnEnd
//
this.checkBoxClearSessionOnEnd.AutoSize = true;
this.checkBoxClearSessionOnEnd.Location = new System.Drawing.Point(22, 135);
this.checkBoxClearSessionOnEnd.Name = "checkBoxClearSessionOnEnd";
this.checkBoxClearSessionOnEnd.Size = new System.Drawing.Size(486, 24);
this.checkBoxClearSessionOnEnd.TabIndex = 1;
this.checkBoxClearSessionOnEnd.Text = "Clear browser session when ending an exam or terminating SEB";
this.checkBoxClearSessionOnEnd.UseVisualStyleBackColor = true;
this.checkBoxClearSessionOnEnd.CheckedChanged += new System.EventHandler(this.checkBoxClearSessionOnEnd_CheckedChanged);
//
// checkBoxClearSessionOnStart
//
this.checkBoxClearSessionOnStart.AutoSize = true;
this.checkBoxClearSessionOnStart.Location = new System.Drawing.Point(22, 94);
this.checkBoxClearSessionOnStart.Name = "checkBoxClearSessionOnStart";
this.checkBoxClearSessionOnStart.Size = new System.Drawing.Size(465, 24);
this.checkBoxClearSessionOnStart.TabIndex = 0;
this.checkBoxClearSessionOnStart.Text = "Clear browser session when starting an exam or starting SEB";
this.checkBoxClearSessionOnStart.UseVisualStyleBackColor = true;
this.checkBoxClearSessionOnStart.CheckedChanged += new System.EventHandler(this.checkBoxClearSessionOnStart_CheckedChanged);
//
// groupBox9 // groupBox9
// //
this.groupBox9.Controls.Add(this.checkBoxUseStartURL); this.groupBox9.Controls.Add(this.checkBoxUseStartURL);
@ -2894,7 +2964,7 @@ namespace SebWindowsConfig
this.groupBox9.Controls.Add(this.textBoxRestartExamText); this.groupBox9.Controls.Add(this.textBoxRestartExamText);
this.groupBox9.Controls.Add(this.textBox4); this.groupBox9.Controls.Add(this.textBox4);
this.groupBox9.Controls.Add(this.textBox3); this.groupBox9.Controls.Add(this.textBox3);
this.groupBox9.Location = new System.Drawing.Point(36, 428); this.groupBox9.Location = new System.Drawing.Point(907, 442);
this.groupBox9.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.groupBox9.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.groupBox9.Name = "groupBox9"; this.groupBox9.Name = "groupBox9";
this.groupBox9.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); this.groupBox9.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5);
@ -2990,7 +3060,7 @@ namespace SebWindowsConfig
this.groupBox8.Controls.Add(this.checkBoxQuitURLConfirm); this.groupBox8.Controls.Add(this.checkBoxQuitURLConfirm);
this.groupBox8.Controls.Add(this.textBoxQuitURL); this.groupBox8.Controls.Add(this.textBoxQuitURL);
this.groupBox8.Controls.Add(this.textBox1); this.groupBox8.Controls.Add(this.textBox1);
this.groupBox8.Location = new System.Drawing.Point(36, 226); this.groupBox8.Location = new System.Drawing.Point(907, 231);
this.groupBox8.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.groupBox8.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.groupBox8.Name = "groupBox8"; this.groupBox8.Name = "groupBox8";
this.groupBox8.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); this.groupBox8.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5);
@ -3044,44 +3114,69 @@ namespace SebWindowsConfig
// //
// groupBox7 // groupBox7
// //
this.groupBox7.Controls.Add(this.textBox2); this.groupBox7.Controls.Add(this.label20);
this.groupBox7.Controls.Add(this.label19);
this.groupBox7.Controls.Add(this.label18);
this.groupBox7.Controls.Add(this.label17);
this.groupBox7.Controls.Add(this.label16);
this.groupBox7.Controls.Add(this.textBoxConfigurationKey);
this.groupBox7.Controls.Add(this.checkBoxSendBrowserExamKey); this.groupBox7.Controls.Add(this.checkBoxSendBrowserExamKey);
this.groupBox7.Controls.Add(this.textBoxBrowserExamKey); this.groupBox7.Controls.Add(this.textBoxBrowserExamKey);
this.groupBox7.Location = new System.Drawing.Point(36, 25); this.groupBox7.Location = new System.Drawing.Point(36, 25);
this.groupBox7.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.groupBox7.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.groupBox7.Name = "groupBox7"; this.groupBox7.Name = "groupBox7";
this.groupBox7.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); this.groupBox7.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.groupBox7.Size = new System.Drawing.Size(832, 180); this.groupBox7.Size = new System.Drawing.Size(832, 583);
this.groupBox7.TabIndex = 119; this.groupBox7.TabIndex = 119;
this.groupBox7.TabStop = false; this.groupBox7.TabStop = false;
this.groupBox7.Text = "Browser Exam Key (valid only for the saved state of the current file)"; this.groupBox7.Text = "Browser Exam Key / Configuration Key";
// //
// textBox2 // label18
// //
this.textBox2.BackColor = System.Drawing.SystemColors.Window; this.label18.Location = new System.Drawing.Point(18, 278);
this.textBox2.BorderStyle = System.Windows.Forms.BorderStyle.None; this.label18.Name = "label18";
this.textBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label18.Size = new System.Drawing.Size(791, 67);
this.textBox2.Location = new System.Drawing.Point(22, 114); this.label18.TabIndex = 117;
this.textBox2.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.label18.Text = resources.GetString("label18.Text");
this.textBox2.Multiline = true; //
this.textBox2.Name = "textBox2"; // label17
this.textBox2.ReadOnly = true; //
this.textBox2.Size = new System.Drawing.Size(711, 46); this.label17.AutoSize = true;
this.textBox2.TabIndex = 114; this.label17.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBox2.Text = "Copy this key (which depends on your SEB configuration) to the according field in" + this.label17.Location = new System.Drawing.Point(18, 417);
" your quiz settings in the exam system having support for SEB 2.0 or later built" + this.label17.Name = "label17";
" in."; this.label17.Size = new System.Drawing.Size(151, 20);
this.label17.TabIndex = 116;
this.label17.Text = "Configuration Key";
//
// label16
//
this.label16.AutoSize = true;
this.label16.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label16.Location = new System.Drawing.Point(18, 250);
this.label16.Name = "label16";
this.label16.Size = new System.Drawing.Size(157, 20);
this.label16.TabIndex = 116;
this.label16.Text = "Browser Exam Key";
//
// textBoxConfigurationKey
//
this.textBoxConfigurationKey.Location = new System.Drawing.Point(22, 522);
this.textBoxConfigurationKey.Name = "textBoxConfigurationKey";
this.textBoxConfigurationKey.ReadOnly = true;
this.textBoxConfigurationKey.Size = new System.Drawing.Size(787, 26);
this.textBoxConfigurationKey.TabIndex = 115;
// //
// checkBoxSendBrowserExamKey // checkBoxSendBrowserExamKey
// //
this.checkBoxSendBrowserExamKey.AutoSize = true; this.checkBoxSendBrowserExamKey.AutoSize = true;
this.checkBoxSendBrowserExamKey.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.checkBoxSendBrowserExamKey.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBoxSendBrowserExamKey.Location = new System.Drawing.Point(22, 32); this.checkBoxSendBrowserExamKey.Location = new System.Drawing.Point(22, 196);
this.checkBoxSendBrowserExamKey.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.checkBoxSendBrowserExamKey.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.checkBoxSendBrowserExamKey.Name = "checkBoxSendBrowserExamKey"; this.checkBoxSendBrowserExamKey.Name = "checkBoxSendBrowserExamKey";
this.checkBoxSendBrowserExamKey.Size = new System.Drawing.Size(363, 24); this.checkBoxSendBrowserExamKey.Size = new System.Drawing.Size(360, 24);
this.checkBoxSendBrowserExamKey.TabIndex = 2; this.checkBoxSendBrowserExamKey.TabIndex = 2;
this.checkBoxSendBrowserExamKey.Text = "Use Browser Exam Key (send in HTTP header)"; this.checkBoxSendBrowserExamKey.Text = "Use Browser Exam Key and Configuration Key";
this.toolTip1.SetToolTip(this.checkBoxSendBrowserExamKey, "Send Browser Exam Key in an HTTP header to authenticate the SEB client and its se" + this.toolTip1.SetToolTip(this.checkBoxSendBrowserExamKey, "Send Browser Exam Key in an HTTP header to authenticate the SEB client and its se" +
"ttings to a compatible exam system."); "ttings to a compatible exam system.");
this.checkBoxSendBrowserExamKey.UseVisualStyleBackColor = true; this.checkBoxSendBrowserExamKey.UseVisualStyleBackColor = true;
@ -3089,9 +3184,10 @@ namespace SebWindowsConfig
// //
// textBoxBrowserExamKey // textBoxBrowserExamKey
// //
this.textBoxBrowserExamKey.Location = new System.Drawing.Point(22, 72); this.textBoxBrowserExamKey.Location = new System.Drawing.Point(22, 351);
this.textBoxBrowserExamKey.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.textBoxBrowserExamKey.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.textBoxBrowserExamKey.Name = "textBoxBrowserExamKey"; this.textBoxBrowserExamKey.Name = "textBoxBrowserExamKey";
this.textBoxBrowserExamKey.ReadOnly = true;
this.textBoxBrowserExamKey.Size = new System.Drawing.Size(787, 26); this.textBoxBrowserExamKey.Size = new System.Drawing.Size(787, 26);
this.textBoxBrowserExamKey.TabIndex = 0; this.textBoxBrowserExamKey.TabIndex = 0;
this.textBoxBrowserExamKey.TextChanged += new System.EventHandler(this.textBoxBrowserExamKey_TextChanged); this.textBoxBrowserExamKey.TextChanged += new System.EventHandler(this.textBoxBrowserExamKey_TextChanged);
@ -4182,6 +4278,28 @@ namespace SebWindowsConfig
this.groupBox6.TabStop = false; this.groupBox6.TabStop = false;
this.groupBox6.Text = "Browser Window Toolbar"; this.groupBox6.Text = "Browser Window Toolbar";
// //
// checkBoxAllowAdditionalWindowAddressBar
//
this.checkBoxAllowAdditionalWindowAddressBar.AutoSize = true;
this.checkBoxAllowAdditionalWindowAddressBar.Location = new System.Drawing.Point(44, 89);
this.checkBoxAllowAdditionalWindowAddressBar.Name = "checkBoxAllowAdditionalWindowAddressBar";
this.checkBoxAllowAdditionalWindowAddressBar.Size = new System.Drawing.Size(360, 24);
this.checkBoxAllowAdditionalWindowAddressBar.TabIndex = 6;
this.checkBoxAllowAdditionalWindowAddressBar.Text = "Allow address bar for additional windows (Win)";
this.checkBoxAllowAdditionalWindowAddressBar.UseVisualStyleBackColor = true;
this.checkBoxAllowAdditionalWindowAddressBar.CheckedChanged += new System.EventHandler(this.checkBoxAllowAdditionalWindowAddressBar_CheckedChanged);
//
// checkBoxAllowMainWindowAddressBar
//
this.checkBoxAllowMainWindowAddressBar.AutoSize = true;
this.checkBoxAllowMainWindowAddressBar.Location = new System.Drawing.Point(44, 59);
this.checkBoxAllowMainWindowAddressBar.Name = "checkBoxAllowMainWindowAddressBar";
this.checkBoxAllowMainWindowAddressBar.Size = new System.Drawing.Size(318, 24);
this.checkBoxAllowMainWindowAddressBar.TabIndex = 5;
this.checkBoxAllowMainWindowAddressBar.Text = "Allow address bar for main window (Win)";
this.checkBoxAllowMainWindowAddressBar.UseVisualStyleBackColor = true;
this.checkBoxAllowMainWindowAddressBar.CheckedChanged += new System.EventHandler(this.checkBoxAllowMainWindowAddressBar_CheckedChanged);
//
// checkBoxEnableBrowserWindowToolbar // checkBoxEnableBrowserWindowToolbar
// //
this.checkBoxEnableBrowserWindowToolbar.AutoSize = true; this.checkBoxEnableBrowserWindowToolbar.AutoSize = true;
@ -4243,6 +4361,17 @@ namespace SebWindowsConfig
this.groupBox5.TabStop = false; this.groupBox5.TabStop = false;
this.groupBox5.Text = "Taskbar / Dock / Side Menu"; this.groupBox5.Text = "Taskbar / Dock / Side Menu";
// //
// checkBoxShowSideMenu
//
this.checkBoxShowSideMenu.AutoSize = true;
this.checkBoxShowSideMenu.Location = new System.Drawing.Point(15, 61);
this.checkBoxShowSideMenu.Name = "checkBoxShowSideMenu";
this.checkBoxShowSideMenu.Size = new System.Drawing.Size(152, 24);
this.checkBoxShowSideMenu.TabIndex = 82;
this.checkBoxShowSideMenu.Text = "Show side menu";
this.checkBoxShowSideMenu.UseVisualStyleBackColor = true;
this.checkBoxShowSideMenu.CheckedChanged += new System.EventHandler(this.checkBoxShowSideMenu_CheckedChanged);
//
// checkBoxShowTaskBar // checkBoxShowTaskBar
// //
this.checkBoxShowTaskBar.AutoSize = true; this.checkBoxShowTaskBar.AutoSize = true;
@ -5418,103 +5547,21 @@ namespace SebWindowsConfig
this.applyAndStartSEBToolStripMenuItem.Visible = false; this.applyAndStartSEBToolStripMenuItem.Visible = false;
this.applyAndStartSEBToolStripMenuItem.Click += new System.EventHandler(this.applyAndStartSEBToolStripMenuItem_Click); this.applyAndStartSEBToolStripMenuItem.Click += new System.EventHandler(this.applyAndStartSEBToolStripMenuItem_Click);
// //
// groupBox2 // label19
// //
this.groupBox2.Controls.Add(this.label15); this.label19.Location = new System.Drawing.Point(18, 33);
this.groupBox2.Controls.Add(this.checkBoxClearSessionOnEnd); this.label19.Name = "label19";
this.groupBox2.Controls.Add(this.checkBoxClearSessionOnStart); this.label19.Size = new System.Drawing.Size(791, 148);
this.groupBox2.Location = new System.Drawing.Point(907, 23); this.label19.TabIndex = 118;
this.groupBox2.Name = "groupBox2"; this.label19.Text = resources.GetString("label19.Text");
this.groupBox2.Size = new System.Drawing.Size(832, 182);
this.groupBox2.TabIndex = 122;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Session Handling";
// //
// checkBoxClearSessionOnStart // label20
// //
this.checkBoxClearSessionOnStart.AutoSize = true; this.label20.Location = new System.Drawing.Point(18, 447);
this.checkBoxClearSessionOnStart.Location = new System.Drawing.Point(22, 94); this.label20.Name = "label20";
this.checkBoxClearSessionOnStart.Name = "checkBoxClearSessionOnStart"; this.label20.Size = new System.Drawing.Size(791, 65);
this.checkBoxClearSessionOnStart.Size = new System.Drawing.Size(465, 24); this.label20.TabIndex = 119;
this.checkBoxClearSessionOnStart.TabIndex = 0; this.label20.Text = resources.GetString("label20.Text");
this.checkBoxClearSessionOnStart.Text = "Clear browser session when starting an exam or starting SEB";
this.checkBoxClearSessionOnStart.UseVisualStyleBackColor = true;
this.checkBoxClearSessionOnStart.CheckedChanged += new System.EventHandler(this.checkBoxClearSessionOnStart_CheckedChanged);
//
// checkBoxClearSessionOnEnd
//
this.checkBoxClearSessionOnEnd.AutoSize = true;
this.checkBoxClearSessionOnEnd.Location = new System.Drawing.Point(22, 135);
this.checkBoxClearSessionOnEnd.Name = "checkBoxClearSessionOnEnd";
this.checkBoxClearSessionOnEnd.Size = new System.Drawing.Size(486, 24);
this.checkBoxClearSessionOnEnd.TabIndex = 1;
this.checkBoxClearSessionOnEnd.Text = "Clear browser session when ending an exam or terminating SEB";
this.checkBoxClearSessionOnEnd.UseVisualStyleBackColor = true;
this.checkBoxClearSessionOnEnd.CheckedChanged += new System.EventHandler(this.checkBoxClearSessionOnEnd_CheckedChanged);
//
// label15
//
this.label15.Location = new System.Drawing.Point(18, 35);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(792, 56);
this.label15.TabIndex = 2;
this.label15.Text = "Use the following parameters to control whether a browser session is persisted on" +
" disk, e.g. to keep users logged in after a reconfiguration.";
//
// checkBoxAllowMainWindowAddressBar
//
this.checkBoxAllowMainWindowAddressBar.AutoSize = true;
this.checkBoxAllowMainWindowAddressBar.Location = new System.Drawing.Point(44, 59);
this.checkBoxAllowMainWindowAddressBar.Name = "checkBoxAllowMainWindowAddressBar";
this.checkBoxAllowMainWindowAddressBar.Size = new System.Drawing.Size(318, 24);
this.checkBoxAllowMainWindowAddressBar.TabIndex = 5;
this.checkBoxAllowMainWindowAddressBar.Text = "Allow address bar for main window (Win)";
this.checkBoxAllowMainWindowAddressBar.UseVisualStyleBackColor = true;
this.checkBoxAllowMainWindowAddressBar.CheckedChanged += new System.EventHandler(this.checkBoxAllowMainWindowAddressBar_CheckedChanged);
//
// checkBoxAllowAdditionalWindowAddressBar
//
this.checkBoxAllowAdditionalWindowAddressBar.AutoSize = true;
this.checkBoxAllowAdditionalWindowAddressBar.Location = new System.Drawing.Point(44, 89);
this.checkBoxAllowAdditionalWindowAddressBar.Name = "checkBoxAllowAdditionalWindowAddressBar";
this.checkBoxAllowAdditionalWindowAddressBar.Size = new System.Drawing.Size(360, 24);
this.checkBoxAllowAdditionalWindowAddressBar.TabIndex = 6;
this.checkBoxAllowAdditionalWindowAddressBar.Text = "Allow address bar for additional windows (Win)";
this.checkBoxAllowAdditionalWindowAddressBar.UseVisualStyleBackColor = true;
this.checkBoxAllowAdditionalWindowAddressBar.CheckedChanged += new System.EventHandler(this.checkBoxAllowAdditionalWindowAddressBar_CheckedChanged);
//
// checkBoxShowSideMenu
//
this.checkBoxShowSideMenu.AutoSize = true;
this.checkBoxShowSideMenu.Location = new System.Drawing.Point(15, 61);
this.checkBoxShowSideMenu.Name = "checkBoxShowSideMenu";
this.checkBoxShowSideMenu.Size = new System.Drawing.Size(152, 24);
this.checkBoxShowSideMenu.TabIndex = 82;
this.checkBoxShowSideMenu.Text = "Show side menu";
this.checkBoxShowSideMenu.UseVisualStyleBackColor = true;
this.checkBoxShowSideMenu.CheckedChanged += new System.EventHandler(this.checkBoxShowSideMenu_CheckedChanged);
//
// checkBoxAllowLogAccess
//
this.checkBoxAllowLogAccess.AutoSize = true;
this.checkBoxAllowLogAccess.Location = new System.Drawing.Point(34, 257);
this.checkBoxAllowLogAccess.Name = "checkBoxAllowLogAccess";
this.checkBoxAllowLogAccess.Size = new System.Drawing.Size(290, 24);
this.checkBoxAllowLogAccess.TabIndex = 99;
this.checkBoxAllowLogAccess.Text = "Allow access to application log (Win)";
this.checkBoxAllowLogAccess.UseVisualStyleBackColor = true;
this.checkBoxAllowLogAccess.CheckedChanged += new System.EventHandler(this.checkBoxAllowLogAccess_CheckedChanged);
//
// checkBoxShowLogButton
//
this.checkBoxShowLogButton.AutoSize = true;
this.checkBoxShowLogButton.Location = new System.Drawing.Point(80, 287);
this.checkBoxShowLogButton.Name = "checkBoxShowLogButton";
this.checkBoxShowLogButton.Size = new System.Drawing.Size(264, 24);
this.checkBoxShowLogButton.TabIndex = 100;
this.checkBoxShowLogButton.Text = "Show log button in taskbar (Win)";
this.checkBoxShowLogButton.UseVisualStyleBackColor = true;
this.checkBoxShowLogButton.CheckedChanged += new System.EventHandler(this.checkBoxShowLogButton_CheckedChanged);
// //
// SebWindowsConfigForm // SebWindowsConfigForm
// //
@ -5581,6 +5628,8 @@ namespace SebWindowsConfig
((System.ComponentModel.ISupportInitialize)(this.dataGridViewProhibitedProcesses)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.dataGridViewProhibitedProcesses)).EndInit();
this.tabPageExam.ResumeLayout(false); this.tabPageExam.ResumeLayout(false);
this.tabPageExam.PerformLayout(); this.tabPageExam.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.groupBox9.ResumeLayout(false); this.groupBox9.ResumeLayout(false);
this.groupBox9.PerformLayout(); this.groupBox9.PerformLayout();
this.groupBox8.ResumeLayout(false); this.groupBox8.ResumeLayout(false);
@ -5628,8 +5677,6 @@ namespace SebWindowsConfig
this.tabControlSebWindowsConfig.ResumeLayout(false); this.tabControlSebWindowsConfig.ResumeLayout(false);
this.menuStrip1.ResumeLayout(false); this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout(); this.menuStrip1.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout(); this.PerformLayout();
@ -5858,7 +5905,6 @@ namespace SebWindowsConfig
private System.Windows.Forms.CheckBox checkBoxPermittedProcessStrongKill; private System.Windows.Forms.CheckBox checkBoxPermittedProcessStrongKill;
private System.Windows.Forms.TextBox textBoxIfYourNetworkAdministrator; private System.Windows.Forms.TextBox textBoxIfYourNetworkAdministrator;
private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox textBoxPermittedProcessExecutables; private System.Windows.Forms.TextBox textBoxPermittedProcessExecutables;
@ -6032,6 +6078,12 @@ namespace SebWindowsConfig
private System.Windows.Forms.CheckBox checkBoxShowSideMenu; private System.Windows.Forms.CheckBox checkBoxShowSideMenu;
private System.Windows.Forms.CheckBox checkBoxAllowLogAccess; private System.Windows.Forms.CheckBox checkBoxAllowLogAccess;
private System.Windows.Forms.CheckBox checkBoxShowLogButton; private System.Windows.Forms.CheckBox checkBoxShowLogButton;
private System.Windows.Forms.Label label17;
private System.Windows.Forms.Label label16;
private System.Windows.Forms.TextBox textBoxConfigurationKey;
private System.Windows.Forms.Label label18;
private System.Windows.Forms.Label label19;
private System.Windows.Forms.Label label20;
} }
} }

View file

@ -62,6 +62,7 @@ namespace SebWindowsConfig
lastCryptoIdentityIndex = comboBoxCryptoIdentity.SelectedIndex; lastCryptoIdentityIndex = comboBoxCryptoIdentity.SelectedIndex;
// Display the new Browser Exam Key in Exam pane // Display the new Browser Exam Key in Exam pane
textBoxBrowserExamKey.Text = lastBrowserExamKey; textBoxBrowserExamKey.Text = lastBrowserExamKey;
textBoxConfigurationKey.Text = SEBProtectionController.ComputeConfigurationKey();
} }
} }
@ -122,6 +123,7 @@ namespace SebWindowsConfig
lastCryptoIdentityIndex = comboBoxCryptoIdentity.SelectedIndex; lastCryptoIdentityIndex = comboBoxCryptoIdentity.SelectedIndex;
// Display the new Browser Exam Key in Exam pane // Display the new Browser Exam Key in Exam pane
textBoxBrowserExamKey.Text = lastBrowserExamKey; textBoxBrowserExamKey.Text = lastBrowserExamKey;
textBoxConfigurationKey.Text = SEBProtectionController.ComputeConfigurationKey();
} // end of contructor SebWindowsConfigForm() } // end of contructor SebWindowsConfigForm()
@ -531,6 +533,7 @@ namespace SebWindowsConfig
checkBoxClearSessionOnEnd.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyExamSessionClearCookiesOnEnd]; checkBoxClearSessionOnEnd.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyExamSessionClearCookiesOnEnd];
checkBoxClearSessionOnStart.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyExamSessionClearCookiesOnStart]; checkBoxClearSessionOnStart.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyExamSessionClearCookiesOnStart];
textBoxBrowserExamKey.Enabled = checkBoxSendBrowserExamKey.Checked; textBoxBrowserExamKey.Enabled = checkBoxSendBrowserExamKey.Checked;
textBoxConfigurationKey.Enabled = checkBoxSendBrowserExamKey.Checked;
textBoxQuitURL.Text = (String)SEBSettings.settingsCurrent[SEBSettings.KeyQuitURL]; textBoxQuitURL.Text = (String)SEBSettings.settingsCurrent[SEBSettings.KeyQuitURL];
checkBoxQuitURLConfirm.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyQuitURLConfirm]; checkBoxQuitURLConfirm.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyQuitURLConfirm];
checkBoxUseStartURL.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyRestartExamUseStartURL]; checkBoxUseStartURL.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyRestartExamUseStartURL];
@ -1211,6 +1214,7 @@ namespace SebWindowsConfig
lastCryptoIdentityIndex = comboBoxCryptoIdentity.SelectedIndex; lastCryptoIdentityIndex = comboBoxCryptoIdentity.SelectedIndex;
// Display the new Browser Exam Key in Exam pane // Display the new Browser Exam Key in Exam pane
textBoxBrowserExamKey.Text = lastBrowserExamKey; textBoxBrowserExamKey.Text = lastBrowserExamKey;
textBoxConfigurationKey.Text = SEBProtectionController.ComputeConfigurationKey();
// Reset the path of the last saved file which is used in case "Edit duplicate" was used // Reset the path of the last saved file which is used in case "Edit duplicate" was used
lastPathSebConfigFile = null; lastPathSebConfigFile = null;
} }
@ -1246,6 +1250,7 @@ namespace SebWindowsConfig
lastCryptoIdentityIndex = comboBoxCryptoIdentity.SelectedIndex; lastCryptoIdentityIndex = comboBoxCryptoIdentity.SelectedIndex;
// Display the new Browser Exam Key in Exam pane // Display the new Browser Exam Key in Exam pane
textBoxBrowserExamKey.Text = lastBrowserExamKey; textBoxBrowserExamKey.Text = lastBrowserExamKey;
textBoxConfigurationKey.Text = SEBProtectionController.ComputeConfigurationKey();
// Reset the path of the last saved file which is used in case "Edit duplicate" was used // Reset the path of the last saved file which is used in case "Edit duplicate" was used
lastPathSebConfigFile = null; lastPathSebConfigFile = null;
} }
@ -1303,6 +1308,7 @@ namespace SebWindowsConfig
lastBrowserExamKey = SEBProtectionController.ComputeBrowserExamKey(); lastBrowserExamKey = SEBProtectionController.ComputeBrowserExamKey();
// Display the new Browser Exam Key in Exam pane // Display the new Browser Exam Key in Exam pane
textBoxBrowserExamKey.Text = lastBrowserExamKey; textBoxBrowserExamKey.Text = lastBrowserExamKey;
textBoxConfigurationKey.Text = SEBProtectionController.ComputeConfigurationKey();
// Save the current settings password so it can be used for comparing later if it changed // Save the current settings password so it can be used for comparing later if it changed
lastSettingsPassword = textBoxSettingsPassword.Text; lastSettingsPassword = textBoxSettingsPassword.Text;
// Reset the path of the last saved file which is used in case "Edit duplicate" was used // Reset the path of the last saved file which is used in case "Edit duplicate" was used
@ -1366,6 +1372,7 @@ namespace SebWindowsConfig
lastBrowserExamKey = SEBProtectionController.ComputeBrowserExamKey(); lastBrowserExamKey = SEBProtectionController.ComputeBrowserExamKey();
// Display the new Browser Exam Key in Exam pane // Display the new Browser Exam Key in Exam pane
textBoxBrowserExamKey.Text = lastBrowserExamKey; textBoxBrowserExamKey.Text = lastBrowserExamKey;
textBoxConfigurationKey.Text = SEBProtectionController.ComputeConfigurationKey();
// Save the current settings password so it can be used for comparing later if it changed // Save the current settings password so it can be used for comparing later if it changed
lastSettingsPassword = textBoxSettingsPassword.Text; lastSettingsPassword = textBoxSettingsPassword.Text;
lastCryptoIdentityIndex = comboBoxCryptoIdentity.SelectedIndex; lastCryptoIdentityIndex = comboBoxCryptoIdentity.SelectedIndex;
@ -1414,6 +1421,7 @@ namespace SebWindowsConfig
lastCryptoIdentityIndex = comboBoxCryptoIdentity.SelectedIndex; lastCryptoIdentityIndex = comboBoxCryptoIdentity.SelectedIndex;
// Display the new Browser Exam Key in Exam pane // Display the new Browser Exam Key in Exam pane
textBoxBrowserExamKey.Text = currentBrowserExamKey; textBoxBrowserExamKey.Text = currentBrowserExamKey;
textBoxConfigurationKey.Text = SEBProtectionController.ComputeConfigurationKey();
} }
@ -1457,6 +1465,7 @@ namespace SebWindowsConfig
lastCryptoIdentityIndex = comboBoxCryptoIdentity.SelectedIndex; lastCryptoIdentityIndex = comboBoxCryptoIdentity.SelectedIndex;
// Display the new Browser Exam Key in Exam pane // Display the new Browser Exam Key in Exam pane
textBoxBrowserExamKey.Text = lastBrowserExamKey; textBoxBrowserExamKey.Text = lastBrowserExamKey;
textBoxConfigurationKey.Text = SEBProtectionController.ComputeConfigurationKey();
} }
@ -1484,6 +1493,7 @@ namespace SebWindowsConfig
lastCryptoIdentityIndex = comboBoxCryptoIdentity.SelectedIndex; lastCryptoIdentityIndex = comboBoxCryptoIdentity.SelectedIndex;
// Display the new Browser Exam Key in Exam pane // Display the new Browser Exam Key in Exam pane
textBoxBrowserExamKey.Text = lastBrowserExamKey; textBoxBrowserExamKey.Text = lastBrowserExamKey;
textBoxConfigurationKey.Text = SEBProtectionController.ComputeConfigurationKey();
} }
@ -1594,6 +1604,7 @@ namespace SebWindowsConfig
lastCryptoIdentityIndex = comboBoxCryptoIdentity.SelectedIndex; lastCryptoIdentityIndex = comboBoxCryptoIdentity.SelectedIndex;
// Display the new Browser Exam Key in Exam pane // Display the new Browser Exam Key in Exam pane
textBoxBrowserExamKey.Text = lastBrowserExamKey; textBoxBrowserExamKey.Text = lastBrowserExamKey;
textBoxConfigurationKey.Text = SEBProtectionController.ComputeConfigurationKey();
} }
@ -2309,10 +2320,6 @@ namespace SebWindowsConfig
// ************ // ************
// Group "Exam" // Group "Exam"
// ************ // ************
private void buttonGenerateBrowserExamKey_Click(object sender, EventArgs e)
{
textBoxBrowserExamKey.Text = SEBProtectionController.ComputeBrowserExamKey();
}
private void textBoxBrowserExamKey_TextChanged(object sender, EventArgs e) private void textBoxBrowserExamKey_TextChanged(object sender, EventArgs e)
{ {
@ -2322,6 +2329,7 @@ namespace SebWindowsConfig
{ {
SEBSettings.settingsCurrent[SEBSettings.KeySendBrowserExamKey] = checkBoxSendBrowserExamKey.Checked; SEBSettings.settingsCurrent[SEBSettings.KeySendBrowserExamKey] = checkBoxSendBrowserExamKey.Checked;
textBoxBrowserExamKey.Enabled = checkBoxSendBrowserExamKey.Checked; textBoxBrowserExamKey.Enabled = checkBoxSendBrowserExamKey.Checked;
textBoxConfigurationKey.Enabled = checkBoxSendBrowserExamKey.Checked;
} }
private void textBoxQuitURL_TextChanged(object sender, EventArgs e) private void textBoxQuitURL_TextChanged(object sender, EventArgs e)

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,8 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
@ -188,7 +190,7 @@ namespace SebWindowsConfig.Utilities
result.Add(data.Substring(start)); result.Add(data.Substring(start));
} }
return result; return result;
} }
/// ---------------------------------------------------------------------------------------- /// ----------------------------------------------------------------------------------------
@ -570,105 +572,129 @@ namespace SebWindowsConfig.Utilities
/// ---------------------------------------------------------------------------------------- /// ----------------------------------------------------------------------------------------
public static string ComputeBrowserExamKey() public static string ComputeBrowserExamKey()
{ {
// Serialize preferences dictionary to an XML string var executable = Assembly.GetExecutingAssembly();
string sebXML = Plist.writeXml(SEBSettings.settingsCurrent); var certificate = executable.Modules.First().GetSignerCertificate();
var salt = BitConverter.ToString((byte[])SEBSettings.settingsCurrent[SEBSettings.KeyExamKeySalt]).ToLower().Replace("-", string.Empty);
var signature = certificate?.GetCertHashString();
var version = FileVersionInfo.GetVersionInfo(executable.Location).FileVersion;
var configurationKey = ComputeConfigurationKey();
//Add the Hash of the Executable and of the XulRunnerFiles to the message using (var algorithm = new SHA256Managed())
{
var hash = algorithm.ComputeHash(Encoding.UTF8.GetBytes(salt + signature + version + configurationKey));
var key = BitConverter.ToString(hash).ToLower().Replace("-", string.Empty);
sebXML = String.Format("{0}{1}", sebXML, ComputeSEBComponentsHash()); return key;
}
byte[] message = Encoding.UTF8.GetBytes(sebXML);
byte[] salt = (byte[])SEBSettings.valueForDictionaryKey(SEBSettings.settingsCurrent, SEBSettings.KeyExamKeySalt);
var hash = new HMACSHA256(salt);
byte[] browserExamKey = hash.ComputeHash(message);
string browserExamKeyString = BitConverter.ToString(browserExamKey);
return browserExamKeyString.Replace("-", "").ToLower();
} }
private static string ComputeSEBComponentsHash() /// ----------------------------------------------------------------------------------------
/// <summary>
/// Compute a Configuration Key SHA256 hash base16 string.
/// </summary>
/// ----------------------------------------------------------------------------------------
public static string ComputeConfigurationKey()
{ {
string SEBDirectory = Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath); using (var algorithm = new SHA256Managed())
var fileNames = new List<string> using (var stream = new MemoryStream())
using (var writer = new StreamWriter(stream))
{ {
Path.Combine(SEBDirectory, SEBClientInfo.FILENAME_SEB), Serialize(SEBSettings.settingsCurrent, writer);
Path.Combine(SEBDirectory, SEBClientInfo.FILENAME_SEBCONFIGTOOL),
Path.Combine(SEBDirectory, SEBClientInfo.FILENAME_DLL_FLECK),
Path.Combine(SEBDirectory, SEBClientInfo.FILENAME_DLL_ICONLIB),
Path.Combine(SEBDirectory, SEBClientInfo.FILENAME_DLL_IONICZIP),
Path.Combine(SEBDirectory, SEBClientInfo.FILENAME_DLL_METRO),
Path.Combine(SEBDirectory, SEBClientInfo.FILENAME_DLL_NAUDIO),
Path.Combine(SEBDirectory, SEBClientInfo.FILENAME_DLL_NEWTONSOFTJSON),
Path.Combine(SEBDirectory, SEBClientInfo.FILENAME_DLL_SERVICECONTRACTS),
Path.Combine(SEBDirectory, SEBClientInfo.SEB_SERVICE_DIRECTORY, SEBClientInfo.FILENAME_SEBSERVICE),
Path.Combine(SEBDirectory, SEBClientInfo.SEB_SERVICE_DIRECTORY, SEBClientInfo.FILENAME_DLL_SERVICECONTRACTS),
};
var SEBBrowserDirectory = Path.Combine(SEBDirectory, SEBClientInfo.SEB_BROWSER_DIRECTORY); writer.Flush();
if (Directory.Exists(SEBBrowserDirectory)) stream.Seek(0, SeekOrigin.Begin);
var hash = algorithm.ComputeHash(stream);
var key = BitConverter.ToString(hash).ToLower().Replace("-", string.Empty);
return key;
}
}
private static void Serialize(IDictionary<string, object> dictionary, StreamWriter stream)
{
var orderedByKey = dictionary.OrderBy(d => d.Key, StringComparer.InvariantCulture).ToList();
stream.Write('{');
foreach (var kvp in orderedByKey)
{ {
List<string> browserFiles = new List<string>(Directory.GetFiles(SEBBrowserDirectory, "*.*", SearchOption.AllDirectories)); var process = true;
browserFiles = browserFiles.Where(x => !x.EndsWith(".gitignore") && !x.EndsWith(".DS_Store")).ToList();
browserFiles.Sort(StringComparer.InvariantCulture);
int fileCounter = 0; process &= !kvp.Key.Equals(SEBSettings.KeyOriginatorVersion, StringComparison.OrdinalIgnoreCase);
int pathBrowserDirectoryLength = SEBBrowserDirectory.Length + 1; process &= !(kvp.Value is IDictionary<string, object> d) || d.Any();
var spareFileNames = new List<string>();
foreach (var browserFile in browserFiles) if (process)
{ {
string browserFileWithoutBrowserPath = browserFile.Remove(0, pathBrowserDirectoryLength); stream.Write('"');
string originalBrowserFile = allSEBBrowserFiles[fileCounter]; stream.Write(kvp.Key);
if (!browserFileWithoutBrowserPath.Equals(allSEBBrowserFiles[fileCounter])) stream.Write('"');
stream.Write(':');
Serialize(kvp.Value, stream);
if (kvp.Key != orderedByKey.Last().Key)
{ {
spareFileNames.Add(browserFile); stream.Write(',');
}
else
{
if (fileCounter < allSEBBrowserFiles.Count)
{
fileCounter++;
}
} }
} }
}
if (spareFileNames.Count > 0) stream.Write('}');
}
private static void Serialize(IList<object> list, StreamWriter stream)
{
stream.Write('[');
foreach (var item in list)
{
Serialize(item, stream);
if (item != list.Last())
{ {
Logger.AddInformation(SEBUIStrings.spareBrowserFileNamesFoundText + Environment.NewLine + string.Join(Environment.NewLine, spareFileNames.ToArray())); stream.Write(',');
ShowSpareFilesErrorMessage(spareFileNames);
} }
fileNames.AddRange(browserFiles);
} }
Logger.AddInformation("All SEB files: " + Environment.NewLine + string.Join(Environment.NewLine, fileNames.ToArray())); stream.Write(']');
return ComputeHashForFiles(fileNames);
} }
private static void ShowSpareFilesErrorMessage(List<string> spareFileNames) private static void Serialize(object value, StreamWriter stream)
{ {
MessageBox.Show(SEBUIStrings.spareBrowserFileNamesFound, SEBUIStrings.spareBrowserFileNamesFoundText + Environment.NewLine + string.Join(Environment.NewLine, spareFileNames.ToArray()), MessageBoxButtons.OK, MessageBoxIcon.Error); switch (value)
}
public static string ComputeHashForFiles(IEnumerable<string> fileNames)
{
var bigHash = new StringBuilder();
foreach (string fileName in fileNames)
{ {
bigHash.Append(ComputeFileHash(fileName)); case IDictionary<string, object> dictionary:
} Serialize(dictionary, stream);
var sha = new SHA256Managed(); break;
byte[] hash = sha.ComputeHash(Encoding.UTF8.GetBytes(bigHash.ToString())); case IList<object> list:
return BitConverter.ToString(hash).Replace("-", String.Empty); Serialize(list, stream);
} break;
case byte[] data:
private static string ComputeFileHash(string file) stream.Write('"');
{ stream.Write(Convert.ToBase64String(data));
if (!File.Exists(file)) return null; stream.Write('"');
break;
using (FileStream stream = File.OpenRead(file)) case DateTime date:
{ stream.Write(date.ToString("o"));
var sha = new SHA256Managed(); break;
byte[] hash = sha.ComputeHash(stream); case bool boolean:
return BitConverter.ToString(hash).Replace("-", String.Empty); stream.Write(boolean.ToString().ToLower());
break;
case int integer:
stream.Write(integer.ToString(NumberFormatInfo.InvariantInfo));
break;
case double number:
stream.Write(number.ToString(NumberFormatInfo.InvariantInfo));
break;
case string text:
stream.Write('"');
stream.Write(text);
stream.Write('"');
break;
case null:
stream.Write('"');
stream.Write('"');
break;
} }
} }
@ -684,580 +710,7 @@ namespace SebWindowsConfig.Utilities
//return saltString.Replace("-", ""); //return saltString.Replace("-", "");
return saltBytes; return saltBytes;
} }
}
private static List<string> allSEBBrowserFiles = new List<string> {
"xul_seb\\chrome.manifest",
"xul_seb\\chrome\\branding.jar",
"xul_seb\\chrome\\branding.manifest",
"xul_seb\\chrome\\content\\pdfjs\\build\\pdf.js",
"xul_seb\\chrome\\content\\pdfjs\\build\\pdf.js.map",
"xul_seb\\chrome\\content\\pdfjs\\build\\pdf.worker.js",
"xul_seb\\chrome\\content\\pdfjs\\build\\pdf.worker.js.map",
"xul_seb\\chrome\\content\\pdfjs\\LICENSE",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\78-EUC-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\78-EUC-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\78-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\78ms-RKSJ-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\78ms-RKSJ-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\78-RKSJ-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\78-RKSJ-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\78-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\83pv-RKSJ-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\90msp-RKSJ-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\90msp-RKSJ-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\90ms-RKSJ-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\90ms-RKSJ-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\90pv-RKSJ-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\90pv-RKSJ-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Add-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Add-RKSJ-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Add-RKSJ-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Add-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-CNS1-0.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-CNS1-1.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-CNS1-2.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-CNS1-3.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-CNS1-4.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-CNS1-5.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-CNS1-6.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-CNS1-UCS2.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-GB1-0.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-GB1-1.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-GB1-2.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-GB1-3.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-GB1-4.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-GB1-5.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-GB1-UCS2.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-Japan1-0.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-Japan1-1.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-Japan1-2.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-Japan1-3.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-Japan1-4.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-Japan1-5.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-Japan1-6.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-Japan1-UCS2.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-Korea1-0.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-Korea1-1.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-Korea1-2.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Adobe-Korea1-UCS2.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\B5-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\B5pc-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\B5pc-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\B5-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\CNS1-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\CNS1-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\CNS2-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\CNS2-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\CNS-EUC-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\CNS-EUC-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\ETen-B5-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\ETen-B5-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\ETenms-B5-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\ETenms-B5-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\ETHK-B5-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\ETHK-B5-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\EUC-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\EUC-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Ext-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Ext-RKSJ-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Ext-RKSJ-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Ext-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\GB-EUC-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\GB-EUC-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\GB-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\GBK2K-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\GBK2K-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\GBK-EUC-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\GBK-EUC-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\GBKp-EUC-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\GBKp-EUC-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\GBpc-EUC-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\GBpc-EUC-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\GBT-EUC-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\GBT-EUC-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\GBT-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\GBTpc-EUC-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\GBTpc-EUC-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\GBT-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\GB-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Hankaku.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Hiragana.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\HKdla-B5-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\HKdla-B5-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\HKdlb-B5-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\HKdlb-B5-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\HKgccs-B5-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\HKgccs-B5-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\HKm314-B5-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\HKm314-B5-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\HKm471-B5-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\HKm471-B5-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\HKscs-B5-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\HKscs-B5-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Katakana.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\KSC-EUC-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\KSC-EUC-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\KSC-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\KSC-Johab-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\KSC-Johab-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\KSCms-UHC-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\KSCms-UHC-HW-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\KSCms-UHC-HW-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\KSCms-UHC-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\KSCpc-EUC-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\KSCpc-EUC-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\KSC-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\LICENSE",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\NWP-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\NWP-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\RKSJ-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\RKSJ-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\Roman.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniCNS-UCS2-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniCNS-UCS2-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniCNS-UTF16-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniCNS-UTF16-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniCNS-UTF32-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniCNS-UTF32-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniCNS-UTF8-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniCNS-UTF8-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniGB-UCS2-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniGB-UCS2-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniGB-UTF16-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniGB-UTF16-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniGB-UTF32-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniGB-UTF32-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniGB-UTF8-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniGB-UTF8-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJIS2004-UTF16-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJIS2004-UTF16-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJIS2004-UTF32-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJIS2004-UTF32-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJIS2004-UTF8-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJIS2004-UTF8-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJISPro-UCS2-HW-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJISPro-UCS2-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJISPro-UTF8-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJIS-UCS2-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJIS-UCS2-HW-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJIS-UCS2-HW-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJIS-UCS2-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJIS-UTF16-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJIS-UTF16-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJIS-UTF32-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJIS-UTF32-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJIS-UTF8-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJIS-UTF8-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJISX02132004-UTF32-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJISX02132004-UTF32-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJISX0213-UTF32-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniJISX0213-UTF32-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniKS-UCS2-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniKS-UCS2-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniKS-UTF16-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniKS-UTF16-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniKS-UTF32-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniKS-UTF32-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniKS-UTF8-H.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\UniKS-UTF8-V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\V.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\cmaps\\WP-Symbol.bcmap",
"xul_seb\\chrome\\content\\pdfjs\\web\\compressed.tracemonkey-pldi-09.pdf",
"xul_seb\\chrome\\content\\pdfjs\\web\\debugger.js",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\annotation-check.svg",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\annotation-comment.svg",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\annotation-help.svg",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\annotation-insert.svg",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\annotation-key.svg",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\annotation-newparagraph.svg",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\annotation-noicon.svg",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\annotation-note.svg",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\annotation-paragraph.svg",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\findbarButton-next.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\findbarButton-next@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\findbarButton-next-rtl.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\findbarButton-next-rtl@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\findbarButton-previous.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\findbarButton-previous@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\findbarButton-previous-rtl.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\findbarButton-previous-rtl@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\grab.cur",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\grabbing.cur",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\loading-icon.gif",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\loading-small.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\loading-small@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\secondaryToolbarButton-documentProperties.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\secondaryToolbarButton-documentProperties@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\secondaryToolbarButton-firstPage.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\secondaryToolbarButton-firstPage@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\secondaryToolbarButton-handTool.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\secondaryToolbarButton-handTool@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\secondaryToolbarButton-lastPage.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\secondaryToolbarButton-lastPage@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\secondaryToolbarButton-rotateCcw.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\secondaryToolbarButton-rotateCcw@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\secondaryToolbarButton-rotateCw.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\secondaryToolbarButton-rotateCw@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\secondaryToolbarButton-selectTool.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\secondaryToolbarButton-selectTool@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\shadow.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\texture.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-bookmark.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-bookmark@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-download.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-download@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-menuArrows.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-menuArrows@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-openFile.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-openFile@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-pageDown.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-pageDown@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-pageDown-rtl.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-pageDown-rtl@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-pageUp.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-pageUp@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-pageUp-rtl.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-pageUp-rtl@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-presentationMode.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-presentationMode@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-print.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-print@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-search.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-search@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-secondaryToolbarToggle.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-secondaryToolbarToggle@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-secondaryToolbarToggle-rtl.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-secondaryToolbarToggle-rtl@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-sidebarToggle.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-sidebarToggle@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-sidebarToggle-rtl.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-sidebarToggle-rtl@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-viewAttachments.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-viewAttachments@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-viewOutline.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-viewOutline@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-viewOutline-rtl.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-viewOutline-rtl@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-viewThumbnail.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-viewThumbnail@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-zoomIn.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-zoomIn@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-zoomOut.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\toolbarButton-zoomOut@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\treeitem-collapsed.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\treeitem-collapsed@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\treeitem-collapsed-rtl.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\treeitem-collapsed-rtl@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\treeitem-expanded.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\images\\treeitem-expanded@2x.png",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\ach\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\af\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\ak\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\an\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\ar\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\as\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\ast\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\az\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\be\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\bg\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\bn-BD\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\bn-IN\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\br\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\bs\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\ca\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\cs\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\csb\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\cy\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\da\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\de\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\el\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\en-GB\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\en-US\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\en-ZA\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\eo\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\es-AR\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\es-CL\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\es-ES\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\es-MX\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\et\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\eu\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\fa\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\ff\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\fi\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\fr\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\fy-NL\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\ga-IE\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\gd\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\gl\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\gu-IN\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\he\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\hi-IN\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\hr\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\hu\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\hy-AM\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\id\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\is\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\it\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\ja\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\ka\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\kk\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\km\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\kn\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\ko\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\ku\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\lg\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\lij\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\locale.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\lt\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\lv\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\mai\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\mk\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\ml\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\mn\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\mr\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\ms\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\my\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\nb-NO\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\nl\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\nn-NO\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\nso\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\oc\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\or\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\pa-IN\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\pl\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\pt-BR\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\pt-PT\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\rm\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\ro\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\ru\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\rw\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\sah\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\si\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\sk\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\sl\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\son\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\sq\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\sr\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\sv-SE\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\sw\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\ta\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\ta-LK\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\te\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\th\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\tl\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\tn\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\tr\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\uk\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\ur\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\vi\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\wo\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\xh\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\zh-CN\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\zh-TW\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\locale\\zu\\viewer.properties",
"xul_seb\\chrome\\content\\pdfjs\\web\\viewer.css",
"xul_seb\\chrome\\content\\pdfjs\\web\\viewer.html",
"xul_seb\\chrome\\content\\pdfjs\\web\\viewer.js",
"xul_seb\\chrome\\content\\pdfjs\\web\\viewer.js.map",
"xul_seb\\chrome\\content\\seb\\css\\aboutNetError_alert.svg",
"xul_seb\\chrome\\content\\seb\\css\\aboutNetError_info.svg",
"xul_seb\\chrome\\content\\seb\\css\\neterror.css",
"xul_seb\\chrome\\content\\seb\\css\\seb.css",
"xul_seb\\chrome\\content\\seb\\err.xul",
"xul_seb\\chrome\\content\\seb\\error.html",
"xul_seb\\chrome\\content\\seb\\error.xhtml",
"xul_seb\\chrome\\content\\seb\\hidden.xul",
"xul_seb\\chrome\\content\\seb\\images\\back.png",
"xul_seb\\chrome\\content\\seb\\images\\forward.png",
"xul_seb\\chrome\\content\\seb\\images\\loading.gif",
"xul_seb\\chrome\\content\\seb\\images\\quit.png",
"xul_seb\\chrome\\content\\seb\\images\\reload.png",
"xul_seb\\chrome\\content\\seb\\images\\restart.png",
"xul_seb\\chrome\\content\\seb\\images\\zoom.png",
"xul_seb\\chrome\\content\\seb\\load.xul",
"xul_seb\\chrome\\content\\seb\\lockscreen.xul",
"xul_seb\\chrome\\content\\seb\\message_socket.html",
"xul_seb\\chrome\\content\\seb\\reconf.xhtml",
"xul_seb\\chrome\\content\\seb\\reconf.xul",
"xul_seb\\chrome\\content\\seb\\seb.properties",
"xul_seb\\chrome\\content\\seb\\seb.xul",
"xul_seb\\chrome\\content\\seb\\sounds\\snapshot.mp3",
"xul_seb\\chrome\\content\\seb\\sounds\\snapshot.ogg",
"xul_seb\\chrome\\content\\seb\\sounds\\snapshot.wav",
"xul_seb\\chrome\\locale\\seb\\de-DE\\seb.dtd",
"xul_seb\\chrome\\locale\\seb\\de-DE\\seb.properties",
"xul_seb\\chrome\\locale\\seb\\en-US\\seb.dtd",
"xul_seb\\chrome\\locale\\seb\\en-US\\seb.properties",
"xul_seb\\chrome\\locale\\seb\\fr-FR\\seb.dtd",
"xul_seb\\chrome\\locale\\seb\\fr-FR\\seb.properties",
"xul_seb\\chrome\\pdfjs.manifest",
"xul_seb\\chrome\\seb.manifest",
"xul_seb\\components\\certsService.js",
"xul_seb\\components\\sebProtocol.js",
"xul_seb\\components\\sebsProtocol.js",
"xul_seb\\components\\xulApplication.js",
"xul_seb\\config.certs.json",
"xul_seb\\config.custom.json",
"xul_seb\\config.default.json",
"xul_seb\\config.dev.json",
"xul_seb\\config.full.json",
"xul_seb\\config.json",
"xul_seb\\config.localhost.json",
"xul_seb\\config.SEB22.json",
"xul_seb\\config.server.json",
"xul_seb\\debug_prefs.js",
"xul_seb\\debug_reset_prefs.js",
"xul_seb\\default.json",
"xul_seb\\defaults\\preferences\\seb.js",
"xul_seb\\defaults\\profile\\mimeTypes.rdf",
"xul_seb\\dictionaries\\da-DK\\da-DK.aff",
"xul_seb\\dictionaries\\da-DK\\da-DK.dic",
"xul_seb\\dictionaries\\da-DK\\README_da.txt",
"xul_seb\\dictionaries\\en-AU\\en-AU.aff",
"xul_seb\\dictionaries\\en-AU\\en-AU.dic",
"xul_seb\\dictionaries\\en-AU\\README_en-AU.txt",
"xul_seb\\dictionaries\\en-GB\\en-GB.aff",
"xul_seb\\dictionaries\\en-GB\\en-GB.dic",
"xul_seb\\dictionaries\\en-GB\\README_en-GB.txt",
"xul_seb\\dictionaries\\en-US\\en-US.aff",
"xul_seb\\dictionaries\\en-US\\en-US.dic",
"xul_seb\\dictionaries\\en-US\\README_en-US.txt",
"xul_seb\\dictionaries\\es-ES\\es-ES.aff",
"xul_seb\\dictionaries\\es-ES\\es-ES.dic",
"xul_seb\\dictionaries\\es-ES\\README_es-ES.txt",
"xul_seb\\dictionaries\\fr-FR\\fr-FR.aff",
"xul_seb\\dictionaries\\fr-FR\\fr-FR.dic",
"xul_seb\\dictionaries\\fr-FR\\README_fr.txt",
"xul_seb\\dictionaries\\pt-PT\\pt-PT.aff",
"xul_seb\\dictionaries\\pt-PT\\pt-PT.dic",
"xul_seb\\dictionaries\\pt-PT\\README_pt-PT.txt",
"xul_seb\\dictionaries\\sv-FI\\README_sv.txt",
"xul_seb\\dictionaries\\sv-FI\\sv-FI.aff",
"xul_seb\\dictionaries\\sv-FI\\sv-FI.dic",
"xul_seb\\dictionaries\\sv-SE\\README_sv.txt",
"xul_seb\\dictionaries\\sv-SE\\sv-SE.aff",
"xul_seb\\dictionaries\\sv-SE\\sv-SE.dic",
"xul_seb\\globals\\const.js",
"xul_seb\\globals\\prototypes.js",
"xul_seb\\modules\\empty.js",
"xul_seb\\modules\\seb.jsm",
"xul_seb\\modules\\SebBrowser.jsm",
"xul_seb\\modules\\SebConfig.jsm",
"xul_seb\\modules\\SebHost.jsm",
"xul_seb\\modules\\SebLog.jsm",
"xul_seb\\modules\\SebNet.jsm",
"xul_seb\\modules\\SebScreenshot.jsm",
"xul_seb\\modules\\SebServer.jsm",
"xul_seb\\modules\\SebUtils.jsm",
"xul_seb\\modules\\SebWin.jsm",
"xul_seb\\modules\\ZoomManager.jsm",
"xul_seb\\seb.ini",
"xulrunner\\Accessible.tlb",
"xulrunner\\AccessibleMarshal.dll",
"xulrunner\\api-ms-win-core-console-l1-1-0.dll",
"xulrunner\\api-ms-win-core-datetime-l1-1-0.dll",
"xulrunner\\api-ms-win-core-debug-l1-1-0.dll",
"xulrunner\\api-ms-win-core-errorhandling-l1-1-0.dll",
"xulrunner\\api-ms-win-core-file-l1-1-0.dll",
"xulrunner\\api-ms-win-core-file-l1-2-0.dll",
"xulrunner\\api-ms-win-core-file-l2-1-0.dll",
"xulrunner\\api-ms-win-core-handle-l1-1-0.dll",
"xulrunner\\api-ms-win-core-heap-l1-1-0.dll",
"xulrunner\\api-ms-win-core-interlocked-l1-1-0.dll",
"xulrunner\\api-ms-win-core-libraryloader-l1-1-0.dll",
"xulrunner\\api-ms-win-core-localization-l1-2-0.dll",
"xulrunner\\api-ms-win-core-memory-l1-1-0.dll",
"xulrunner\\api-ms-win-core-namedpipe-l1-1-0.dll",
"xulrunner\\api-ms-win-core-processenvironment-l1-1-0.dll",
"xulrunner\\api-ms-win-core-processthreads-l1-1-0.dll",
"xulrunner\\api-ms-win-core-processthreads-l1-1-1.dll",
"xulrunner\\api-ms-win-core-profile-l1-1-0.dll",
"xulrunner\\api-ms-win-core-rtlsupport-l1-1-0.dll",
"xulrunner\\api-ms-win-core-string-l1-1-0.dll",
"xulrunner\\api-ms-win-core-synch-l1-1-0.dll",
"xulrunner\\api-ms-win-core-synch-l1-2-0.dll",
"xulrunner\\api-ms-win-core-sysinfo-l1-1-0.dll",
"xulrunner\\api-ms-win-core-timezone-l1-1-0.dll",
"xulrunner\\api-ms-win-core-util-l1-1-0.dll",
"xulrunner\\api-ms-win-crt-conio-l1-1-0.dll",
"xulrunner\\api-ms-win-crt-convert-l1-1-0.dll",
"xulrunner\\api-ms-win-crt-environment-l1-1-0.dll",
"xulrunner\\api-ms-win-crt-filesystem-l1-1-0.dll",
"xulrunner\\api-ms-win-crt-heap-l1-1-0.dll",
"xulrunner\\api-ms-win-crt-locale-l1-1-0.dll",
"xulrunner\\api-ms-win-crt-math-l1-1-0.dll",
"xulrunner\\api-ms-win-crt-multibyte-l1-1-0.dll",
"xulrunner\\api-ms-win-crt-private-l1-1-0.dll",
"xulrunner\\api-ms-win-crt-process-l1-1-0.dll",
"xulrunner\\api-ms-win-crt-runtime-l1-1-0.dll",
"xulrunner\\api-ms-win-crt-stdio-l1-1-0.dll",
"xulrunner\\api-ms-win-crt-string-l1-1-0.dll",
"xulrunner\\api-ms-win-crt-time-l1-1-0.dll",
"xulrunner\\api-ms-win-crt-utility-l1-1-0.dll",
"xulrunner\\application.ini",
"xulrunner\\breakpadinjector.dll",
"xulrunner\\browser\\blocklist.xml",
"xulrunner\\browser\\chrome.manifest",
"xulrunner\\browser\\crashreporter-override.ini",
"xulrunner\\browser\\extensions\\{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi",
"xulrunner\\browser\\features\\aushelper@mozilla.org.xpi",
"xulrunner\\browser\\features\\e10srollout@mozilla.org.xpi",
"xulrunner\\browser\\features\\firefox@getpocket.com.xpi",
"xulrunner\\browser\\features\\webcompat@mozilla.org.xpi",
"xulrunner\\browser\\omni.ja",
"xulrunner\\browser\\VisualElements\\VisualElements_150.png",
"xulrunner\\browser\\VisualElements\\VisualElements_70.png",
"xulrunner\\chrome.manifest",
"xulrunner\\crashreporter.exe",
"xulrunner\\crashreporter.ini",
"xulrunner\\D3DCompiler_43.dll",
"xulrunner\\d3dcompiler_47.dll",
"xulrunner\\defaults\\pref\\channel-prefs.js",
"xulrunner\\dependentlibs.list",
"xulrunner\\firefox.exe",
"xulrunner\\firefox.VisualElementsManifest.xml",
"xulrunner\\freebl3.chk",
"xulrunner\\freebl3.dll",
"xulrunner\\gmp-clearkey\\0.1\\clearkey.dll",
"xulrunner\\gmp-clearkey\\0.1\\clearkey.info",
"xulrunner\\IA2Marshal.dll",
"xulrunner\\install.log",
"xulrunner\\lgpllibs.dll",
"xulrunner\\libEGL.dll",
"xulrunner\\libGLESv2.dll",
"xulrunner\\maintenanceservice.exe",
"xulrunner\\maintenanceservice_installer.exe",
"xulrunner\\minidump-analyzer.exe",
"xulrunner\\mozavcodec.dll",
"xulrunner\\mozavutil.dll",
"xulrunner\\mozglue.dll",
"xulrunner\\msvcp140.dll",
"xulrunner\\nss3.dll",
"xulrunner\\nssckbi.dll",
"xulrunner\\nssdbm3.chk",
"xulrunner\\nssdbm3.dll",
"xulrunner\\omni.ja",
"xulrunner\\platform.ini",
"xulrunner\\plugin-container.exe",
"xulrunner\\plugin-hang-ui.exe",
"xulrunner\\precomplete",
"xulrunner\\qipcap.dll",
"xulrunner\\removed-files",
"xulrunner\\softokn3.chk",
"xulrunner\\softokn3.dll",
"xulrunner\\ucrtbase.dll",
"xulrunner\\uninstall\\helper.exe",
"xulrunner\\uninstall\\shortcuts_log.ini",
"xulrunner\\uninstall\\uninstall.log",
"xulrunner\\updater.exe",
"xulrunner\\updater.ini",
"xulrunner\\update-settings.ini",
"xulrunner\\vcruntime140.dll",
"xulrunner\\voucher.bin",
"xulrunner\\wow_helper.exe",
"xulrunner\\xul.dll"};
}
/// ---------------------------------------------------------------------------------------- /// ----------------------------------------------------------------------------------------
/// <summary> /// <summary>