From 6f188cefb89685368f5f607065151cf2bee19d3f Mon Sep 17 00:00:00 2001 From: John Shaver Date: Fri, 9 Nov 2018 13:57:59 -0800 Subject: [PATCH] Now uses RSA keys for firefox browser. --- app/js/app.js | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/app/js/app.js b/app/js/app.js index c9f2475..f1a366c 100644 --- a/app/js/app.js +++ b/app/js/app.js @@ -1,6 +1,7 @@ (function () { 'use strict'; + var BROWSER_SUPPORTS_ECDSA = navigator.userAgent.toLowerCase().indexOf('firefox') === -1; var $qs = function (s) { return window.document.querySelector(s); }; var $qsa = function (s) { return window.document.querySelectorAll(s); }; var info = {}; @@ -321,7 +322,7 @@ }); }).catch(function (err) { console.error('Step \'' + i + '\' Error:'); - console.error(err); + console.error(err, err.stack); }); }; @@ -423,10 +424,21 @@ var p; function createKeypair() { - return BACME.accounts.generateKeypair({ - type: 'ECDSA' - , bitlength: '256' - }).then(function (serverJwk) { + let opts; + + if(BROWSER_SUPPORTS_ECDSA) { + opts = { + type: 'ECDSA' + , bitlength: '256' + }; + } else { + opts = { + type: 'RSA' + , bitlength: '2048' + }; + } + + return BACME.accounts.generateKeypair(opts).then(function (serverJwk) { localStorage.setItem('server:' + key, JSON.stringify(serverJwk)); return serverJwk; }) @@ -532,15 +544,15 @@ , true , ["sign"] ).then(function (privateKey) { - return window.crypto.subtle.exportKey("pkcs8", privateKey); + return window.crypto.subtle.exportKey("pkcs8", privateKey); }).then (function (keydata) { var pem = spkiToPEM(keydata); $qs('#js-privkey').innerHTML = pem; $qs("#js-download-privkey-link").href = "data:text/octet-stream;base64," + window.btoa(pem); steps[i](); - }).catch(function(err){ - console.error(err); + }).catch(function(err){ + console.error(err.toString()); }); }); });