--- /dev/null
+ /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-\r
+ * This Source Code Form is subject to the terms of the Mozilla Public\r
+ * License, v. 2.0. If a copy of the MPL was not distributed with this\r
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.\r
+ * Contributor(s):\r
+ * Copyright (c) 2008-2009 EADS DEFENCE AND SECURITY - All rights reserved\r
+ * Copyright(c) Airbus Defence and Space 2014 - All rights reserved */\r
+\r
+const SECURE_HEADER_SEPARATOR = "###HEADER_SEPARATOR###";\r
+const HEADER_VAL_SEPARATOR = "###HEADER_VAL###";\r
+\r
+/*\r
+gSecureHeadersArray[o.hdrName]={\r
+ o.hdrName = sHeader.headerName; // signed header\r
+ o.hdrSecureValue = sHeader.headerValue; // Value in the signature\r
+ o.hdrMimeValue = ""; // value in the MIME message\r
+ o.hdrSignedStatus = sHeader.headerStatus;\r
+ o.hdrCanonAlgo = aCanonAlgo;\r
+ o.hdrEncryptStatus = "";\r
+ o.hdrSignedRes = "valid";}\r
+*/\r
+function onLoad()\r
+{\r
+ var gSecureHeadersBundle = document.getElementById("bundle_secure_headers_view");\r
+\r
+ var secureHeadersString = window.arguments[0]; \r
+ \r
+ if(secureHeadersString=="")return;\r
+ // split secureHeadersString to cSecureHeadersArray\r
+ var cSecureHeadersArray = {}; \r
+ var each_header_tab=secureHeadersString.split(SECURE_HEADER_SEPARATOR);\r
+ for(var i=0;i<each_header_tab.length;++i){\r
+ var each_value_header_tab=each_header_tab[i].split(HEADER_VAL_SEPARATOR);\r
+ var oEntry = new Object;\r
+ var headerNameEntry = ""; \r
+ for(var idxElt=0;idxElt<each_value_header_tab.length;++idxElt){ \r
+ switch(idxElt){\r
+ case 0:\r
+ headerNameEntry = each_value_header_tab[idxElt];\r
+ oEntry.hdrName = each_value_header_tab[idxElt];\r
+ break;\r
+ case 1:\r
+ oEntry.hdrSecureValue = each_value_header_tab[idxElt];\r
+ break;\r
+ case 2:\r
+ oEntry.hdrMimeValue = each_value_header_tab[idxElt];\r
+ break;\r
+ case 3:\r
+ oEntry.hdrSignedStatus = each_value_header_tab[idxElt];\r
+ break;\r
+ case 4:\r
+ oEntry.hdrCanonAlgo = each_value_header_tab[idxElt];\r
+ break;\r
+ case 5:\r
+ oEntry.hdrSignedRes = each_value_header_tab[idxElt];\r
+ break; \r
+ }\r
+ }\r
+ oEntry.hdrEncryptStatus = "";\r
+ if(headerNameEntry!="") cSecureHeadersArray[headerNameEntry] = oEntry;\r
+ }\r
+ \r
+ // create tree viewer\r
+ var treechild = document.getElementById("secHeader_treechild_id"); \r
+ for (headerName in cSecureHeadersArray) {\r
+ var label=""; \r
+ //create each element for the tree\r
+ var treeitem=document.createElement("treeitem");\r
+ var treerow=document.createElement("treerow");\r
+ var namecell=document.createElement("treecell");\r
+ var valuecell=document.createElement("treecell");\r
+ var statuscell=document.createElement("treecell"); \r
+ var canonizcell=document.createElement("treecell"); \r
+ var valueMimecell=document.createElement("treecell");\r
+ //var encryptedcell=document.createElement("treecell");\r
+ \r
+ //set the header name, value and status\r
+ namecell.setAttribute("label",cSecureHeadersArray[headerName].hdrName);\r
+ valuecell.setAttribute("label",cSecureHeadersArray[headerName].hdrSecureValue); // signed value\r
+ namecell.setAttribute("properties",cSecureHeadersArray[headerName].hdrSignedRes); \r
+ valueMimecell.setAttribute("label",cSecureHeadersArray[headerName].hdrMimeValue); // displayed value in message\r
+ \r
+ //set the header status\r
+ switch(cSecureHeadersArray[headerName].hdrSignedStatus){\r
+ case "-1":\r
+ label=gSecureHeadersBundle.getString("notdefine.label");\r
+ break;\r
+ case "0" :\r
+ label=gSecureHeadersBundle.getString("headerstatus.duplicated.label");\r
+ break;\r
+ case "1" :\r
+ label=gSecureHeadersBundle.getString("headerstatus.deleted.label");\r
+ break;\r
+ case "2":\r
+ label=gSecureHeadersBundle.getString("headerstatus.modified.label");\r
+ break;\r
+ default:\r
+ label="ERROR";\r
+ break;\r
+ }\r
+ statuscell.setAttribute("label",label);\r
+ \r
+ //set the canonization algo used\r
+ var sAlgo = "";\r
+ switch(parseInt(cSecureHeadersArray[headerName].hdrCanonAlgo,10)){\r
+ case 0:\r
+ sAlgo = gSecureHeadersBundle.getString("headercanoniz.simple.label");\r
+ break;\r
+ case 1:\r
+ sAlgo = gSecureHeadersBundle.getString("headercanoniz.relaxed.label");\r
+ break; \r
+ }\r
+ canonizcell.setAttribute("label",sAlgo);\r
+ \r
+ //set the header encrypted\r
+ /*switch(gSecureHeadersArray[headerName].hdrEncryptStatus){\r
+ case -1:\r
+ label=gSecureHeadersBundle.getString("notdefine.label");\r
+ break;\r
+ case 0 :\r
+ label=gSecureHeadersBundle.getString("no.label");\r
+ break;\r
+ case 1 :\r
+ label=gSecureHeadersBundle.getString("yes.label");\r
+ break;\r
+ default:\r
+ label="ERROR";\r
+ break;\r
+ }\r
+ encryptedcell.setAttribute("label",label);*/\r
+\r
+ //append all elements in the tree\r
+ treerow.appendChild(namecell);\r
+ treerow.appendChild(valuecell);\r
+ treerow.appendChild(statuscell); \r
+ treerow.appendChild(canonizcell); \r
+ treerow.appendChild(valueMimecell); \r
+ //treerow.appendChild(encryptedcell);\r
+ treeitem.appendChild(treerow);\r
+ treechild.appendChild(treeitem);\r
+ }\r
+}\r
+\r
+/*\r
+ * Load complete informations of selected header in texteboxes box\r
+ */\r
+function DisplayDetailHeader(){\r
+ var gConsole = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService);\r
+ try{\r
+ var tree = document.getElementById("secureheaderstree.id"); \r
+ var v = tree.currentIndex;\r
+ document.getElementById("headerName_val").value = tree.view.getCellText(v, tree.columns.getColumnAt(0)); \r
+ document.getElementById("headerValue_val").value = tree.view.getCellText(v, tree.columns.getColumnAt(1));\r
+ document.getElementById("headerStatus_val").value = tree.view.getCellText(v, tree.columns.getColumnAt(2));\r
+ document.getElementById("headerCanonization_val").value = tree.view.getCellText(v, tree.columns.getColumnAt(3));\r
+ document.getElementById("headerMimeValue_val").value = tree.view.getCellText(v, tree.columns.getColumnAt(4));\r
+ }catch(e){\r
+ gConsole.logStringMessage("DisplayDetailHeader -error : " + e + " - line " + e.lineNumber);\r
+ }\r
+}\r