Newer
Older
try {
const stringToEncode = publicKey + navigator.userAgent;
const crypto = getCrypto();
const buffer = new window.TextEncoder().encode(stringToEncode);
const hash = await crypto.digest({ name: "SHA-1" }, buffer);
return window.btoa(String.fromCharCode(...new Uint8Array(hash)));
} catch (error) {
console.warn(error); // eslint-disable-line no-console
}
};
export const encodeResponse = (code, data, status) => {
return {
code,
data,
status
};
};
export function makeid(len) {
}
var text = "";
var possible =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for (var i = 0; i < len; i++)
text += possible.charAt(Math.floor(Math.random() * possible.length));
return text;
}
//*********************************************************************************
function getBlockFinishTimeInLocalStorage() {
return localStorage.getItem("blockFinishTime") || getCurrentTime();
}
function getCurrentTime() {
return Math.floor(new Date().getTime() / 1000);
}
export function getTimeLeftInLocalStorage() {
const blockFinishTime = getBlockFinishTimeInLocalStorage();
const timeNow = getCurrentTime();
const seconds = (blockFinishTime - timeNow) % 60;
let minutes = Math.floor((blockFinishTime - timeNow) / 60);
minutes %= 60;
const left =
"Your identity has been locked. Try again in " +
minutes +
" minutes and " +
seconds +
" seconds.";
return left;
}
export function listIdentitiesFromLocalStorage() {
var serializedIdentitiesList = localStorage.getItem("identities");
var identities = JSON.parse(serializedIdentitiesList);
var identitiesResult = {};
for (var key in identities) {
var profile = JSON.parse(
JSON.stringify(localStorage.getItem("profiles/" + key))
);
if (profile != null && profile !== "") {
identitiesResult[key] = JSON.parse(profile);
}
export function destroyIdentityFromLocalStorage(key) {
localStorage.removeItem(key);
localStorage.removeItem("profiles/" + key);
localStorage.removeItem("colors/" + key);
var serializedIdentitiesList = localStorage.getItem("identities");
var identities = JSON.parse(serializedIdentitiesList);
identities[key] = null;
delete identities[key];
localStorage.setItem("identities", JSON.stringify(identities));
}
export function failPincodeAttempt(password) {
let message = "Wrong pincode";
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
let attempt = localStorage.getItem("attempt") || 1;
attempt = parseInt(attempt);
if (attempt === 9) {
const identitiesTemp = listIdentitiesFromLocalStorage();
for (let i in identitiesTemp) {
destroyIdentityFromLocalStorage(i);
}
message = "9 failed attempts. Identity is revoked!";
localStorage.removeItem("attempt");
} else if (attempt % 3 === 0) {
const timeNow = getCurrentTime();
const blockFinishTime = timeNow + 300;
localStorage.setItem("blockFinishTime", blockFinishTime);
localStorage.setItem("attempt", attempt + 1);
message = "3 failed attempts. Identity is locked!";
} else {
localStorage.setItem("attempt", attempt + 1);
}
}
return message;
}
export function canTryPincode() {
const timeNow = getCurrentTime();
const blockFinishTime = getBlockFinishTimeInLocalStorage();
if (blockFinishTime <= timeNow) {
localStorage.removeItem("blockFinishTime");
return true;
} else {
return false;
}