diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js index e52d6aaddb6dc7db49fe4f0793160ed65351c7b2..3ff74d1b94b7888ab59c358b9eef5cc80555157c 100644 --- a/javascript/src/iframe/viamapi-iframe.js +++ b/javascript/src/iframe/viamapi-iframe.js @@ -469,10 +469,10 @@ function formatPEM(pemString) { const lineWidth = 64; let resultString = ""; let start = 0; - let piece = ""; - while ( (piece = pemString.substring(start, start + lineWidth)).length > 0 ) { + let piece; + while ((piece = pemString.substring(start, start + lineWidth)).length > 0) { start += lineWidth; - resultString += piece + '\r\n' + resultString += piece + '\r\n'; } return resultString; } @@ -706,31 +706,28 @@ function capitalizeFirstLetter(string) { } function capitalizeHeader(string) { - result = ""; - tokens = string.split("-"); - for(var i = 0; i < tokens.length; i++) { + let result = ""; + const tokens = string.split("-"); + for (let i = 0; i < tokens.length; i++) { result += capitalizeFirstLetter(tokens[i]); - if(i !== tokens.length - 1) { - result += "-" + if (i !== tokens.length - 1) { + result += "-"; } } - return result + return result; } function signEmail(mime, signingCert, certificateChain, privateKey) { - signingCertObj = parseCertificate(signingCert); - certificateChainObj = []; + const signingCertObj = parseCertificate(signingCert); + const certificateChainObj = []; certificateChainObj[0] = parseCertificate(signingCert); - for(var i = 0; i < certificateChain.length; i++) { + for (let i = 0; i < certificateChain.length; i++) { certificateChainObj[i + 1] = parseCertificate(certificateChain[i]) } - //console.log(certificateChainObj) return parsePrivateKey(privateKey).then(privateKeyDecoded => { - return signEmailObjects(mime, signingCertObj, certificateChainObj, privateKeyDecoded); - //console.log(vereignIntermediateKey) }); } @@ -1269,11 +1266,11 @@ function extendPinCodeTtl(key, pinCode) { //console.log(getStack()) //console.log("Extending pincode ttl for key: " + key) //console.log(pinCode) - if(pinCode == null || pinCode == "") { + if(pinCode == null || pinCode === "") { var now = new Date(); var nowMillis = now.getTime(); var ttl = window.sessionStorage.getItem("pincodettls/" + key); - if (ttl == null || ttl == "" || nowMillis >= parseInt(ttl)) { + if (ttl == null || ttl === "" || nowMillis >= parseInt(ttl)) { clearPinCodeTtl(key); return false } else { @@ -1398,23 +1395,22 @@ function loadIdentityInternal(identityKey, pinCode) { "data": "", "code": "400", "status": "Can not load identity" - }) + }); } - var copiedIdentity = JSON.parse(JSON.stringify(loadedIdentity)); - loadedIdentities[identityKey] = loadedIdentity; + const copiedIdentity = JSON.parse(JSON.stringify(loadedIdentity)); + window.loadedIdentities[identityKey] = loadedIdentity; if (identityKey === localStorage.getItem("authenticatedIdentity")) { - currentlyAuthenticatedIdentity = copiedIdentity; - viamApi.setIdentity(identityKey); - var uuid = localStorage.getItem("uuid"); - var token = localStorage.getItem("token"); - //console.log("Loading " + uuid + " " + token) - viamApi.setSessionData(uuid, token) + window.currentlyAuthenticatedIdentity = copiedIdentity; + window.viamApi.setIdentity(identityKey); + const uuid = localStorage.getItem("uuid"); + const token = localStorage.getItem("token"); + window.viamApi.setSessionData(uuid, token); } //console.log("Set loaded identity in load identity") - currentlyLoadedIdentity = copiedIdentity; - viamAnonymousApi.setIdentity(currentlyLoadedIdentity.authentication.publicKey); + window.currentlyLoadedIdentity = copiedIdentity; + window.viamAnonymousApi.setIdentity(window.currentlyLoadedIdentity.authentication.publicKey); copiedIdentity.pinCode = ""; copiedIdentity.authentication.privateKey = ""; @@ -1423,14 +1419,14 @@ function loadIdentityInternal(identityKey, pinCode) { "data": copiedIdentity, "code": "200", "status": "Identity loaded" - }) + }); }).catch((e) => { result({ "data": "", "code": "400", "status": "Can not load entity:" + e - }) - }) + }); + }); }); } @@ -1468,7 +1464,7 @@ function changeIdentityPinCodeInternal(key, oldPinCode, newPinCode) { function getCertificateForPassport(passportUUID, internal) { return new Penpal.Promise(certificateResult => { - if (currentlyAuthenticatedIdentity === null) { + if (window.currentlyAuthenticatedIdentity === null) { return {"data" : "", "code" : "400", "status" : "Identity not authenticated" @@ -1476,7 +1472,7 @@ function getCertificateForPassport(passportUUID, internal) { } var passportIdentity = new Identity(); - passportIdentity.set(currentlyAuthenticatedIdentity); + passportIdentity.set(window.currentlyAuthenticatedIdentity); //console.log("Getting: " + passportUUID) //console.log(identity) var passport = passportIdentity.getPassport(passportUUID); @@ -1518,14 +1514,13 @@ function getCertificateForPassport(passportUUID, internal) { getProfileData(passportIdentity).then(executeResult1 => { console.log("Profile updated in set identity"); setIdentityInLocalStorage(passportIdentity).then(() => { - currentlyAuthenticatedIdentity = passportIdentity; - lastTimeGetProfile = 0; - //console.log("Set loaded identity in passport"); - currentlyLoadedIdentity = passportIdentity; - var copyOfCryptoData = JSON.parse(JSON.stringify(cryptoData)); + window.currentlyAuthenticatedIdentity = passportIdentity; + window.lastTimeGetProfile = 0; + window.currentlyLoadedIdentity = passportIdentity; + const copyOfCryptoData = JSON.parse(JSON.stringify(cryptoData)); if (internal === false) { - copyOfCryptoData["privateKey"] = "" + copyOfCryptoData["privateKey"] = ""; } certificateResult({ @@ -1542,7 +1537,7 @@ function getCertificateForPassport(passportUUID, internal) { }); }); } else { - certificateResult(executeResult) + certificateResult(executeResult); } }); }); @@ -1580,12 +1575,11 @@ const connection = Penpal.connectToParent({ newIdentity.setPinCode(pinCode); //console.log("Set loaded identity in createIdentity") - currentlyLoadedIdentity = newIdentity; - loadedIdentities[newIdentity.authentication.publicKey] = newIdentity; + window.currentlyLoadedIdentity = newIdentity; + window.loadedIdentities[newIdentity.authentication.publicKey] = newIdentity; extendPinCodeTtl(newIdentity.authentication.publicKey, pinCode); - - viamAnonymousApi.setIdentity(newIdentity.authentication.publicKey); + window.viamAnonymousApi.setIdentity(newIdentity.authentication.publicKey); result({"data" : newIdentity, "code" : "200", @@ -1613,8 +1607,8 @@ const connection = Penpal.connectToParent({ }, getIdentityProfile(identityKey) { return new Penpal.Promise(result => { - serializedProfile = localStorage.getItem("profiles/" + identityKey); - if(serializedProfile == null || serializedProfile === "") { + const serializedProfile = localStorage.getItem("profiles/" + identityKey); + if (serializedProfile === null || serializedProfile === "") { result({"data" : "", "code" : "400", "status" : "Profile is empty" @@ -1713,7 +1707,7 @@ const connection = Penpal.connectToParent({ }, login(loginIdentity, mode, code, actionID) { return new Penpal.Promise(result => { - if (loadedIdentities[loginIdentity.authentication.publicKey] === null) { + if (window.loadedIdentities[loginIdentity.authentication.publicKey] === null) { result({"data" : "", "code" : "400", "status" : "Identity not loaded" @@ -1789,16 +1783,16 @@ const connection = Penpal.connectToParent({ }, identityAddNewDevice() { return new Penpal.Promise(result => { - authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); + window.authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); - if (authenticationPublicKey === null) { + if (window.authenticationPublicKey === null) { result({"data" : "", "code" : "400", "status" : "Identity not authenticated" }) } - if (loadedIdentities[authenticationPublicKey] === null) { + if (window.loadedIdentities[authenticationPublicKey] === null) { result({"data" : "", "code" : "400", "status" : "Identity not authenticated" @@ -1832,14 +1826,14 @@ const connection = Penpal.connectToParent({ }, identityDestroyKeysForDevice(authenticationPublicKeyArg) { return new Penpal.Promise(result => { - authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); - if (authenticationPublicKey === null) { + window.authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); + if (window.authenticationPublicKey === null) { result({"data" : "", "code" : "400", "status" : "Identity not authenticated" }) } - if (loadedIdentities[authenticationPublicKey] === null) { + if (window.loadedIdentities[authenticationPublicKey] === null) { result({"data" : "", "code" : "400", "status" : "Identity not authenticated" @@ -1861,14 +1855,14 @@ const connection = Penpal.connectToParent({ }); }, logout() { - authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); - if (authenticationPublicKey === null) { + window.authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); + if (window.authenticationPublicKey === null) { return {"data" : "", "code" : "400", "status" : "Identity not loaded" } } - if (loadedIdentities[authenticationPublicKey] === null) { + if (window.loadedIdentities[authenticationPublicKey] === null) { return {"data" : "", "code" : "400", "status" : "Identity not loaded" @@ -1881,15 +1875,15 @@ const connection = Penpal.connectToParent({ viamApi.setSessionData("", ""); clearPinCodeTtl(authenticationPublicKey); - authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); + window.authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); localStorage.removeItem("uuid"); localStorage.removeItem("token"); localStorage.removeItem("authenticatedIdentity"); - delete loadedIdentities[authenticationPublicKey]; + delete window.loadedIdentities[authenticationPublicKey]; //console.log("Set loaded identity in logout") - currentlyLoadedIdentity = null; - currentlyAuthenticatedIdentity = null; - lastTimeGetProfile = 0; + window.currentlyLoadedIdentity = null; + window.currentlyAuthenticatedIdentity = null; + window.lastTimeGetProfile = 0; result(executeResult); }); @@ -1911,14 +1905,14 @@ const connection = Penpal.connectToParent({ }, getCurrentlyLoggedInUUID() { return new Penpal.Promise(result => { - authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); - if (authenticationPublicKey === null) { + window.authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); + if (window.authenticationPublicKey === null) { return {"data" : "", "code" : "400", "status" : "Identity not loaded" } } - if (loadedIdentities[authenticationPublicKey] === null) { + if (window.loadedIdentities[authenticationPublicKey] === null) { return {"data" : "", "code" : "400", "status" : "Identity not loaded" @@ -1948,14 +1942,14 @@ const connection = Penpal.connectToParent({ }, getCertificateByPassport(passportUUID) { return new Penpal.Promise(result => { - authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); - if (authenticationPublicKey === null) { + window.authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); + if (window.authenticationPublicKey === null) { return {"data" : "", "code" : "400", "status" : "Identity not loaded" } } - if (loadedIdentities[authenticationPublicKey] === null) { + if (window.loadedIdentities[authenticationPublicKey] === null) { return {"data" : "", "code" : "400", "status" : "Identity not loaded" @@ -1979,14 +1973,14 @@ const connection = Penpal.connectToParent({ }, getOneTimeCertificateByPassport(passportUUID, emailArg) { return new Penpal.Promise(result => { - authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); - if (authenticationPublicKey === null) { + window.authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); + if (window.authenticationPublicKey === null) { return {"data" : "", "code" : "400", "status" : "Identity not loaded" } } - if (loadedIdentities[authenticationPublicKey] === null) { + if (window.loadedIdentities[authenticationPublicKey] === null) { return {"data" : "", "code" : "400", "status" : "Identity not loaded" @@ -2040,14 +2034,14 @@ const connection = Penpal.connectToParent({ }, signEmail(passportUUID, emailArg, emailMessage) { return new Penpal.Promise(result => { - authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); - if (authenticationPublicKey === null) { + window.authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); + if (window.authenticationPublicKey === null) { return {"data" : "", "code" : "400", "status" : "Identity not authenticated" } } - if (loadedIdentities[authenticationPublicKey] === null) { + if (window.loadedIdentities[authenticationPublicKey] === null) { return {"data" : "", "code" : "400", "status" : "Identity not authenticated" @@ -2123,14 +2117,14 @@ const connection = Penpal.connectToParent({ }, hasSession() { return new Penpal.Promise(result => { - authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); - if (authenticationPublicKey === null) { + window.authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); + if (window.authenticationPublicKey === null) { result({"data" : "", "code" : "400", "status" : "Identity not authenticated" }); } - if (loadedIdentities[authenticationPublicKey] === null) { + if (window.loadedIdentities[authenticationPublicKey] === null) { result({"data" : "", "code" : "400", "status" : "Identity not authenticated" @@ -2186,7 +2180,7 @@ const connection = Penpal.connectToParent({ }, getCurrentlyAuthenticatedIdentity() { return new Penpal.Promise(result => { - result({"data" : currentlyAuthenticatedIdentity, + result({"data" : window.currentlyAuthenticatedIdentity, "code" : "200", "status" : "Currently authenticated identity" }) @@ -2260,9 +2254,9 @@ connection.promise.then(parent => { window.addEventListener('storage', event => { if (event.key === "authenticatedIdentity" && event.newValue === null) { - var publicKey = currentlyAuthenticatedIdentity.authentication.publicKey; - currentlyLoadedIdentity = null; - currentlyAuthenticatedIdentity = null; + var publicKey = window.currentlyAuthenticatedIdentity.authentication.publicKey; + window.currentlyLoadedIdentity = null; + window.currentlyAuthenticatedIdentity = null; var event = createEvent("LogoutFromAnotherTab", "Logout", [publicKey]); parent.onEvent(event) } @@ -2283,7 +2277,7 @@ connection.promise.then(parent => { localStorage.removeItem("token"); localStorage.removeItem("authenticatedIdentity") } else { - authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); + window.authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); var pinCode = getPincode(authenticationPublicKey); if(pinCode === "" || pinCode == null) { @@ -2321,14 +2315,14 @@ connection.promise.then(parent => { var identityAuthenticatedEvent = false; setInterval(function() { - if(currentlyAuthenticatedIdentity != null) { - var pinCode = getPincode(currentlyAuthenticatedIdentity.authentication.publicKey); - if(pinCode != null && pinCode != "") { - getIdentityFromLocalStorage(currentlyAuthenticatedIdentity.authentication.publicKey, + if(window.currentlyAuthenticatedIdentity != null) { + var pinCode = getPincode(window.currentlyAuthenticatedIdentity.authentication.publicKey); + if(pinCode != null && pinCode !== "") { + getIdentityFromLocalStorage(window.currentlyAuthenticatedIdentity.authentication.publicKey, pinCode, false).then((gotIdentity) => { - currentlyAuthenticatedIdentity = gotIdentity; + window.currentlyAuthenticatedIdentity = gotIdentity; //console.log("Set loaded identity in pincode check interval") - currentlyLoadedIdentity = gotIdentity; + window.currentlyLoadedIdentity = gotIdentity; if(identityAuthenticatedEvent === false && gotIdentity != null) { var event = createEvent("IdentityAuthenticated", "Authenticated", [gotIdentity.authentication.publicKey]); parent.onEvent(event); @@ -2336,40 +2330,40 @@ connection.promise.then(parent => { } }) } else { - authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); + window.authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); - if(authenticationPublicKey != null && authenticationPublicKey != "") { - /*var event = createEvent("CanNotLoadPincodeForAuthenticatedIdentity", "IdentityNotLoaded", [currentlyAuthenticatedIdentity.authentication.publicKey]) + if(authenticationPublicKey != null && authenticationPublicKey !== "") { + /*var event = createEvent("CanNotLoadPincodeForAuthenticatedIdentity", "IdentityNotLoaded", [window.currentlyAuthenticatedIdentity.authentication.publicKey]) parent.onEvent(event) clearPinCodeTtl(authenticationPublicKey) - currentlyAuthenticatedIdentity = null*/ + window.currentlyAuthenticatedIdentity = null*/ loadIdentityInternal(authenticationPublicKey, "00000000").then(result => { - if(result.code != "200") { + if(result.code !== "200") { console.log(result); var event = createEvent("CanNotGetPincodeForAuthenticatedIdentity", "IdentityNotLoaded", [authenticationPublicKey]); parent.onEvent(event); clearPinCodeTtl(authenticationPublicKey); - currentlyAuthenticatedIdentity = null + window.currentlyAuthenticatedIdentity = null } }); } identityAuthenticatedEvent = false; //console.log("Set loaded identity in cycle for not authenticated value") - currentlyLoadedIdentity = null + window.currentlyLoadedIdentity = null } } - if(currentlyLoadedIdentity != null) { - var pinCode = getPincode(currentlyLoadedIdentity.authentication.publicKey); - if(pinCode == "" || pinCode == null) { + if(window.currentlyLoadedIdentity != null) { + var pinCode = getPincode(window.currentlyLoadedIdentity.authentication.publicKey); + if(pinCode === "" || pinCode == null) { if(identityLoadedEvent === false) { - /*var event = createEvent("CanNotLoadPincodeForLoadedIdentity", "IdentityNotLoaded", [currentlyLoadedIdentity.authentication.publicKey]) + /*var event = createEvent("CanNotLoadPincodeForLoadedIdentity", "IdentityNotLoaded", [window.currentlyLoadedIdentity.authentication.publicKey]) parent.onEvent(event) identityLoadedEvent = true*/ - loadIdentityInternal(currentlyLoadedIdentity.authentication.publicKey, "00000000").then(result => { - if(result.code != "200") { - var event = createEvent("CanNotLoadPincodeForLoadedIdentity", "IdentityNotLoaded", [currentlyLoadedIdentity.authentication.publicKey]); + loadIdentityInternal(window.currentlyLoadedIdentity.authentication.publicKey, "00000000").then(result => { + if(result.code !== "200") { + var event = createEvent("CanNotLoadPincodeForLoadedIdentity", "IdentityNotLoaded", [window.currentlyLoadedIdentity.authentication.publicKey]); parent.onEvent(event); identityLoadedEvent = true } @@ -2381,27 +2375,27 @@ connection.promise.then(parent => { } - if (currentlyAuthenticatedIdentity != null) { + if (window.currentlyAuthenticatedIdentity != null) { var now = new Date().getTime(); - if(now - lastTimeGetProfile > 30000) { - var identityToStore = currentlyAuthenticatedIdentity; + if(now - window.lastTimeGetProfile > 30000) { + var identityToStore = window.currentlyAuthenticatedIdentity; getProfileData(identityToStore).then(executeResult => { console.log("Profile updated in cycle"); console.log(executeResult) }); - lastTimeGetProfile = now + window.lastTimeGetProfile = now } } }, 50); setInterval(function() { - if (currentlyLoadedIdentity != null && anynomousDeviceKeyEventsProcessing === false) { + if (window.currentlyLoadedIdentity != null && anynomousDeviceKeyEventsProcessing === false) { anynomousDeviceKeyEventsProcessing = true; executeRestfulFunction("public", viamAnonymousApi, viamAnonymousApi.eventGetNewEventsWithoutSession, "devicekey").then(executeResult => { if(executeResult.code === "200") { var eventsLen = executeResult.data.length; - changedMaxDeviceKeyAnonymousEventTime = false; + let changedMaxDeviceKeyAnonymousEventTime = false; for (var i = 0; i < eventsLen; i++) { var event = executeResult.data[i]; //console.log("Received event anynomous: " + event) @@ -2410,8 +2404,8 @@ connection.promise.then(parent => { console.log("Sending authenticated event"); const uuid = event.payloads[0]; const token = event.payloads[1]; - handleIdentityLogin(currentlyLoadedIdentity, uuid, token); - const identityToStore = currentlyAuthenticatedIdentity; + handleIdentityLogin(window.currentlyLoadedIdentity, uuid, token); + const identityToStore = window.currentlyAuthenticatedIdentity; event.payloads = [{fromQRCode: true}]; console.log(identityToStore); setIdentityInLocalStorage(identityToStore).then(() => { @@ -2439,16 +2433,16 @@ connection.promise.then(parent => { } case "KeyDeleted" : { - authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); + window.authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); clearPinCodeTtl(authenticationPublicKey); localStorage.removeItem("uuid"); localStorage.removeItem("token"); localStorage.removeItem("authenticatedIdentity"); - delete loadedIdentities[authenticationPublicKey]; + delete window.loadedIdentities[authenticationPublicKey]; //console.log("Set loaded identity in key deleted") - currentlyLoadedIdentity = null; - currentlyAuthenticatedIdentity = null; - lastTimeGetProfile = 0; + window.currentlyLoadedIdentity = null; + window.currentlyAuthenticatedIdentity = null; + window.lastTimeGetProfile = 0; destroyIdentityFromLocalStorage(authenticationPublicKey); break @@ -2478,16 +2472,16 @@ connection.promise.then(parent => { }); } - /*if(currentlyAuthenticatedIdentity === null) { + /*if(window.currentlyAuthenticatedIdentity === null) { console.log("Currently authenticated identity is null") }*/ - if (currentlyAuthenticatedIdentity != null && eventsDeviceEventsProcessing === false) { + if (window.currentlyAuthenticatedIdentity != null && eventsDeviceEventsProcessing === false) { eventsDeviceEventsProcessing = true; executeRestfulFunction("private", viamApi, viamApi.eventGetNewEvents, "devicekey").then(executeResult => { if(executeResult.code === "200") { var eventsLen = executeResult.data.length; - changedMaxDeviceKeyEventTime = false; + const changedMaxDeviceKeyEventTime = false; for(var i = 0; i < eventsLen; i++) { var event = executeResult.data[i]; //console.log("Received event device key: " + event) @@ -2522,12 +2516,12 @@ connection.promise.then(parent => { }); } - if (currentlyAuthenticatedIdentity != null && eventsEntityEventsProcessing === false) { + if (window.currentlyAuthenticatedIdentity != null && eventsEntityEventsProcessing === false) { eventsEntityEventsProcessing = true; executeRestfulFunction("private", viamApi, viamApi.eventGetNewEvents, "entity").then(executeResult => { if(executeResult.code === "200") { var eventsLen = executeResult.data.length; - changedMaxEntityEventTime = false; + let changedMaxEntityEventTime = false; for(var i = 0; i < eventsLen; i++) { event = executeResult.data[i]; if(event.type === "QRCodeUpdated") {