Overview
Comment: | Work on getting an SSH agent UI going |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | ssh-agent-ui |
Files: | files | file ages | folders |
SHA1: |
4ce30d9e04e10bac5027cdaceacc6f38 |
User & Date: | rkeene on 2019-06-05 18:12:58 |
Other Links: | branch diff | manifest | tags |
Context
2019-06-06
| ||
21:56 | Merged in trunk Leaf check-in: 8a375324e9 user: rkeene tags: ssh-agent-ui | |
2019-06-05
| ||
18:12 | Work on getting an SSH agent UI going check-in: 4ce30d9e04 user: rkeene tags: ssh-agent-ui | |
2019-02-04
| ||
23:17 | Better matching of requested blob to one of our certificates check-in: fd3c997789 user: rkeene tags: trunk | |
Changes
Modified build/chrome/manifest.json.in from [5fb3c02ed9] to [6924f71c75].
︙ | ︙ | |||
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | }, "app": { "background": { "scripts": [ "google-pcsc.js", "jsrsasign.js", "ssh-agent.js", "cackey.js" ], "persistent": false } }, "permissions": [ "certificateProvider", "alwaysOnTopWindows" ], "externally_connectable": { "ids": [ "pnhechapfaindjhompbnflcldabbghjo", "okddffdblfhhnmhodogpojmfkjmhinfp" ] } } | > > > | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | }, "app": { "background": { "scripts": [ "google-pcsc.js", "jsrsasign.js", "options.js", "ssh-agent.js", "cackey.js" ], "persistent": false } }, "permissions": [ "certificateProvider", "storage", "alwaysOnTopWindows" ], "externally_connectable": { "ids": [ "pnhechapfaindjhompbnflcldabbghjo", "okddffdblfhhnmhodogpojmfkjmhinfp" ] } } |
Added build/chrome/options.js version [96c52a5607].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | function backendNameToObject(name) { var backend; switch (name) { case "local": backend = chrome.storage.local; break; case "sync": backend = chrome.storage.sync; break; default: throw(new Error("Invalid backend selected:" + name)); break; } return(backend); } function optionValue(optionName, optionValue) { var backend; var retrievePromise; switch (optionName) { case "backend": backend = backendNameToObject("local"); break; default: backend = backendNameToObject(optionValue("backend")); break; } /* * If a value has been specified, set the parameter -- otherwise retrieve */ if (optionValue) { var setObject = {}; var previousBackendName, previousBackend; /* * If we are changing the backend, migrate settings */ if (optionName === "backend") { previousBackendName = optionValue("backend"); if (previousBackendName !== optionValue) { previousBackend = backendNameToObject(previousBackendName); } } setObject[optionName] = optionValue; backend.set(setObject); return; } else { } } |
Modified build/chrome/ui.html from [646f12701f] to [a24ccf52c0].
1 2 3 4 5 6 7 8 9 10 11 | <html> <head> <title>CACKey</title> <script type="text/javascript" src="jsrsasign.js"></script> <script type="text/javascript" src="ui.js"></script> </head> <body> <h1>CACKey for Chrome</h1> <div>Certificate Provider: <span id="certificate_provider"></span></div> <div>Smartcard Readers: <span id="smartcard_readers"></span></div> <div>Certificates: <span id="certificates"></span></div> | > | 1 2 3 4 5 6 7 8 9 10 11 12 | <html> <head> <title>CACKey</title> <script type="text/javascript" src="jsrsasign.js"></script> <script type="text/javascript" src="options.js"></script> <script type="text/javascript" src="ui.js"></script> </head> <body> <h1>CACKey for Chrome</h1> <div>Certificate Provider: <span id="certificate_provider"></span></div> <div>Smartcard Readers: <span id="smartcard_readers"></span></div> <div>Certificates: <span id="certificates"></span></div> |
︙ | ︙ |
Modified build/chrome/ui.js from [8a4e675e00] to [153c088fd4].
1 2 3 4 5 | var globalCerts = null; function displayCerts(htmlObject, certs) { var html = ""; var idx; | | > > > > > > > > > > > > > > > | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | var globalCerts = null; function displayCerts(htmlObject, certs) { var html = ""; var idx; var cert, certTitle; var certObj; var ignoredException; if (certs.length == 0) { htmlObject.innerHTML = "<b>No certificates found</b>"; return; } certObj = new X509; html += "<ol type=\"1\">"; for (idx = 0; idx < certs.length; idx++) { cert = certs[idx]; certObj.readCertHex(BAtohex(new Uint8Array(cert.certificate))); certTitle = certObj.getSubjectString(); try { certObj.getExtSubjectAltName2().forEach(function(itemPair) { var itemName, itemValue; itemName = itemPair[0]; itemValue = itemPair[1]; if (itemName === "MAIL") { certTitle = itemValue; } }); } catch (ignoredException) {}; html += "\t<li>"; html += "\t\t" + certTitle; html += "\t\t<ol type=\"a\">"; html += "\t\t\t<li>Serial Number: " + certObj.getSerialNumberHex() + "</li>"; try { html += "\t\t\t<li>Usage: " + certObj.getExtKeyUsageString() + "</li>"; } catch (ignoredException) {}; html += "\t\t</ol>"; html += "\t</li>"; } html += "</ol>"; delete certObj; |
︙ | ︙ | |||
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | return; } function clearStatusInfo() { document.getElementById('certificates').innerHTML = '<i>Loading...</i>'; document.getElementById('smartcard_readers').innerHTML = '<i>Loading...</i>'; document.getElementById('certificate_provider').innerHTML = '<i>Loading...</i>'; } function loadStatusInfo() { updateCertificates(document.getElementById('certificates')); updateSmartcardReaders(document.getElementById('smartcard_readers')); updateCertificateProvider(document.getElementById('certificate_provider')); } setTimeout(function() { loadStatusInfo(); document.getElementById('reload').onclick = function() { clearStatusInfo(); | > > > > > > | 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | return; } function clearStatusInfo() { document.getElementById('certificates').innerHTML = '<i>Loading...</i>'; document.getElementById('smartcard_readers').innerHTML = '<i>Loading...</i>'; document.getElementById('certificate_provider').innerHTML = '<i>Loading...</i>'; document.getElementById('pin_caching_timeout').value = ''; document.getElementById('ssh_agent_enabled').checked = false; document.getElementById('ssh_agent_keys').checked = false; document.getElementById('ssh_agent_certs').checked = false; document.getElementById('ssh_agent_certs_legacy').checked = false; } function loadStatusInfo() { updateCertificates(document.getElementById('certificates')); updateSmartcardReaders(document.getElementById('smartcard_readers')); updateCertificateProvider(document.getElementById('certificate_provider')); // updateOptions(getOptions()); } setTimeout(function() { loadStatusInfo(); document.getElementById('reload').onclick = function() { clearStatusInfo(); |
︙ | ︙ |