OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * @constructor | 6 * @constructor |
7 * @extends {WebInspector.PanelWithSidebar} | 7 * @extends {WebInspector.PanelWithSidebar} |
8 * @implements {WebInspector.TargetManager.Observer} | 8 * @implements {WebInspector.TargetManager.Observer} |
9 */ | 9 */ |
10 WebInspector.SecurityPanel = function() | 10 WebInspector.SecurityPanel = function() |
(...skipping 768 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
779 var table = new WebInspector.SecurityDetailsTable(); | 779 var table = new WebInspector.SecurityDetailsTable(); |
780 connectionSection.appendChild(table.element()); | 780 connectionSection.appendChild(table.element()); |
781 table.addRow("Protocol", originState.securityDetails.protocol); | 781 table.addRow("Protocol", originState.securityDetails.protocol); |
782 table.addRow("Key Exchange", originState.securityDetails.keyExchange); | 782 table.addRow("Key Exchange", originState.securityDetails.keyExchange); |
783 table.addRow("Cipher Suite", originState.securityDetails.cipher + (origi nState.securityDetails.mac ? " with " + originState.securityDetails.mac : "")); | 783 table.addRow("Cipher Suite", originState.securityDetails.cipher + (origi nState.securityDetails.mac ? " with " + originState.securityDetails.mac : "")); |
784 | 784 |
785 // Create the certificate section outside the callback, so that it appea rs in the right place. | 785 // Create the certificate section outside the callback, so that it appea rs in the right place. |
786 var certificateSection = this.element.createChild("div", "origin-view-se ction"); | 786 var certificateSection = this.element.createChild("div", "origin-view-se ction"); |
787 certificateSection.createChild("div", "origin-view-section-title").textC ontent = WebInspector.UIString("Certificate"); | 787 certificateSection.createChild("div", "origin-view-section-title").textC ontent = WebInspector.UIString("Certificate"); |
788 | 788 |
789 if (originState.securityDetails.signedCertificateTimestampList.length > 0) { | |
790 // Create the Certificate Transparency section outside the callback, so that it appears in the right place. | |
791 var sctSection = this.element.createChild("div", "origin-view-sectio n"); | |
792 sctSection.createChild("div", "origin-view-section-title").textConte nt = WebInspector.UIString("Certificate Transparency"); | |
793 } | |
794 | |
789 /** | 795 /** |
790 * @this {WebInspector.SecurityOriginView} | 796 * @this {WebInspector.SecurityOriginView} |
791 * @param {?NetworkAgent.CertificateDetails} certificateDetails | 797 * @param {?NetworkAgent.CertificateDetails} certificateDetails |
792 */ | 798 */ |
793 function displayCertificateDetails(certificateDetails) | 799 function displayCertificateDetails(certificateDetails) |
794 { | 800 { |
795 var sanDiv = this._createSanDiv(certificateDetails.subject); | 801 var sanDiv = this._createSanDiv(certificateDetails.subject); |
796 var validFromString = new Date(1000 * certificateDetails.validFrom). toUTCString(); | 802 var validFromString = new Date(1000 * certificateDetails.validFrom). toUTCString(); |
797 var validUntilString = new Date(1000 * certificateDetails.validTo).t oUTCString(); | 803 var validUntilString = new Date(1000 * certificateDetails.validTo).t oUTCString(); |
798 | 804 |
799 var table = new WebInspector.SecurityDetailsTable(); | 805 var table = new WebInspector.SecurityDetailsTable(); |
800 certificateSection.appendChild(table.element()); | 806 certificateSection.appendChild(table.element()); |
801 table.addRow(WebInspector.UIString("Subject"), certificateDetails.su bject.name); | 807 table.addRow(WebInspector.UIString("Subject"), certificateDetails.su bject.name); |
802 table.addRow(WebInspector.UIString("SAN"), sanDiv); | 808 table.addRow(WebInspector.UIString("SAN"), sanDiv); |
803 table.addRow(WebInspector.UIString("Valid From"), validFromString); | 809 table.addRow(WebInspector.UIString("Valid From"), validFromString); |
804 table.addRow(WebInspector.UIString("Valid Until"), validUntilString) ; | 810 table.addRow(WebInspector.UIString("Valid Until"), validUntilString) ; |
805 table.addRow(WebInspector.UIString("Issuer"), certificateDetails.iss uer); | 811 table.addRow(WebInspector.UIString("Issuer"), certificateDetails.iss uer); |
806 table.addRow(WebInspector.UIString("SCTs"), this.sctSummary(originSt ate.securityDetails.certificateValidationDetails)); | 812 table.addRow(WebInspector.UIString("SCTs"), this.sctSummary(originSt ate.securityDetails.certificateValidationDetails)); |
807 table.addRow("", WebInspector.SecurityPanel.createCertificateViewerB utton(WebInspector.UIString("Open full certificate details"), originState.securi tyDetails.certificateId)); | 813 table.addRow("", WebInspector.SecurityPanel.createCertificateViewerB utton(WebInspector.UIString("Open full certificate details"), originState.securi tyDetails.certificateId)); |
814 | |
815 if (originState.securityDetails.signedCertificateTimestampList.lengt h <= 0) | |
816 return; | |
817 | |
818 // Show summary of SCT(s) of Certificate Transparency. | |
819 var sctSummaryTable = new WebInspector.SecurityDetailsTable(); | |
820 sctSummaryTable.element().classList.add("sct-summary"); | |
821 sctSection.appendChild(sctSummaryTable.element()); | |
822 for (var i = 0; i < originState.securityDetails.signedCertificateTim estampList.length; i++) | |
823 { | |
824 sctSummaryTable.addRow(WebInspector.UIString("SCT"), originState .securityDetails.signedCertificateTimestampList[i].logDescription + " (" + | |
825 originState.securityDetails.signedCertificateTimestampList[i ].origin + ", " + | |
826 originState.securityDetails.signedCertificateTimestampList[i ].status + ")"); | |
827 } | |
828 | |
829 // Show detailed SCT(s) of Certificate Transparency. | |
830 var sctTableWrapper = sctSection.createChild("div", "sct-details"); | |
831 sctTableWrapper.classList.add("hidden"); | |
832 for (var i = 0; i < originState.securityDetails.signedCertificateTim estampList.length; i++) | |
833 { | |
834 var sctTable = new WebInspector.SecurityDetailsTable(); | |
835 sctTableWrapper.appendChild(sctTable.element()); | |
836 sctTable.addRow(WebInspector.UIString("Log Name"), originState.s ecurityDetails.signedCertificateTimestampList[i].logDescription); | |
837 sctTable.addRow(WebInspector.UIString("Log ID"), originState.sec urityDetails.signedCertificateTimestampList[i].logId.replace(/(.{2})/g,"$1 ")); | |
Eran Messeri
2016/05/25 10:47:04
Nit: The Log ID is mostly superfluous when the Log
| |
838 sctTable.addRow(WebInspector.UIString("Validation Status"), orig inState.securityDetails.signedCertificateTimestampList[i].status); | |
839 sctTable.addRow(WebInspector.UIString("Origin"), originState.sec urityDetails.signedCertificateTimestampList[i].origin); | |
840 sctTable.addRow(WebInspector.UIString("Issued At"), new Date(ori ginState.securityDetails.signedCertificateTimestampList[i].timestamp).toUTCStrin g()); | |
841 sctTable.addRow(WebInspector.UIString("Version"), originState.se curityDetails.signedCertificateTimestampList[i].version); | |
842 sctTable.addRow(WebInspector.UIString("Hash Algorithm"), originS tate.securityDetails.signedCertificateTimestampList[i].hashAlgorithm); | |
843 sctTable.addRow(WebInspector.UIString("Signature Algorithm"), or iginState.securityDetails.signedCertificateTimestampList[i].signatureAlgorithm); | |
844 sctTable.addRow(WebInspector.UIString("Signature Data"), originS tate.securityDetails.signedCertificateTimestampList[i].signatureData.replace(/(. {2})/g,"$1 ")); | |
845 } | |
846 | |
847 // Add link to toggle between displaying of the summary of the SCT(s ) and the detailed SCT(s). | |
848 var toggleSctsDetailsLink = sctSection.createChild("div", "link"); | |
849 toggleSctsDetailsLink.classList.add("sct-toggle"); | |
850 toggleSctsDetailsLink.textContent = WebInspector.UIString("Show full details"); | |
851 function toggleSctDetailsDisplay() | |
852 { | |
853 var isDetailsShown = !sctTableWrapper.classList.contains("hidden "); | |
854 if (isDetailsShown) | |
855 toggleSctsDetailsLink.textContent = WebInspector.UIString("S how full details"); | |
856 else | |
857 toggleSctsDetailsLink.textContent = WebInspector.UIString("H ide full details"); | |
858 sctSummaryTable.element().classList.toggle("hidden"); | |
859 sctTableWrapper.classList.toggle("hidden"); | |
860 } | |
861 toggleSctsDetailsLink.addEventListener("click", toggleSctDetailsDisp lay, false); | |
808 } | 862 } |
809 | 863 |
810 function displayCertificateDetailsUnavailable() | 864 function displayCertificateDetailsUnavailable() |
811 { | 865 { |
812 certificateSection.createChild("div").textContent = WebInspector.UIS tring("Certificate details unavailable."); | 866 certificateSection.createChild("div").textContent = WebInspector.UIS tring("Certificate details unavailable."); |
813 } | 867 } |
814 | 868 |
815 originState.certificateDetailsPromise.then(displayCertificateDetails.bin d(this), displayCertificateDetailsUnavailable); | 869 originState.certificateDetailsPromise.then(displayCertificateDetails.bin d(this), displayCertificateDetailsUnavailable); |
816 | 870 |
817 var noteSection = this.element.createChild("div", "origin-view-section") ; | 871 var noteSection = this.element.createChild("div", "origin-view-section") ; |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
936 row.createChild("div").textContent = key; | 990 row.createChild("div").textContent = key; |
937 | 991 |
938 var valueDiv = row.createChild("div"); | 992 var valueDiv = row.createChild("div"); |
939 if (typeof value === "string") { | 993 if (typeof value === "string") { |
940 valueDiv.textContent = value; | 994 valueDiv.textContent = value; |
941 } else { | 995 } else { |
942 valueDiv.appendChild(value); | 996 valueDiv.appendChild(value); |
943 } | 997 } |
944 } | 998 } |
945 } | 999 } |
OLD | NEW |