Adding retriveCredentials
This commit is contained in:
parent
633bfa1a7e
commit
54def5c2eb
@ -7544,6 +7544,65 @@ Bitcoin.Util = {
|
||||
myFloID = floCrypto.getFloIDfromPubkeyHex(myPubKey)
|
||||
}
|
||||
|
||||
function retriveCredentials(pinInput) {
|
||||
|
||||
if (typeof pinInput !== "function") {
|
||||
pinInput = function () {
|
||||
return new Promise((resolve, reject) => {
|
||||
var input = prompt("Enter PIN")
|
||||
if (input !== null)
|
||||
resolve(input)
|
||||
else
|
||||
reject(null)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const readSharesFromIDB = function (pin, indexArr) {
|
||||
return new Promise((resolve, reject) => {
|
||||
var tableArr = []
|
||||
for (var i = 0; i < indexArr.length; i++)
|
||||
tableArr[i] = pin[i % pin.length]
|
||||
var promises = []
|
||||
for (var i = 0; i < indexArr.length; i++)
|
||||
promises.push(compactIDB.readData(tableArr[i], indexArr[i], floGlobals.application))
|
||||
Promise.all(promises).then(shares => {
|
||||
var secret = floCrypto.retrieveShamirSecret(shares)
|
||||
if (secret)
|
||||
resolve(secret)
|
||||
else
|
||||
reject("Incorrect PIN or Insufficient Shares")
|
||||
}).catch(error => reject(error))
|
||||
})
|
||||
}
|
||||
|
||||
const retrivePrivKey = function () {
|
||||
return new Promise((resolve, reject) => {
|
||||
let indexArr = localStorage.getItem(`${floGlobals.application}#privKey`)
|
||||
if (indexArr) {
|
||||
pinInput().then(pin => {
|
||||
if (!pin)
|
||||
return reject("Empty PIN")
|
||||
if (!isNaN(pin))
|
||||
return reject("Invalid PIN")
|
||||
readSharesFromIDB(pin, JSON.parse(indexArr))
|
||||
.then(result => resolve(result))
|
||||
.catch(error => reject(error))
|
||||
}).catch(error => reject("PIN not entered"))
|
||||
} else
|
||||
reject("No Credentials Stored")
|
||||
})
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
retrivePrivKey().then(privKey => {
|
||||
myPrivKey = privKey
|
||||
myPubKey = floCrypto.getPubKeyHex(myPrivKey)
|
||||
myFloID = floCrypto.getFloIDfromPubkeyHex(myPubKey)
|
||||
resolve('Login Credentials loaded successful')
|
||||
}).catch(error => reject(error))
|
||||
})
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user