55 lines
2.1 KiB
JavaScript
55 lines
2.1 KiB
JavaScript
import * as dKey from "./crypto.js";
|
|
|
|
addEventsListeners([
|
|
document.getElementById("idSec"),
|
|
document.getElementById("pass"),
|
|
], "keyup change",
|
|
async function () {
|
|
const idSec = document.getElementById("idSec").value;
|
|
const pass = document.getElementById("pass").value;
|
|
const keys = await dKey.idSecPass2cleanKeys(idSec, pass);
|
|
document.getElementById("seed").value = keys.seed;
|
|
document.getElementById("secretkey").value = keys.secretKey;
|
|
document.getElementById("pubkey").value = keys.publicKey;
|
|
|
|
});
|
|
addEventsListeners([
|
|
document.getElementById("seed"),
|
|
], "keyup change",
|
|
async function () {
|
|
let rawSeed;
|
|
const seed = document.getElementById("seed").value;
|
|
console.log(seed.length);
|
|
if (seed.length === 64) rawSeed = dKey.b16.decode(seed);
|
|
else rawSeed = dKey.b58.decode(seed);
|
|
const keys = await dKey.seed2keyPair(rawSeed);
|
|
document.getElementById("secretkey").value = dKey.b58.encode(keys.secretKey);
|
|
document.getElementById("pubkey").value = dKey.b58.encode(keys.publicKey);
|
|
});
|
|
addEventsListeners([
|
|
document.getElementById("compute"),
|
|
], "click",
|
|
async function () {
|
|
const filename = document.getElementById("filename").value;
|
|
const secretkey = document.getElementById("secretkey").value;
|
|
const pubkey = document.getElementById("pubkey").value;
|
|
exportAsFile(filename, `pub: ${pubkey}\nsec: ${secretkey}`);
|
|
});
|
|
|
|
function exportAsFile(fileName, data) {
|
|
const a = document.createElement('a');
|
|
a.setAttribute('download', fileName + '.dunikey.yml');
|
|
a.setAttribute('href', 'data:text/yaml;charset=utf-8,' + encodeURIComponent(data));
|
|
clickOn(a);
|
|
}
|
|
function clickOn(element) {
|
|
const event = new MouseEvent('click', {'view': window, 'bubbles': true, 'cancelable': true});
|
|
element.dispatchEvent(event);
|
|
}
|
|
function addEventsListeners(triggerNodes, events, functions) {
|
|
if (!triggerNodes.length) triggerNodes = [triggerNodes];
|
|
if (typeof events !== "object") events = events.split(" ");
|
|
if (typeof functions !== "object") functions = [functions];
|
|
for (let n of triggerNodes) events.forEach(e => functions.forEach(f => n.addEventListener(e, f)));
|
|
}
|