Переведены ключи UI в base58 и обновлены deploy defaults

This commit is contained in:
AidarKC
2026-06-02 16:34:37 +04:00
parent a06b76b800
commit 68ed93dd24
7 changed files with 90 additions and 28 deletions
@@ -1,6 +1,6 @@
import { renderHeader } from '../components/header.js';
import { state } from '../state.js';
import { bytesToBase64 } from '../services/crypto-utils.js';
import { base64ToBytes, bytesToBase58 } from '../services/crypto-utils.js';
import { extractSeed32FromPkcs8B64 } from '../services/device-key-utils.js';
export const pageMeta = { id: 'registration-draft-keys-view', title: 'Сгенерированные ключи', showAppChrome: false };
@@ -17,7 +17,7 @@ function makeSecretField({ label, value }) {
row.className = 'inline-input-row';
const input = document.createElement('input');
input.className = 'input';
input.className = 'input key-input';
input.type = 'password';
input.readOnly = true;
input.value = value;
@@ -50,7 +50,7 @@ function makePublicField({ label, value }) {
labelEl.textContent = label;
const input = document.createElement('input');
input.className = 'input';
input.className = 'input key-input';
input.type = 'text';
input.readOnly = true;
input.value = value;
@@ -82,38 +82,56 @@ export function render({ navigate }) {
card.append(warning);
// Секрет (root key seed)
let secretB64 = '';
let secretB58 = '';
try {
const rootSeed32 = extractSeed32FromPkcs8B64(keyBundle.rootPair.privatePkcs8B64);
secretB64 = bytesToBase64(rootSeed32);
secretB58 = bytesToBase58(rootSeed32);
} catch {
secretB64 = '(не удалось извлечь)';
secretB58 = '(не удалось извлечь)';
}
card.append(makeSecretField({ label: 'Секрет (root seed, 32 байта)', value: secretB64 }));
card.append(makeSecretField({ label: 'Секрет (root seed, base58, 32 байта)', value: secretB58 }));
// Root key
const rootSep = document.createElement('p');
rootSep.className = 'field-label';
rootSep.textContent = 'Root key';
card.append(rootSep);
card.append(makePublicField({ label: 'Root — публичный', value: keyBundle.rootPair.publicKeyB64 }));
card.append(makeSecretField({ label: 'Root — приватный (PKCS8)', value: keyBundle.rootPair.privatePkcs8B64 }));
card.append(makePublicField({
label: 'Root — публичный (base58)',
value: bytesToBase58(base64ToBytes(keyBundle.rootPair.publicKeyB64)),
}));
card.append(makeSecretField({
label: 'Root — приватный (seed base58, 32 байта)',
value: bytesToBase58(extractSeed32FromPkcs8B64(keyBundle.rootPair.privatePkcs8B64)),
}));
// Blockchain key
const bchSep = document.createElement('p');
bchSep.className = 'field-label';
bchSep.textContent = 'Blockchain key';
card.append(bchSep);
card.append(makePublicField({ label: 'Blockchain — публичный', value: keyBundle.blockchainPair.publicKeyB64 }));
card.append(makeSecretField({ label: 'Blockchain — приватный (PKCS8)', value: keyBundle.blockchainPair.privatePkcs8B64 }));
card.append(makePublicField({
label: 'Blockchain — публичный (base58)',
value: bytesToBase58(base64ToBytes(keyBundle.blockchainPair.publicKeyB64)),
}));
card.append(makeSecretField({
label: 'Blockchain — приватный (seed base58, 32 байта)',
value: bytesToBase58(extractSeed32FromPkcs8B64(keyBundle.blockchainPair.privatePkcs8B64)),
}));
// Device key
const devSep = document.createElement('p');
devSep.className = 'field-label';
devSep.textContent = 'Device key (= Solana wallet)';
card.append(devSep);
card.append(makePublicField({ label: 'Device — публичный', value: keyBundle.devicePair.publicKeyB64 }));
card.append(makeSecretField({ label: 'Device — приватный (PKCS8)', value: keyBundle.devicePair.privatePkcs8B64 }));
card.append(makePublicField({
label: 'Device — публичный (base58)',
value: bytesToBase58(base64ToBytes(keyBundle.devicePair.publicKeyB64)),
}));
card.append(makeSecretField({
label: 'Device — приватный (seed base58, 32 байта)',
value: bytesToBase58(extractSeed32FromPkcs8B64(keyBundle.devicePair.privatePkcs8B64)),
}));
}
const actions = document.createElement('div');