From 091b6fe15a214be331adcbbaf33bd4b04a625ea8 Mon Sep 17 00:00:00 2001 From: Carolina Date: Fri, 28 Jun 2019 17:27:21 +0000 Subject: [PATCH] Bug 1557458 - Sends certificate information to about:certificate. r=johannh,keeler Differential Revision: https://phabricator.services.mozilla.com/D34013 --HG-- extra : moz-landing-system : lando --- .../certviewer/AboutCertViewerHandler.jsm | 11 +++++++++++ .../certviewer/content/certviewer.js | 19 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/toolkit/components/certviewer/AboutCertViewerHandler.jsm b/toolkit/components/certviewer/AboutCertViewerHandler.jsm index 8e1c4f82edfd..acc92ab76339 100644 --- a/toolkit/components/certviewer/AboutCertViewerHandler.jsm +++ b/toolkit/components/certviewer/AboutCertViewerHandler.jsm @@ -8,6 +8,16 @@ var EXPORTED_SYMBOLS = ["AboutCertViewerHandler"]; const { RemotePages } = ChromeUtils.import("resource://gre/modules/remotepagemanager/RemotePageManagerParent.jsm"); +const derString = "0\x82\x06F0\x82\x05.\xA0\x03\x02\x01\x02\x02\x10\f\x97n>B8\xF4 \xD6=\xDF\x86\xEF\xEB\xBA\x900\r\x06\t*\x86H\x86\xF7\r\x01\x01\v\x05\x000M1\v0\t\x06\x03U\x04\x06\x13\x02US1\x150\x13\x06\x03U\x04\n\x13\fDigiCert Inc1'0%\x06\x03U\x04\x03\x13\x1EDigiCert SHA2 Secure Server CA0\x1E\x17\r181105000000Z\x17\r191113120000Z0\x81\x831\v0\t\x06\x03U\x04\x06\x13\x02US1\x130\x11\x06\x03U\x04\b\x13\nCalifornia1\x160\x14\x06\x03U\x04\x07\x13\rMountain View1\x1C0\x1A\x06\x03U\x04\n\x13\x13Mozilla Corporation1\x0F0\r\x06\x03U\x04\v\x13\x06WebOps1\x180\x16\x06\x03U\x04\x03\x13\x0Fwww.mozilla.org0\x82\x01\"0\r\x06\t*\x86H\x86\xF7\r\x01\x01\x01\x05\x00\x03\x82\x01\x0F\x000\x82\x01\n\x02\x82\x01\x01\x00\xB8\xAA\xEE\xCAi$\x9AJ\x82&\x1E\xD0\x8Ee\xE5P\xE0\\,Tr\xC3\x92\xC6\xFE\xF5\x14YZ\xEC\xC4-\xA0\xB1\xB4|X\x9A\xBEq\x8A\x18\x06\x9A\rU+J\xAC\xEE\x14\xDA\xB0a\xD4a\x1Bq\xCB\xD3\xEA\xA2\x8E@\x8F\xA9\x8E0\xF1\xC7\xD7&E\xDB\x9B\x191\xA9\xF0\xBD\f\x17Z!V\xF8H\xBD\x82\xEE\x98\xE1(D0\xCFS\x83\xEF\x18\x98\xC6\x85\xE9?\xA2;\xDEt\xF5\x9E\xF1\xD8\\\x88y18-\xAA^\vU?fr \xFEUn\x9B\x1DD\x97\x0F\xDCb|\xBFC\xA9\xD2t!\xCD\x12\x96T\xE53\xEA*\xE5\xA0\x1E;\x15\x10\x19xW\"\xA8\xFA}$/\xF5\xF4\r\xEAe\xF1@\x8A\x1C\xFE\b\xF1\xB5\xEB$\xAB\xF5e\xF1\x89\x98\xD4R\x19?\xD0a\xEE\r\xBB\x93\x16}\x18\x00\x06B\xD8\xD3/M\xD1\xCC\xA0.J\x0E\xB2x\x89\x98U\xD4\x16j\xC7;P\xF9\xC1^T@\xCD\x9F>8\x94\xE1Q\xBC\xCA\xD7\xA6\xB6\b\x8D\xD1\x83\x86\xA0)\"d\xFA\xE08\xEE\x1D\x7F\"i\xA7\x82\x91KE\xBF\xCC\xBD\x15\xFA\x1FZ\x16qK\xB2\x1F\xA3\xBB=\x97e\xD1\x8ApN\x9C5Lr.\xA8!\xA5\xFF\nO\x83$ q3"; + +function handleGetCertificate(aMessage) { + let certsDER = [derString]; // This is just for testing + + aMessage.target.sendAsyncMessage("Certificate", { + certs: certsDER, + }); +} + var AboutCertViewerHandler = { _inited: false, _topics: [ @@ -35,6 +45,7 @@ var AboutCertViewerHandler = { receiveMessage(aMessage) { switch (aMessage.name) { case "getCertificate": { + handleGetCertificate(aMessage); break; } } diff --git a/toolkit/components/certviewer/content/certviewer.js b/toolkit/components/certviewer/content/certviewer.js index 06f26df62e54..9410688d3b12 100644 --- a/toolkit/components/certviewer/content/certviewer.js +++ b/toolkit/components/certviewer/content/certviewer.js @@ -9,6 +9,7 @@ let gElements = {}; document.addEventListener("DOMContentLoaded", (e) => { + RPMAddMessageListener("Certificate", showCertificate); RPMSendAsyncMessage("getCertificate"); gElements.certificateSection = document.querySelector("certificate-section"); }); @@ -26,3 +27,21 @@ const updateSelectedItem = (() => { return state; }; })(); + +const str2ab = (str) => { + let buf = new ArrayBuffer(str.length); + let bufView = new Uint8Array(buf); + for (let i = 0; i < str.length; i++) { + bufView[i] = str.charCodeAt(i); + } + return buf; +}; + +const showCertificate = (message) => { + console.log("certificate ", message.data.certs); + let chain = message.data.certs; + let builtChain = chain.map(cert => { + return str2ab(cert); + }); + console.log("builtChain ", builtChain); +};