/* * SysDeck - Hardware Auth Panel * Author: Jeremy Anderson (https://dcos.net) * * Lists smartcard reader slots via pkcs11-tool. Falls back to a hint * card when opensc / pcsc-lite is absent. */ export async function mount(panel, { bridge, EventBus }) { panel.innerHTML = renderSkeleton(); const slots = await bridge.auth.smartcards(); panel.innerHTML = `

Hardware Auth

PKCS#11 / pcsc-lite — ${slots.length} slots

Smartcard Readers

${slots.length ? `` : '

No smartcard readers detected. Install opensc and pcsc-lite, then start pcscd.service.

'}

Quick Actions

`; panel.querySelector('#btn-list-certs')?.addEventListener('click', async () => { try { const out = await bridge.spawn(['pkcs11-tool', '--list-objects', '--type', 'cert']); EventBus.emit('auth.list-certs', { count: (out.match(/Certificate/g) || []).length }); alert(out); } catch (err) { alert(err.message || err); } }); panel.querySelector('#btn-reader-info')?.addEventListener('click', async () => { try { const out = await bridge.spawn(['pcsc_scan']); alert(out); } catch (err) { alert(err.message || err); } }); } function renderSkeleton() { return `
`; }