From c86529e3f1e2c8dd709e87fc7189ec9e9d86e0c5 Mon Sep 17 00:00:00 2001 From: Damyan Mitev <damyan.mitev@vereign.com> Date: Thu, 30 May 2019 13:56:01 +0300 Subject: [PATCH] Add more try/catch and logs --- javascript/src/utilities/pdfUtilities.js | 34 +++++++++++++++++------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/javascript/src/utilities/pdfUtilities.js b/javascript/src/utilities/pdfUtilities.js index d965bc6..51e5e4d 100644 --- a/javascript/src/utilities/pdfUtilities.js +++ b/javascript/src/utilities/pdfUtilities.js @@ -634,6 +634,7 @@ function loadPdf(pdfArray) { //data must be Uint8Array async function sign_pki(signingCert, certificateChain, privateKey, data, date) { + console.log("Calling sign_pki"); const crypto = getCrypto(); @@ -719,6 +720,8 @@ async function sign_pki(signingCert, certificateChain, privateKey, data, date) { async function signPdfObjects (pdfRaw, signingCert, certificateChain, privateKey, date) { + console.log("Calling signPdfObjects"); + date = ((typeof date !== 'undefined') && (date !== null)) ? date : new Date(); if (pdfRaw instanceof Buffer) { @@ -727,26 +730,39 @@ async function signPdfObjects (pdfRaw, signingCert, certificateChain, privateKey if(pdfRaw instanceof ArrayBuffer) { pdfRaw = new Uint8Array(pdfRaw); } + console.log("Calling loadPdf"); var pdf = loadPdf(pdfRaw); var root = findRootEntry(pdf.xref); var rootSuccessor = findSuccessorEntry(pdf.xref.entries, root); if(!isSigInRoot(pdf)) { + console.log("Calling newSig"); return await newSig(pdf, root, rootSuccessor, date, signingCert, certificateChain, privateKey); } else { + console.log("Calling appendSig"); return await appendSig(pdf, root, rootSuccessor, date, signingCert, certificateChain, privateKey); } } -export function signPdf(pdfRaw, signingCert, certificateChain, privateKey) { - const signingCertObj = parseCertificate(signingCert); - const certificateChainObj = []; - certificateChainObj[0] = parseCertificate(signingCert); - for (let i = 0; i < certificateChain.length; i++) { - certificateChainObj[i + 1] = parseCertificate(certificateChain[i]) +export async function signPdf(pdfRaw, signingCert, certificateChain, privateKey) { + + console.log("Calling signPdf"); + + const signingCertObj = parseCertificate(signingCert); + const certificateChainObj = []; + certificateChainObj[0] = parseCertificate(signingCert); + for (let i = 0; i < certificateChain.length; i++) { + certificateChainObj[i + 1] = parseCertificate(certificateChain[i]) + } + + let privateKeyDecoded; + try { + console.log("Calling parsePrivateKey"); + privateKeyDecoded = await parsePrivateKey(privateKey); + } catch (e) { + console.log("Error decoding private key: ", e); + throw new Error('Error decoding private key: ' + e); } - return parsePrivateKey(privateKey).then(privateKeyDecoded => { - return signPdfObjects(pdfRaw, signingCertObj, certificateChainObj, privateKeyDecoded); - }); + return await signPdfObjects(pdfRaw, signingCertObj, certificateChainObj, privateKeyDecoded); } \ No newline at end of file -- GitLab