Veröffentlichte Quellen
Quellen als ZIP herunterladen
CH-J Tools
Durchsuchen Sie Verzeichnisse und Dateien einer bestimmten Anwendungsausgabe.
CH-J / Server Manager
872 Dateien
core-20261030T220507Z-61e4558d889f
Hinzugefügt: · Erstellt:
1
"use strict";3
const api = window.chjPlugin;4
const i18n = window.chjPluginI18n.createI18n("cs");5
const t = i18n.t;6
const elements = Object.fromEntries(["pluginVersion", "closeButton", "generatorForm", "keyType", "bitsLabel", "keyBits", "keyFormat", "keyComment", "keyPassphrase", "legacyField", "legacyConfirmed", "saveButton", "status", "result", "privateKey", "privateFormat", "publicKey", "publicFormat", "notice"].map((id) => [id, document.querySelector(`#${id}`)]));7
const bits = { rsa: [2048, 3072, 4096], ecdsa: [256, 384, 521], dsa: [1024], rsa1: [1024] };8
let generationId = null;10
function setStatus(message, error = false) {11
elements.status.textContent = message;12
elements.status.classList.toggle("error", error);13
}15
function updateType() {16
const type = elements.keyType.value;17
const choices = bits[type] || [];18
elements.keyBits.replaceChildren(...choices.map((value) => new Option(String(value), String(value), value === (type === "rsa" ? 4096 : choices[0]), value === (type === "rsa" ? 4096 : choices[0]))));19
elements.bitsLabel.hidden = choices.length === 0;20
elements.legacyField.hidden = type !== "dsa" && type !== "rsa1";21
if (elements.legacyField.hidden) elements.legacyConfirmed.checked = false;22
if (type === "rsa1") elements.keyFormat.value = "ppk";23
elements.keyFormat.disabled = type === "rsa1";24
}26
elements.keyType.addEventListener("change", updateType);27
elements.closeButton.addEventListener("click", () => api.close());28
elements.generatorForm.addEventListener("submit", async (event) => {29
event.preventDefault();30
setStatus(t("Generuji klíčový pár…"));31
generationId = null; elements.saveButton.disabled = true;32
try {33
const generated = await api.keys.generate({34
type: elements.keyType.value,35
bits: Number(elements.keyBits.value || 0),36
comment: elements.keyComment.value,37
passphrase: elements.keyPassphrase.value,38
privateKeyFormat: elements.keyFormat.value,39
legacyConfirmed: elements.legacyConfirmed.checked40
});41
generationId = generated.generationId;42
elements.privateKey.value = generated.privateKey;43
elements.privateFormat.textContent = { openssh: "OpenSSH", pem: "PEM / PKCS#8", ppk: "PuTTY PPK v2" }[generated.privateKeyFormat] || generated.privateKeyFormat;44
elements.publicKey.value = generated.publicKey;45
elements.publicFormat.textContent = generated.publicKeyOpenSsh ? "OpenSSH" : "SPKI PEM";46
elements.notice.hidden = !generated.notice;47
elements.notice.textContent = generated.notice;48
elements.result.hidden = false;49
elements.saveButton.disabled = false;50
setStatus(t("{type} bylo vygenerováno.", { type: `${generated.type}${generated.bits ? ` / ${generated.bits}` : ""}` }));51
} catch (error) { setStatus(error?.message || String(error), true); }52
});53
elements.saveButton.addEventListener("click", async () => {54
if (!generationId) return;55
try {56
const result = await api.keys.save(generationId);57
if (!result.canceled) setStatus(t("Uloženo: {privatePath} a {publicPath}", { privatePath: result.privatePath, publicPath: result.publicPath }));58
} catch (error) { setStatus(error?.message || String(error), true); }59
});61
// ---------- password generator ----------62
let passwordId = null;63
const passwordElements = Object.fromEntries(["passwordForm", "passwordLength", "passwordLengthRange", "pwUpper", "pwLower", "pwDigits", "pwSpecial", "pwGrouped", "passwordOutput", "copyPasswordButton", "passwordInfo"].map((id) => [id, document.querySelector(`#${id}`)]));64
passwordElements.passwordLength.addEventListener("input", () => { passwordElements.passwordLengthRange.value = passwordElements.passwordLength.value; });65
passwordElements.passwordLengthRange.addEventListener("input", () => { passwordElements.passwordLength.value = passwordElements.passwordLengthRange.value; });66
passwordElements.passwordForm.addEventListener("submit", async (event) => {67
event.preventDefault();68
passwordElements.copyPasswordButton.disabled = true;69
try {70
const result = await api.keys.password({71
length: Number(passwordElements.passwordLength.value),72
upper: passwordElements.pwUpper.checked, lower: passwordElements.pwLower.checked,73
digits: passwordElements.pwDigits.checked, special: passwordElements.pwSpecial.checked,74
grouped: passwordElements.pwGrouped.checked75
});76
passwordElements.passwordOutput.value = result.password;77
passwordId = result.passwordId;78
passwordElements.copyPasswordButton.disabled = false;79
setStatus(t("Heslo: {length} znaků, {random} náhodných z {pool} možných (přibližně {bits} bitů entropie).", { length: result.length, random: result.randomCharacters, pool: result.poolSize, bits: result.entropyBits }));80
} catch (error) { passwordElements.passwordOutput.value = ""; setStatus(error?.message || String(error), true); }81
});82
// Core copies the password (plugin windows have no clipboard permission).83
passwordElements.copyPasswordButton.addEventListener("click", async () => {84
try { await api.keys.copyPassword(passwordId); setStatus(t("Heslo zkopírováno do schránky.")); }85
catch (error) { setStatus(error?.message || String(error), true); }86
});88
(async () => {89
try { i18n.setLanguage(await api.ui.getLanguage()); } catch {}90
i18n.apply(document);91
api.ui.onLanguageChanged((language) => { i18n.setLanguage(language); i18n.apply(document); });92
const info = await api.getInfo();93
elements.pluginVersion.textContent = `${info.name} v${info.version} · ${info.publisher}`;94
updateType();95
})().catch((error) => setStatus(error?.message || String(error), true));SHA-256
fba0aa7a5cb771ccc3e0a652c63bd28139adc9c3f746f95b85e646cec6aa920aCH-J Proprietary Software License 1.14 · Die Quellen werden unter der CH-J Proprietary Software License 1.14 bereitgestellt. Ihre Verfügbarkeit ändert die Lizenzbedingungen nicht und gewährt keine zusätzlichen Rechte.
SHA-256 des Archivs
77380d4805485ffa4027fbe7858b5836f197a4aa9d52358a43e2d12d018744df