From 32b709c689e304a5bfca3204c5d12189feb07857 Mon Sep 17 00:00:00 2001 From: Mo Bitar Date: Sun, 15 Jan 2017 17:56:24 -0600 Subject: [PATCH] edge detect wip --- app/assets/javascripts/app/app.frontend.js | 10 ++++++++-- app/assets/javascripts/app/services/apiController.js | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/app/app.frontend.js b/app/assets/javascripts/app/app.frontend.js index 901287ace..bd2995417 100644 --- a/app/assets/javascripts/app/app.frontend.js +++ b/app/assets/javascripts/app/app.frontend.js @@ -2,11 +2,17 @@ var Neeto = Neeto || {}; -if(window.crypto && window.crypto.subtle) { +// detect IE8 and above, and edge. +// IE and Edge do not support pbkdf2 in WebCrypto, therefore we need to use CryptoJS +var IEOrEdge = document.documentMode || /Edge/.test(navigator.userAgent); + +if(!IEOrEdge && (window.crypto && window.crypto.subtle)) { + console.log("Using webcrypto"); Neeto.crypto = new SNCryptoWeb(); } else { - Neeto.crypto = new SNCryptoJS(); + console.log("Using CryptoJS"); } +Neeto.crypto = new SNCryptoJS(); angular.module('app.frontend', [ 'ui.router', diff --git a/app/assets/javascripts/app/services/apiController.js b/app/assets/javascripts/app/services/apiController.js index 23c198ed6..7a1843512 100644 --- a/app/assets/javascripts/app/services/apiController.js +++ b/app/assets/javascripts/app/services/apiController.js @@ -90,7 +90,7 @@ angular.module('app.frontend') // if user has high password cost and is using browser that doesn't support WebCrypto, // we want to tell them that they can't login with this browser. if(cost > 5000) { - return (window.crypto && window.crypto.subtle) ? true : false; + return Neeto.crypto instanceof SNCryptoWeb ? true : false; } else { return true; }