Data Encryption Compliance Checker

Data Encryption Compliance Checker

Describe Your System & Paste Policy Text

Select Regulations to Check Against

Compliance Analysis Report

No regulations selected. Go back to select regulations and run the analysis.

`; return; } let reportHtml = `
`; reportHtml += `

Encryption Compliance Report for: ${this.systemName || 'Unnamed System'}

`; this.selectedRegulations.forEach(key => { const reg = this.regulations[key]; reportHtml += `

${reg.title}

`; reg.checks.forEach(check => { const isCompliant = check.keyword.test(this.policyText); reportHtml += this.createComplianceItem(check.label, isCompliant); }); }); reportHtml += `
`; this.dom.reportArea.innerHTML = reportHtml; }, createComplianceItem(label, isCompliant) { const icon = isCompliant ? `` : ``; const textClass = isCompliant ? 'text-gray-800' : 'text-gray-800 font-semibold'; return `
${icon} ${label}: ${isCompliant ? 'Mentioned' : 'Not Mentioned'}
`; }, // --- ACTIONS --- toggleRegulation(key, isChecked) { if (isChecked) { this.selectedRegulations.add(key); } else { this.selectedRegulations.delete(key); } }, // --- NAVIGATION --- changeTab(tabIndex) { if (tabIndex > this.currentTab) { if (this.currentTab === 0 && this.policyText.trim() === '') { alert("Please paste your policy or system text to continue."); return; } if (this.currentTab === 1 && this.selectedRegulations.size === 0) { alert("Please select at least one regulation to check against."); return; } } if (tabIndex === 2) { this.renderReport(); } this.dom.tabButtons[this.currentTab].classList.remove('active'); this.dom.tabContents[this.currentTab].classList.remove('active'); this.currentTab = tabIndex; this.dom.tabButtons[this.currentTab].classList.add('active'); this.dom.tabContents[this.currentTab].classList.add('active'); this.updateNavButtons(); }, navigateTabs(direction) { const newTab = direction === 'next' ? this.currentTab + 1 : this.currentTab - 1; if (newTab >= 0 && newTab < this.dom.tabButtons.length) { this.changeTab(newTab); } }, updateNavButtons() { this.dom.prevBtn.style.visibility = this.currentTab === 0 ? 'hidden' : 'visible'; this.dom.nextBtn.textContent = this.currentTab === this.dom.tabButtons.length - 2 ? 'Analyze' : 'Next'; this.dom.nextBtn.style.visibility = this.currentTab === this.dom.tabButtons.length - 1 ? 'hidden' : 'visible'; }, // --- PDF GENERATION --- generatePdf() { const { jsPDF } = window.jspdf; const content = document.getElementById('pdf-content'); if (!content) return; html2canvas(content, { scale: 2 }).then(canvas => { const imgData = canvas.toDataURL('image/png'); const pdf = new jsPDF({ orientation: 'portrait', unit: 'px', format: 'a4' }); const pdfWidth = pdf.internal.pageSize.getWidth(); const imgProps= pdf.getImageProperties(imgData); const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width; pdf.addImage(imgData, 'PNG', 20, 20, pdfWidth - 40, pdfHeight - 40); pdf.save('Encryption-Compliance-Report.pdf'); }); }, }; window.app = { changeTab: app.changeTab.bind(app), navigateTabs: app.navigateTabs.bind(app), toggleRegulation: app.toggleRegulation.bind(app), }; app.init(); });
Scroll to Top